public void SimpleDFSTest(bool value)
        {
            Random random = new Random();
            Graph  g      = new MatrixGraph(9, value);

            g.AddEdge(0, 1, random.NextDouble());
            g.AddEdge(0, 2, random.NextDouble());
            g.AddEdge(0, 3, random.NextDouble());
            g.AddEdge(1, 4, random.NextDouble());
            g.AddEdge(1, 6, random.NextDouble());
            g.AddEdge(2, 4, random.NextDouble());
            g.AddEdge(2, 5, random.NextDouble());
            g.AddEdge(3, 7, random.NextDouble());
            g.AddEdge(4, 7, random.NextDouble());
            g.AddEdge(6, 7, random.NextDouble());
            g.AddEdge(5, 8, random.NextDouble());

            bool[] tab;
            g.DFS(null, null, null, 0, out tab);
            foreach (bool b in tab)
            {
                Assert.True(b);
            }

            bool[] invTab;
            Graph  invGraph = g.ReversedGraph();

            invGraph.DFS(null, null, null, 0, out invTab);
            Assert.True(invTab[0]);
            for (int i = 1; i < invTab.Length; i++)
            {
                Assert.Equal(!value, invTab[i]);
            }
        }
Example #2
0
        public void ReverseGraph()
        {
            Graph graph = new MatrixGraph(10, true);

            graph.AddEdge(0, 9, 10);
            graph.AddEdge(2, 0, 5);
            Graph reversedGraph = graph.ReversedGraph();

            Assert.Equal(1, reversedGraph.GetOutDegree(9));
            Assert.Equal(1, reversedGraph.GetInDegree(2));
            Assert.Equal(2, reversedGraph.EdgesCount);
        }