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));
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        public void FindsCorrectForEightVertices_Dijkstra(int start, int target, int expectedDistance, int[] expectedRoute)
        {
            var dijkstra = new DijkstraRouteFinder();

            FindsCorrectForEightVertices(dijkstra, start, target, expectedDistance, expectedRoute);
        }