void TestDirectedGraph() { StringBuilder sb = new StringBuilder(); sb.Append("Begin Testing Directed Graph").AppendLine(); RGVertex <string> V1 = new RGVertex <string>("v1"); RGVertex <string> V2 = new RGVertex <string>("v2"); RGVertex <string> V3 = new RGVertex <string>("v3"); RGVertex <string> V4 = new RGVertex <string>("v4"); List <RGVertex <string> > Vertices = new List <RGVertex <string> > { V1, V2, V3, V4 }; RGGraph <string> graph = new RGGraph <string>(Vertices); graph.CreateDirectedEdge(V1, V2, 3); graph.CreateDirectedEdge(V4, V1, 1); graph.CreateDirectedEdge(V2, V3, 1); graph.CreateDirectedEdge(V2, V4, -5); sb.Append(graph.ToString()).AppendLine(); sb.Append("End of Testing Directed Graph").AppendLine(); debugClass.WriteStringToFile(DirectedGraphFile, sb.ToString()); }
void TestBFS() { StringBuilder sb = new StringBuilder(); sb.Append("Begin BFS test").AppendLine(); RGVertex <string> V1 = new RGVertex <string>("V1"); RGVertex <string> V2 = new RGVertex <string>("V2"); RGVertex <string> V3 = new RGVertex <string>("V3"); RGVertex <string> V4 = new RGVertex <string>("V4"); RGVertex <string> V5 = new RGVertex <string>("V5"); RGVertex <string> V6 = new RGVertex <string>("V6"); RGVertex <string> V7 = new RGVertex <string>("V7"); List <RGVertex <string> > vertices = new List <RGVertex <string> > { V1, V2, V3, V4, V5, V6, V7 }; RGGraph <string> graph = new RGGraph <string>(vertices); graph.CreateUnDirectedEdge(V4, V5); graph.CreateUnDirectedEdge(V4, V2); graph.CreateUnDirectedEdge(V4, V1); graph.CreateUnDirectedEdge(V5, V6); graph.CreateUnDirectedEdge(V2, V5); graph.CreateUnDirectedEdge(V2, V7); graph.CreateUnDirectedEdge(V2, V1); graph.CreateUnDirectedEdge(V1, V3); graph.CreateUnDirectedEdge(V1, V7); graph.CreateUnDirectedEdge(V7, V6); string graphData = graph.ToString(); sb.Append(graphData).AppendLine(); sb.Append("Running BFS from : ").Append(V4.ToString()).AppendLine(); RGSearchAlgorithms.BreadthFirstSearch <string>(graph, V4); List <RGVertex <string> > fromV6 = RGSearchAlgorithms.GetPathToSource <string>(V6); sb.Append("Start vertex : V6").AppendLine(); foreach (RGVertex <string> vertex in fromV6) { sb.Append(vertex.ToString()); } sb.AppendLine(); List <RGVertex <string> > path = RGSearchAlgorithms.BreadthFirstSearchWithGoal <string>(graph, V6, V3); sb.Append("Path from v3 to v6").AppendLine(); foreach (RGVertex <string> vertex in path) { sb.Append(vertex.ToString()); } sb.AppendLine(); sb.Append("End BFS test").AppendLine(); debugClass.WriteStringToFile(BFSFile, sb.ToString()); }