public void RouteBetweenNodesTest() { int n = 10; Func <bool[, ], int, int, bool>[] functions = new Func <bool[, ], int, int, bool>[] { RouteBetweenNodes.BFS, RouteBetweenNodes.DFS }; for (int i = 0; i < 10; i++) { bool[,] graph = new bool[n, n]; for (int j = 0; j < n * n; j++) { GraphUtilities.SetRandomEdge(graph, n); Tests.TestFunctions(graph, 0, n - 1, functions); } } }
public void DepthFirstSearchTest() { Func <Vertex[], int, bool[]>[] functions = new Func <Vertex[], int, bool[]>[] { DepthFirstSearchTestClass.RunDepthFirstSearch, DepthFirstSearchTestClass.RunBreadthFirstSearch, DepthFirstSearchTestClass.RunBellmanFord, DepthFirstSearchTestClass.RunDjikstra, DepthFirstSearchTestClass.RunFloydWarshall, }; Vertex[] vertices = new Vertex[10]; for (int i = 0; i < vertices.Length; i++) { vertices[i] = new Vertex(); } for (int i = 0; i <= vertices.Length * (vertices.Length - 1); i++) { for (int j = 0; j < vertices.Length; j++) { bool[][] results = new bool[vertices.Length][]; for (int k = 0; k < functions.Length; k++) { foreach (Vertex vertex in vertices) { vertex.Reset(); } results[k] = functions[k](vertices, j); Assert.IsTrue(ArrayUtilities.AreEqual(results[0], results[k])); } } GraphUtilities.SetRandomEdge(vertices); } }
public void ShortestPathTest() { Func <Vertex[], int[, ]>[] functions = new Func <Vertex[], int[, ]>[] { ShortestPathTestClass.RunBellmanFord, ShortestPathTestClass.RunDjikstra, ShortestPathTestClass.RunFloydWarshall, }; Vertex[] vertices = new Vertex[10]; for (int i = 0; i < vertices.Length; i++) { vertices[i] = new Vertex(); } for (int i = 0; i <= vertices.Length * (vertices.Length - 1); i++) { for (int j = 0; j < vertices.Length; j++) { int[][,] results = new int[vertices.Length][, ]; for (int k = 0; k < functions.Length; k++) { foreach (Vertex vertex in vertices) { vertex.Reset(); } results[k] = functions[k](vertices); Assert.IsTrue(ArrayUtilities.AreEqual(results[0], results[k])); } } GraphUtilities.SetRandomEdge(vertices); } }