コード例 #1
0
        public void ShouldReturnZeroRoutesIfTheDestinationIsALeaf()
        {
            var railroad = GivenA.SimpleRailRoad();
            var routes   = new LimitedStopsRouteFinder().Find(railroad, new City("A"), new City("C"), 10);

            routes.Should().Be(0);
        }
コード例 #2
0
        public void Should_Throw_NoRouteException_If_The_Destination_Is_A_Leaf()
        {
            var    railRoad = GivenA.SimpleRailRoad();
            Action act      = () => routesFinder.GetNumberOfRoutesWithDistanceLimit(railRoad, new City("A"), new City("Z"), 120);

            act.ShouldThrow <NoRouteException>();
        }
コード例 #3
0
        public void ShouldCalculateTheDistanceOfRoutesWithMultipleCities(string routeDescription, int expectedDistance)
        {
            var railroad = GivenA.RailRoadWithMultipleTracks();
            int distance = new DistanceEvaluator().MeasureTheDistance(railroad, Route.Parse(routeDescription));

            distance.Should().Be(expectedDistance);
        }
コード例 #4
0
        public void Should_Find_A_Single_Possible_Route_On_Simple_RailRoad_With_A_Single_Stop()
        {
            var railroad       = GivenA.SimpleRailRoad();
            var possibleRoutes = routeFinder.FindPossibleRoutes(railroad, new City("A"), new City("B"), 1);

            possibleRoutes.Should().Be(1);
        }
コード例 #5
0
        public void Should_Find_All_The_Possible_Routes_From_A_To_C_With_Exactly_4_Stops()
        {
            var railroad       = GivenA.RailRoadWithMultipleTracks();
            var possibleRoutes = routeFinder.FindPossibleRoutes(railroad, new City("A"), new City("C"), 4);

            possibleRoutes.Should().Be(3);
        }
コード例 #6
0
        public void Should_Throw_NoRouteException_If_The_Destination_Is_A_Leaf()
        {
            var    railRoad = GivenA.SimpleRailRoad();
            Action act      = () => routesFinder.GetDistanceOfShortestRoute(railRoad, new City("A"), new City("Z"));

            act.ShouldThrow <NoRouteException>();
        }
コード例 #7
0
        public void Should_Return_Zero_Routes_If_The_Destination_Is_A_Leaf()
        {
            var railRoad = GivenA.SimpleRailRoad();
            var leaf     = new City("Z");

            routeFinder.FindPossibleRoutes(railRoad, new City("A"), leaf, 1).Should().Be(0);
        }
コード例 #8
0
        public void ShouldGetAListOfPossibleRoutesFromCityToCityInAComplexRailRoad(string origin, string destination, int maximumStops, int possibleRoutes)
        {
            var railroad = GivenA.RailRoadWithMultipleTracks();
            var routes   = new LimitedStopsRouteFinder().Find(railroad, new City(origin), new City(destination), maximumStops);

            routes.Should().Be(possibleRoutes);
        }
コード例 #9
0
        public void ShouldCalcuteTheCostOfASimpleRouteFrom_CityTo_City(string routeDescription, int expectedDistance)
        {
            var railroad = GivenA.RailRoadWithMultipleTracks();
            var route    = Route.Parse(routeDescription);
            int distance = new DistanceEvaluator().MeasureTheDistance(railroad, route);

            distance.Should().Be(expectedDistance);
        }
コード例 #10
0
        public void Should_Ask_To_Discover_The_Number_Of_Different_Routes_From_C_To_C_With_A_Distance_Less_Than_30()
        {
            var railRoad = GivenA.RailRoadWithMultipleTracks();

            railRoadFactoryMock.Setup(x => x.Create(It.IsAny <string>())).Returns(railRoad);

            railRoadService.Run();
            numberOfRoutesWithDistanceLimitFinderMock.Verify(x => x.GetNumberOfRoutesWithDistanceLimit(railRoad, new City("C"), new City("C"), 30), Times.Once());
        }
