public void GraphConnectedComponents() { var g = graph.DeepCopy(); var cc = new ConnectedComponents(g); Assert.AreEqual(3, cc.AmountOfComponents); Assert.IsTrue(cc.Connected(0, 1)); Assert.IsTrue(cc.Connected(7, 8)); Assert.IsTrue(cc.Connected(9, 12)); CollectionAssert.AreEqual(new List <int>() { 7, 8 }, cc.GetVerticesForComponent(1)); }
public void DeepCopyGraph() { // a cube var graph = new UndirectedGraph(4); graph.AddEdge(0, 1); graph.AddEdge(1, 2); graph.AddEdge(2, 3); graph.AddEdge(3, 0); graph.AddEdge(3, 3); var graph2 = graph.DeepCopy(); Assert.AreEqual(graph.ToString(), graph2.ToString()); Assert.AreNotSame(graph, graph2); graph.AddEdge(0, 2); Assert.AreNotEqual(graph.ToString(), graph2.ToString()); Assert.AreNotSame(graph, graph2); }