public void testMakeSet() { DisjointSets <string> disjSets = new DisjointSets <string>(); disjSets.makeSet("a"); Assert.AreEqual(1, disjSets.numberDisjointSets()); disjSets.makeSet("a"); Assert.AreEqual(1, disjSets.numberDisjointSets()); disjSets.makeSet("b"); Assert.AreEqual(2, disjSets.numberDisjointSets()); }
public void testWorkedExample() { // Should be the following when finished: // {a, b, c, d}, {e, f, g}, {h, i}, and {j} // 1. initial sets DisjointSets <string> disjSets = new DisjointSets <string>("a", "b", "c", "d", "e", "f", "g", "h", "i", "j"); Assert.AreEqual(10, disjSets.numberDisjointSets()); Assert.AreEqual(1, disjSets.find("a").Size()); Assert.AreEqual(1, disjSets.find("b").Size()); Assert.AreEqual(1, disjSets.find("c").Size()); Assert.AreEqual(1, disjSets.find("d").Size()); Assert.AreEqual(1, disjSets.find("e").Size()); Assert.AreEqual(1, disjSets.find("f").Size()); Assert.AreEqual(1, disjSets.find("g").Size()); Assert.AreEqual(1, disjSets.find("h").Size()); Assert.AreEqual(1, disjSets.find("i").Size()); Assert.AreEqual(1, disjSets.find("j").Size()); // 2. (b, d) disjSets.union("b", "d"); Assert.AreEqual(9, disjSets.numberDisjointSets()); assertArrayEquals(disjSets.find("b"), disjSets.find("d")); // 3. (e, g) disjSets.union("e", "g"); Assert.AreEqual(8, disjSets.numberDisjointSets()); assertArrayEquals(disjSets.find("e"), disjSets.find("g")); // 4. (a, c) disjSets.union("a", "c"); Assert.AreEqual(7, disjSets.numberDisjointSets()); assertArrayEquals(disjSets.find("a"), disjSets.find("c")); // 5. (h, i) disjSets.union("h", "i"); Assert.AreEqual(6, disjSets.numberDisjointSets()); assertArrayEquals(disjSets.find("h"), disjSets.find("i")); // 6. (a, b) disjSets.union("a", "b"); Assert.AreEqual(5, disjSets.numberDisjointSets()); assertArrayEquals(disjSets.find("a"), disjSets.find("b")); assertArrayEquals(disjSets.find("b"), disjSets.find("c")); assertArrayEquals(disjSets.find("c"), disjSets.find("d")); // 7. (e, f) disjSets.union("e", "f"); Assert.AreEqual(4, disjSets.numberDisjointSets()); assertArrayEquals(disjSets.find("e"), disjSets.find("f")); assertArrayEquals(disjSets.find("f"), disjSets.find("g")); // 8. (b, c) disjSets.union("b", "c"); Assert.AreEqual(4, disjSets.numberDisjointSets()); assertArrayEquals(disjSets.find("a"), disjSets.find("b")); assertArrayEquals(disjSets.find("b"), disjSets.find("c")); assertArrayEquals(disjSets.find("c"), disjSets.find("d")); }
public void testUnion() { DisjointSets <string> disjSets = new DisjointSets <string>("a", "b", "c", "d"); Assert.AreEqual(4, disjSets.numberDisjointSets()); disjSets.union("a", "b"); Assert.AreEqual(3, disjSets.numberDisjointSets()); assertArrayEquals(disjSets.find("a"), disjSets.find("b")); disjSets.union("c", "d"); Assert.AreEqual(2, disjSets.numberDisjointSets()); assertArrayEquals(disjSets.find("c"), disjSets.find("d")); disjSets.union("b", "c"); Assert.AreEqual(1, disjSets.numberDisjointSets()); }
public void testConstructors() { DisjointSets <string> disjSets = new DisjointSets <string>(); Assert.AreEqual(0, disjSets.numberDisjointSets()); disjSets = new DisjointSets <string>("a", "a", "b"); Assert.AreEqual(2, disjSets.numberDisjointSets()); disjSets = new DisjointSets <string>(CollectionFactory.CreateQueue <string>(new[] { "a", "a", "b" })); Assert.AreEqual(2, disjSets.numberDisjointSets()); }