Example #1
0
        public void SimpleTestChangeGoal()
        {
            DataWeightedGraph <string> graph = new DataWeightedGraph <string>();
            uint a1 = graph.AddNode("1");
            uint a2 = graph.AddNode("2");
            uint a3 = graph.AddNode("3");
            uint a4 = graph.AddNode("4");
            uint a5 = graph.AddNode("5");

            graph.Link(a1, a3, 1.0f);
            graph.Link(a1, a2, 3.0f);
            graph.Link(a3, a2, 1.0f);
            graph.Link(a2, a4, 2.0f);
            graph.Link(a4, a5, 1.0f);
            graph.Link(a1, a5, 7.0f);

            Dijkstra dijkstra = new Dijkstra(graph, a1, a5);

            dijkstra.Search();
            dijkstra.ChangeGoal(a4);
            dijkstra.Search();

            SearchResult result = dijkstra.Result;

            Assert.AreEqual(4.0, result.Cost);
            Assert.AreEqual(4, result.Count);
        }
        public void SimpleTestChangeGoal()
        {
            DataWeightedGraph <string> graph = new DataWeightedGraph <string>();
            uint a1 = graph.AddNode("1");
            uint a2 = graph.AddNode("2");
            uint a3 = graph.AddNode("3");
            uint a4 = graph.AddNode("4");
            uint a5 = graph.AddNode("5");

            graph.Link(a1, a3, 1.0f);
            graph.Link(a1, a2, 3.0f);
            graph.Link(a3, a2, 1.0f);
            graph.Link(a2, a4, 2.0f);
            graph.Link(a4, a5, 1.0f);
            graph.Link(a1, a5, 7.0f);

            BellmanFordSearch bf = new BellmanFordSearch(graph, a1);

            bf.Search();


            SearchResult result = bf[a4];

            Assert.AreEqual(4.0, result.Cost);
            Assert.AreEqual(4, result.Count);
        }
Example #3
0
        public void SimpleTest()
        {
            DataWeightedGraph <Vector2f> graph = new DataWeightedGraph <Vector2f>();
            uint a1 = graph.AddNode(Vector2f.Zero);
            uint a2 = graph.AddNode(new Vector2f(1.0f, 0.0f));
            uint a3 = graph.AddNode(new Vector2f(0.5f, 0.5f));
            uint a4 = graph.AddNode(new Vector2f(2.0f, 0.5f));
            uint a5 = graph.AddNode(new Vector2f(3.0f, 0.0f));

            graph.Link(a1, a2, 1.0f);
            graph.Link(a2, a3, (new Vector2f(0.5f, 0.5f)).Length);
            graph.Link(a2, a4, (new Vector2f(1.5f, 0.0f)).Length);
            graph.Link(a4, a5, (new Vector2f(1.0f, 0.5f)).Length);

            AStarSearch aStar = new AStarSearch(graph, a1, a5,
                                                delegate(uint from, uint to)
            {
                return((graph[from] - graph[to]).Length);
            });

            aStar.Search();

            SearchResult result = aStar.Result;

            Assert.AreEqual(4, result.Count);
        }
Example #4
0
        public void AllPaths()
        {
            DataWeightedGraph <string> graph = new DataWeightedGraph <string>();
            uint a1 = graph.AddNode("1");
            uint a2 = graph.AddNode("2");
            uint a3 = graph.AddNode("3");
            uint a4 = graph.AddNode("4");
            uint a5 = graph.AddNode("5");

            graph.Link(a1, a3, 1.0f);
            graph.Link(a1, a2, 3.0f);
            graph.Link(a3, a2, 1.0f);
            graph.Link(a2, a4, 2.0f);
            graph.Link(a4, a5, 1.0f);
            graph.Link(a1, a5, 7.0f);

            FloydWarshallSearch floydMarshall = new FloydWarshallSearch(graph);

            floydMarshall.Search();

            Assert.AreEqual(5.0f, floydMarshall[a1, a5]);
        }