public void Should_Connect_Two_By_Two() { //given UnionFind<String> uf = new UnionFind<String>(); String[] cc = new String[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" }; //when uf.AddRange(cc); for(int i = 0; i < cc.Length; i += 2) { uf.Merge(i, i + 1); } //Then uf.AddRange(cc); for (int i = 0; i < cc.Length; i += 2) { bool connected = uf.IsConnected(i, i + 1); Assert.IsTrue(connected); if(i+2 < cc.Length) { connected = uf.IsConnected(i + 1, i + 2); Assert.IsFalse(connected); } } }