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]); } }