Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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());
        }