Beispiel #1
0
        /*This method is called when a user wants to search for a path, from start to end*/
        public static void ChoosePath()
        {
            //Local variables
            string startInput;
            string endInput;
            Node   startNode;
            Node   endNode;
            Vertex resultShortestRoute;

            Console.WriteLine("Enter start position : ");
            startInput = Console.ReadLine();
            Console.WriteLine("Enter end position : ");
            endInput = Console.ReadLine();

            //Checks if input exist or not. If it does we will call  the method to calculate shortest route , if not user will be noticed
            if (connector.Nodes.Contains(connector.Nodes.Find(x => x.Name == startInput)) && connector.Nodes.Contains(connector.Nodes.Find(x => x.Name == endInput)))
            {
                startNode = connector.Nodes.Find(x => x.Name == startInput);
                endNode   = connector.Nodes.Find(x => x.Name == endInput);

                resultShortestRoute = roadSearch.FindShortestPath(connector.Nodes[connector.Nodes.IndexOf(startNode)], connector.Nodes[connector.Nodes.IndexOf(endNode)], 0);

                Console.WriteLine("This is the way we can recomend as it appears to be the fastest : ");
                ShowChoosenPath(endInput, startInput);

                Console.WriteLine("The weight of this route is " + resultShortestRoute.GoldenNumber);
            }
            else
            {
                Console.WriteLine("Any of your choosen destinations does not exist");
            }
        }
Beispiel #2
0
        public void TestThatTheParentVertexIsTheExpected()
        {
            mock       = new MockObject();
            calculator = new RouteCalculator(mock.mockObject);
            testVertex = calculator.FindShortestPath(mock.mockObject[0], mock.mockObject[2], 0);

            Assert.IsTrue(testVertex.ParentVertex == "E");
        }
Beispiel #3
0
        public void TestThatRightNodeGetsReturned()
        {
            mock       = new MockObject();
            calculator = new RouteCalculator(mock.mockObject);
            testVertex = calculator.FindShortestPath(mock.mockObject[0], mock.mockObject[2], 0);

            Assert.IsTrue(testVertex.VertexName == "C");
        }
Beispiel #4
0
        public void TestThatShortestPathIsCalculatedCorrectly()
        {
            mock       = new MockObject();
            calculator = new RouteCalculator(mock.mockObject);
            testVertex = calculator.FindShortestPath(mock.mockObject[0], mock.mockObject[2], 0);

            Assert.IsTrue(testVertex.GoldenNumber == 6);
        }
Beispiel #5
0
        public void TestThatItTakeTheExpectedWay()
        {
            mock       = new MockObject();
            calculator = new RouteCalculator(mock.mockObject);
            testVertex = calculator.FindShortestPath(mock.mockObject[0], mock.mockObject[4], 0);

            Assert.IsTrue(testVertex.ParentVertex == "B");
            Assert.IsTrue(testVertex.VertexName == "E");
            Assert.AreEqual(testVertex.GoldenNumber, 5);
        }
Beispiel #6
0
        public void TestRouteConnectorAnNodeConnectionsWithCalculateRoute()
        {
            testConnector = new RouteConnector();
            testConnector.ConnectRoutes();
            calculator = new RouteCalculator(testConnector.Nodes);
            testVertex = calculator.FindShortestPath(testConnector.Nodes[0], testConnector.Nodes[1], 0);

            Assert.AreEqual(testVertex.VertexName, testConnector.Nodes[1].Name);
            Assert.IsTrue(testVertex.Distance < 10);
            Assert.IsTrue(testVertex.Distance > 0);
            Assert.IsTrue(testConnector.Nodes.Count == 10);
        }
Beispiel #7
0
        public void B()
        {
            Random one = new Random();
            Random two = new Random();

            for (int i = 0; i < 10000000; i++)
            {
                RouteConnector a = new RouteConnector();
                a.ConnectRoutes();
                RouteCalculator b = new RouteCalculator(a.Nodes);
                int             s = one.Next(0, a.Nodes.Count);
                int             u = two.Next(0, a.Nodes.Count);
                if (s != u)
                {
                    b.FindShortestPath(a.Nodes[s], a.Nodes[u], 0);
                }
            }
            Assert.Pass();
        }