public void FindsShortestRouteBetweenTwoStationsNoChange() { IRouteFinder routeFinder = new DijkstraRouteFinder(); var routeAtoB = routeFinder.FindShortestRoute(routes, "A", "B"); Assert.That(routeAtoB.Item1, Has.Count.EqualTo(2)); Assert.That(routeAtoB.Item1.ElementAt(0), Has.Count.EqualTo("A")); Assert.That(routeAtoB.Item1.ElementAt(1), Has.Count.EqualTo("B")); Assert.That(routeAtoB.Item2, Is.EqualTo(3)); }
private void FindsCorrectForEightVertices(IFastestRouteFinder algorithm, int start, int target, int expectedDistance, int[] expectedRoute) { // Arrange var graph = new int[, ] { { 0, 2, 3, -1, -1, -1, -1, -1 }, { 2, 0, -1, 7, -1, -1, -1, -1 }, { 3, -1, 0, 9, 4, -1, -1, -1 }, { -1, 7, 9, 0, -1, 6, 5, -1 }, { -1, -1, 4, -1, 0, 7, -1, 9 }, { -1, -1, -1, 6, 7, 0, 10, 12 }, { -1, -1, -1, 5, -1, 10, 0, -1 }, { -1, -1, -1, -1, 9, 12, -1, 0 } }; var dijkstra = new DijkstraRouteFinder(); // Act var result = algorithm.Find(graph, start, target); // Assert result.Distance.Should().Be(expectedDistance); result.Route.Should().BeEquivalentTo(expectedRoute); }
public void FindsCorrectForEightVertices_Dijkstra(int start, int target, int expectedDistance, int[] expectedRoute) { var dijkstra = new DijkstraRouteFinder(); FindsCorrectForEightVertices(dijkstra, start, target, expectedDistance, expectedRoute); }