예제 #1
0
class RailwaySampleDataTest(unittest.TestCase):
    def setUp(self):
        routes = "AB5, BC4, CD8, DC8, DE6, AD5, CE2, EB3, AE7"
        self.rail = Railway(routes)

    def test_distances(self):
        self.assertEqual(self.rail.get_route_distance('A', 'B', 'C'), 9)
        self.assertEqual(self.rail.get_route_distance('A', 'D'), 5)
        self.assertEqual(self.rail.get_route_distance('A', 'D', 'C'), 13)
        self.assertEqual(self.rail.get_route_distance('A', 'E', 'B', 'C', 'D'),
                         22)
        self.assertEqual(self.rail.get_route_distance('A', 'E', 'D'), None)

    def test_find_routes_by_stops(self):
        self.assertEqual(len(self.rail.find_routes_by_stops('C', 'C', 3)), 2)
        self.assertEqual(
            len(
                self.rail.find_routes_by_stops('A', 'C', 4,
                                               Railway.FindModes.exact)), 3)

    def test_find_shortest_route(self):
        self.assertEqual(self.rail.shortest_route('A', 'C'), 9)
        self.assertEqual(self.rail.shortest_route('B', 'B'), 9)

    def test_find_routes_by_distance(self):
        self.assertEqual(len(self.rail.find_routes_by_distance('C', 'C', 30)),
                         7)
예제 #2
0
 def test_get_route_distance(self):
     routes = ['AB1', 'AC2', 'CA4']
     rail = Railway(routes)
     self.assertRaises(ValueError, rail.get_route_distance, None, 'A')
     self.assertRaises(KeyError, rail.get_route_distance, 'D', 'A')
     self.assertEqual(rail.get_route_distance('A', 'B'), 1)
     self.assertEqual(rail.get_route_distance('A', 'C'), 2)
     self.assertEqual(rail.get_route_distance('C', 'A'), 4)
     self.assertEqual(rail.get_route_distance('A', 'C', 'A'), 6)
     self.assertEqual(rail.get_route_distance('B', 'C'), None)
예제 #3
0
    print('Our latest railway map is: {}'.format(route))
    change_graph = input('Is this correct? Y/N: ')
    if change_graph.upper() == 'Y':
        break
    else:
        route = input('Please enter the latest railway map: ')

rail = Railway(route)
print_menu()

while True:
    print('')
    menu_selection = input('Your selection: ').upper()
    if menu_selection == '1':
        print('Output #1: {}'.format(
            rail.get_route_distance('A', 'B', 'C') or 'NO SUCH ROUTE'))
        print('Output #2: {}'.format(
            rail.get_route_distance('A', 'D') or 'NO SUCH ROUTE'))
        print('Output #3: {}'.format(
            rail.get_route_distance('A', 'D', 'C') or 'NO SUCH ROUTE'))
        print('Output #4: {}'.format(
            rail.get_route_distance('A', 'E', 'B', 'C', 'D')
            or 'NO SUCH ROUTE'))
        print('Output #5: {}'.format(
            rail.get_route_distance('A', 'E', 'D') or 'NO SUCH ROUTE'))
        print('Output #6: {}'.format(
            len(rail.find_routes_by_stops('C', 'C', 3))))
        print('Output #7: {}'.format(
            len(rail.find_routes_by_stops('A', 'C', 4,
                                          Railway.FindModes.exact))))
        print('Output #8: {}'.format(rail.shortest_route('A', 'C')))