public void BestFirstFrontierSearch() { foreach (BidirectionalGraph <string, Edge <string> > graph in TestGraphFactory.GetBidirectionalGraphs_SlowTests()) { RunAndCheckSearch(graph); } }
public void DepthFirstSearch() { foreach (BidirectionalGraph <string, Edge <string> > graph in TestGraphFactory.GetBidirectionalGraphs_SlowTests()) { RunDFSAndCheck(graph); RunDFSAndCheck(graph, 12); } }
public void EdgeCondensation() { var rand = new Random(123456); foreach (BidirectionalGraph <string, Edge <string> > graph in TestGraphFactory.GetBidirectionalGraphs_SlowTests()) { RunEdgesCondensationAndCheck(graph, v => true); RunEdgesCondensationAndCheck(graph, v => rand.Next(0, 1) == 1); } }
public void BestFirstFrontierComparedToDijkstraSearch() { foreach (BidirectionalGraph <string, Edge <string> > graph in TestGraphFactory.GetBidirectionalGraphs_SlowTests()) { if (graph.VertexCount == 0) { continue; } string root = graph.Vertices.First(); foreach (string vertex in graph.Vertices) { if (!root.Equals(vertex)) { CompareSearches(graph, root, vertex); } } } }
public void HoffmanPavleyRankedShortestPath() { foreach (BidirectionalGraph <string, Edge <string> > graph in TestGraphFactory.GetBidirectionalGraphs_SlowTests()) { if (graph.VertexCount == 0) { continue; } var weights = new Dictionary <Edge <string>, double>(); foreach (Edge <string> edge in graph.Edges) { weights.Add(edge, graph.OutDegree(edge.Source) + 1); } RunHoffmanPavleyRankedShortestPathAndCheck( graph, weights, graph.Vertices.First(), graph.Vertices.Last(), graph.VertexCount); } }