public void DFSWithAction_NoVertices_SmallGraphTest() { var graph = new AdjacencyListGraph <int>(); foreach (var vertex in graph.DFS(1, v => { })) { } }
public void DFS_1Vertex_SmallGraphTest() { var graph = new AdjacencyListGraph <int>(); graph.AddVertex(1); foreach (var vertex in graph.DFS(1)) { Assert.AreEqual(1, vertex); } }
public void DFS_SmallGraphTest() { var graph = new AdjacencyListGraph <int>(); graph.AddEdge(1, 2); graph.AddEdge(1, 3); graph.AddEdge(1, 5); graph.AddEdge(2, 4); graph.AddEdge(2, 6); graph.AddEdge(3, 7); graph.AddEdge(5, 6); int idx = 0; var path = new[] { 1, 2, 4, 6, 3, 7, 5 }; foreach (var vertex in graph.DFS(1)) { Assert.AreEqual(path[idx++], vertex); } Assert.AreEqual(path.Length, idx); }
public void DFSWithAction_SmallGraphTest() { var graph = new AdjacencyListGraph <int>(); graph.AddEdge(1, 2); graph.AddEdge(1, 3); graph.AddEdge(1, 5); graph.AddEdge(2, 4); graph.AddEdge(2, 6); graph.AddEdge(3, 7); graph.AddEdge(5, 6); int pathIdx = 0; int lastVerticesIdx = 0; var lastVertices = new[] { 4, 6, 7, 5 }; var path = new[] { 1, 2, 4, 6, 3, 7, 5 }; foreach (var vertex in graph.DFS(1, v => Assert.AreEqual(lastVertices[lastVerticesIdx++], v))) { Assert.AreEqual(path[pathIdx++], vertex); } Assert.AreEqual(path.Length, pathIdx); Assert.AreEqual(lastVertices.Length, lastVerticesIdx); }