コード例 #11
0
        public void ShouldNotModifyTheRouteAfterMeasureTheDistance(string routeDescription)
        {
            var railroad = GivenA.RailRoadWithMultipleTracks();
            var route    = Route.Parse(routeDescription);

            new DistanceEvaluator().MeasureTheDistance(railroad, route);
            Route originalRoute = Route.Parse(routeDescription);

            route.Cities.Count.Should().Be(originalRoute.Cities.Count);
        }
コード例 #12
0
        public void Should_Ask_To_Discover_The_Number_Of_Trips_From_A_To_C_With_Exactly_4_Stops()
        {
            var railRoad = GivenA.SimpleRailRoad();

            railRoadFactoryMock.Setup(x => x.Create(It.IsAny <string>())).Returns(railRoad);

            railRoadService.Run();

            exactNuberStopsRouteFinderMock.Verify(x => x.FindPossibleRoutes(railRoad, new City("A"), new City("C"), 4), Times.Once());
        }
コード例 #13
0
        public void Should_Ask_To_Discover_The_Number_Of_Trips_From_C_To_C_With_A_Limit_Of_3_Stops()
        {
            var railRoad = GivenA.SimpleRailRoad();

            railRoadFactoryMock.Setup(x => x.Create(It.IsAny <string>())).Returns(railRoad);

            railRoadService.Run();

            limitedStopsRouteFinderMock.Verify(x => x.Find(railRoad, new City("C"), new City("C"), 3), Times.Once());
        }
コード例 #14
0
        public void Should_Ask_For_Distance_Measurment_Of_The_Predetermined_Routes(string route)
        {
            var railRoad = GivenA.SimpleRailRoad();

            railRoadFactoryMock.Setup(x => x.Create(It.IsAny <string>())).Returns(railRoad);

            railRoadService.Run();

            distanceEvaluator.Verify(x => x.MeasureTheDistance(railRoad, Route.Parse(route)), Times.Once());
        }
コード例 #15
0
        public void Should_Ask_For_The_Length_Of_Shortest_Route_From_City_To_City(string origin, string destination)
        {
            var railRoad = GivenA.SimpleRailRoad();

            railRoadFactoryMock.Setup(x => x.Create(It.IsAny <string>())).Returns(railRoad);

            railRoadService.Run();

            shortestRoutFinderMock.Verify(x => x.GetDistanceOfShortestRoute(railRoad, new City(origin), new City(destination)), Times.Once());
        }
コード例 #16
0
        public void ShouldThrowANoRouteExceptionIfTheRouteDoesNotExist(string routeDescription, bool shouldThrowException)
        {
            var    railroad = GivenA.RailRoadWithMultipleTracks();
            Action act      = () => new DistanceEvaluator().MeasureTheDistance(railroad, Route.Parse(routeDescription));

            if (shouldThrowException)
            {
                act.ShouldThrow <NoRouteException>("There is no such route!");
            }
            else
            {
                act.ShouldNotThrow <NoRouteException>("This route exists!");
            }
        }
コード例 #17
0
ファイル: RouteTests.cs プロジェクト: ruckbeard/Trains
        public void ShouldAppendCitiesInTheRoute()
        {
            var route          = new Route();
            var expectedCities = GivenA.ListOfCities();

            foreach (var city in expectedCities)
            {
                route.AppendCity(city);
            }

            route.Cities.Count.Should().Be(expectedCities.Count);
            foreach (var expectedCity in expectedCities)
            {
                route.Cities.Should().Contain(expectedCity);
            }
        }
コード例 #18
0
        public void Should_Find_Shortest_Track_From_A_RailRoad_With_Multiple_Tracks(string origin, string destination, int shortestRoute)
        {
            var railroad = GivenA.RailRoadWithMultipleTracks();

            routesFinder.GetDistanceOfShortestRoute(railroad, new City(origin), new City(destination)).Should().Be(shortestRoute);
        }
コード例 #19
0
        public void Should_Find_Simple_Routes_With_Limited_Distances_On_A_Complex_RailRoad()
        {
            var railRoad = GivenA.RailRoadWithMultipleTracks();

            routesFinder.GetNumberOfRoutesWithDistanceLimit(railRoad, new City("C"), new City("C"), 30).Should().Be(7);
        }