/*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"); } }
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"); }
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"); }
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); }
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); }
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); }
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(); }