Пример #1
0
        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));
        }
Пример #2
0
        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);
        }