public void PossibleTrips_should_return_the_trips_between_two_cities()
        {
            RoutesCalculator routesCalculator = new RoutesCalculator();

            City A = new City('A');
            City B = new City('B');
            City C = new City('C');
            City D = new City('D');
            City E = new City('E');

            A.Connections.Add(B, 5);
            B.Connections.Add(C, 4);
            C.Connections.Add(D, 8);
            D.Connections.Add(C, 8);
            D.Connections.Add(E, 6);
            A.Connections.Add(D, 5);
            C.Connections.Add(E, 2);
            E.Connections.Add(B, 3);
            A.Connections.Add(E, 7);

            Assert.IsTrue(2 == routesCalculator.PossibleTrips(C, C, 3).Count);
            Assert.IsTrue(3 == routesCalculator.PossibleTrips(A, C, 3).Count);
            Assert.IsTrue(6 == routesCalculator.PossibleTrips(A, C, 4).Count);
            Assert.IsTrue(3 == routesCalculator.PossibleTrips(D, C, 3).Count);
            Assert.IsTrue(1 == routesCalculator.PossibleTrips(E, B, 1).Count);
            Assert.IsTrue(2 == routesCalculator.PossibleTrips(E, C, 4).Count);
        }
        public void PossibleTrips_should_return_the_trips_between_two_cities()
        {
            RoutesCalculator routesCalculator = new RoutesCalculator();

            City A = new City('A');
            City B = new City('B');
            City C = new City('C');
            City D = new City('D');
            City E = new City('E');

            A.Connections.Add(B, 5);
            B.Connections.Add(C, 4);
            C.Connections.Add(D, 8);
            D.Connections.Add(C, 8);
            D.Connections.Add(E, 6);
            A.Connections.Add(D, 5);
            C.Connections.Add(E, 2);
            E.Connections.Add(B, 3);
            A.Connections.Add(E, 7);

            Assert.IsTrue(2 == routesCalculator.PossibleTrips(C, C, 3).Count);
            Assert.IsTrue(3 == routesCalculator.PossibleTrips(A, C, 3).Count);
            Assert.IsTrue(6 == routesCalculator.PossibleTrips(A, C, 4).Count);
            Assert.IsTrue(3 == routesCalculator.PossibleTrips(D, C, 3).Count);
            Assert.IsTrue(1 == routesCalculator.PossibleTrips(E, B, 1).Count);
            Assert.IsTrue(2 == routesCalculator.PossibleTrips(E, C, 4).Count);
        }