コード例 #1
0
def test_has_correctly_ordered_route_with_stop_missing_linkrefid():
    a = Stop(id='1', x=4, y=2, epsg='epsg:27700')
    a.add_additional_attributes({'linkRefId': '10'})
    b = Stop(id='2', x=4, y=2, epsg='epsg:27700')
    b.add_additional_attributes({'linkRefId': '20'})
    c = Stop(id='3', x=4, y=2, epsg='epsg:27700')

    r = Route(route_short_name='name',
              mode='bus',
              stops=[a, b, c],
              trips={
                  'trip_id': ['1', '2'],
                  'trip_departure_time': ['10:00:00', '20:00:00'],
                  'vehicle_id': ['veh_1_bus', 'veh_2_bus']
              },
              arrival_offsets=['1', '2'],
              departure_offsets=['1', '2'],
              route=['10', '15', '30', '25', '20'],
              id='1')
    assert not r.has_correctly_ordered_route()
コード例 #2
0
def test_read_matsim_schedule_returns_expected_schedule():
    schedule = Schedule('epsg:27700')
    schedule.read_matsim_schedule(pt2matsim_schedule_file)

    correct_services = Service(id='10314', routes=[
        Route(
            route_short_name='12', id='VJbd8660f05fe6f744e58a66ae12bd66acbca88b98',
            mode='bus',
            stops=[Stop(id='26997928P', x='528464.1342843144', y='182179.7435136598', epsg='epsg:27700'),
                   Stop(id='26997928P.link:1', x='528464.1342843144', y='182179.7435136598', epsg='epsg:27700')],
            route=['1'],
            trips={'VJ00938baa194cee94700312812d208fe79f3297ee_04:40:00': '04:40:00'},
            arrival_offsets=['00:00:00', '00:02:00'],
            departure_offsets=['00:00:00', '00:02:00']
        )
    ])

    for key, val in schedule.services.items():
        assert val == correct_services
    assert_semantically_equal(schedule.stop_to_service_ids_map(),
                              {'26997928P.link:1': ['10314'], '26997928P': ['10314']})
    assert_semantically_equal(schedule.stop_to_route_ids_map(),
                              {'26997928P': ['VJbd8660f05fe6f744e58a66ae12bd66acbca88b98'],
                               '26997928P.link:1': ['VJbd8660f05fe6f744e58a66ae12bd66acbca88b98']})
コード例 #3
0
def schedule():
    route_1 = Route(route_short_name='name',
                    mode='bus', id='1',
                    stops=[Stop(id='1', x=4, y=2, epsg='epsg:27700'), Stop(id='2', x=1, y=2, epsg='epsg:27700'),
                           Stop(id='3', x=3, y=3, epsg='epsg:27700'), Stop(id='4', x=7, y=5, epsg='epsg:27700')],
                    trips={'1': '13:00:00', '2': '13:30:00'},
                    arrival_offsets=['00:00:00', '00:03:00', '00:07:00', '00:13:00'],
                    departure_offsets=['00:00:00', '00:05:00', '00:09:00', '00:15:00'])
    route_2 = Route(route_short_name='name_2',
                    mode='bus', id='2',
                    stops=[Stop(id='5', x=4, y=2, epsg='epsg:27700'), Stop(id='6', x=1, y=2, epsg='epsg:27700'),
                           Stop(id='7', x=3, y=3, epsg='epsg:27700'), Stop(id='8', x=7, y=5, epsg='epsg:27700')],
                    trips={'1': '11:00:00', '2': '13:00:00'},
                    arrival_offsets=['00:00:00', '00:03:00', '00:07:00', '00:13:00'],
                    departure_offsets=['00:00:00', '00:05:00', '00:09:00', '00:15:00'])
    service = Service(id='service', routes=[route_1, route_2])
    return Schedule(epsg='epsg:27700', services=[service])
コード例 #4
0
def schedule():
    return Schedule(epsg='epsg:27700', services=[
        Service(id='service1',
                routes=[
                    Route(id='1', route_short_name='route1', mode='bus',
                          stops=[
                              Stop(id='0', x=529455.7452394223, y=182401.37630677427, epsg='epsg:27700', linkRefId='0'),
                              Stop(id='1', x=529350.7866124967, y=182388.0201078112, epsg='epsg:27700', linkRefId='1')],
                          trips={'trip_id': ['route1_04:40:00'], 'trip_departure_time': ['04:40:00'],
                                 'vehicle_id': ['veh_0_bus']},
                          arrival_offsets=['00:00:00', '00:02:00'],
                          departure_offsets=['00:00:00', '00:02:00'],
                          route=['0', '1']),
                    Route(id='2', route_short_name='route2', mode='bus',
                          stops=[
                              Stop(id='1', x=529455.7452394223, y=182401.37630677427, epsg='epsg:27700', linkRefId='1'),
                              Stop(id='2', x=529350.7866124967, y=182388.0201078112, epsg='epsg:27700', linkRefId='2')],
                          trips={'trip_id': ['route2_05:40:00'], 'trip_departure_time': ['05:40:00'],
                                 'vehicle_id': ['veh_1_bus']},
                          arrival_offsets=['00:00:00', '00:03:00'],
                          departure_offsets=['00:00:00', '00:05:00'],
                          route=['1', '2'])
                ]),
        Service(id='service2',
                routes=[
                    Route(id='3', route_short_name='route3', mode='rail',
                          stops=[
                              Stop(id='3', x=529455.7452394223, y=182401.37630677427, epsg='epsg:27700', linkRefId='3'),
                              Stop(id='4', x=529350.7866124967, y=182388.0201078112, epsg='epsg:27700', linkRefId='4')],
                          trips={'trip_id': ['route3_04:40:00'], 'trip_departure_time': ['04:40:00'],
                                 'vehicle_id': ['veh_2_rail']},
                          arrival_offsets=['00:00:00', '00:02:00'],
                          departure_offsets=['00:00:00', '00:02:00'],
                          route=['3', '4']),
                    Route(id='4', route_short_name='route4', mode='rail',
                          stops=[
                              Stop(id='4', x=529455.7452394223, y=182401.37630677427, epsg='epsg:27700', linkRefId='4'),
                              Stop(id='5', x=529350.7866124967, y=182388.0201078112, epsg='epsg:27700', linkRefId='5')],
                          trips={'trip_id': ['route4_05:40:00'], 'trip_departure_time': ['05:40:00'],
                                 'vehicle_id': ['veh_3_rail']},
                          arrival_offsets=['00:00:00', '00:03:00'],
                          departure_offsets=['00:00:00', '00:05:00'],
                          route=['4', '5'])
                ])
    ])
コード例 #5
0
def service_with_separated_routes():
    return Service(id='service1',
                      routes=[
                          Route(id='1', route_short_name='route1', mode='bus',
                                stops=[
                                    Stop('0', x=0, y=0, epsg='epsg:4326'),
                                    Stop('1', x=0, y=1, epsg='epsg:4326'),
                                ],
                                trips={
                                    'trip_id': ['route1_04:40:00'],
                                    'trip_departure_time': ['04:40:00'],
                                    'vehicle_id': ['veh_bus_1']
                                },
                                arrival_offsets=['00:00:00', '00:02:00'],
                                departure_offsets=['00:00:00', '00:02:00'],
                                route=[]),
                          Route(id='2', route_short_name='route2', mode='bus',
                                stops=[
                                    Stop('2', x=0, y=2, epsg='epsg:4326'),
                                    Stop('3', x=0, y=3, epsg='epsg:4326'),
                                ],
                                trips={
                                    'trip_id': ['route2_05:40:00'],
                                    'trip_departure_time': ['05:40:00'],
                                    'vehicle_id': ['veh_bus_2']
                                },
                                arrival_offsets=['00:00:00', '00:03:00'],
                                departure_offsets=['00:00:00', '00:05:00'],
                                route=[]),
                          Route(id='3', route_short_name='route3', mode='bus',
                                stops=[
                                    Stop('0', x=0, y=0, epsg='epsg:4326'),
                                    Stop('1', x=0, y=1, epsg='epsg:4326'),
                                    Stop('2', x=0, y=2, epsg='epsg:4326'),
                                    Stop('3', x=0, y=3, epsg='epsg:4326')
                                ],
                                trips={
                                    'trip_id': ['route1_04:40:00'],
                                    'trip_departure_time': ['04:40:00'],
                                    'vehicle_id': ['veh_bus_3']
                                },
                                arrival_offsets=['00:00:00', '00:02:00'],
                                departure_offsets=['00:00:00', '00:02:00'],
                                route=['0', '1', '2', '3'])
                      ])
コード例 #6
0
def test_initiate_stop_with_kwargs():
    a = Stop(id='0', x=528504.1342843144, y=182155.7435136598, epsg='epsg:27700', linkRefId='1')
    assert a.has_linkRefId()
コード例 #7
0
def test_is_valid_with_single_stop_network():
    route = Route(route_short_name='name',
                  mode='bus',
                  stops=[Stop(id='1', x=4, y=2, epsg='epsg:27700')],
                  trips={}, arrival_offsets=[], departure_offsets=[])
    assert not route.is_valid_route()
コード例 #8
0
def test_has_id_with_stop_with_bad_id():
    a = Stop(id='',
             x=-0.14910908709500162,
             y=51.52370573323939,
             epsg='epsg:4326')
    assert not a.has_id()
コード例 #9
0
def test_route_is_not_in_exact_list(stop_epsg_27700):
    a = Stop(id='0', x=-3, y=52, epsg='epsg:4326')

    assert not a.isin_exact(
        [stop_epsg_27700, stop_epsg_27700, stop_epsg_27700])
コード例 #10
0
def service_with_routes_that_have_non_overlapping_graph_edges():
    return Service(id='service1',
                   routes=[
                       Route(id='1_dir_1',
                             route_short_name='route1',
                             mode='rail',
                             stops=[
                                 Stop('A', x=0, y=1, epsg='epsg:4326'),
                                 Stop('B', x=0, y=2, epsg='epsg:4326'),
                                 Stop('C', x=0, y=3, epsg='epsg:4326'),
                                 Stop('D', x=0, y=4, epsg='epsg:4326')
                             ],
                             trips={
                                 'trip_id': ['route1_04:40:00'],
                                 'trip_departure_time': ['04:40:00'],
                                 'vehicle_id': ['veh_bus_1']
                             },
                             arrival_offsets=['', '', ''],
                             departure_offsets=['', '', '']),
                       Route(id='2_dir_1',
                             route_short_name='route2',
                             mode='rail',
                             stops=[
                                 Stop('A', x=0, y=1, epsg='epsg:4326'),
                                 Stop('C', x=0, y=3, epsg='epsg:4326')
                             ],
                             trips={
                                 'trip_id': ['route2_05:40:00'],
                                 'trip_departure_time': ['05:40:00'],
                                 'vehicle_id': ['veh_bus_2']
                             },
                             arrival_offsets=['', '', ''],
                             departure_offsets=['', '', '']),
                       Route(id='3_dir_2',
                             route_short_name='route3',
                             mode='rail',
                             stops=[
                                 Stop('C', x=0, y=3, epsg='epsg:4326'),
                                 Stop('B', x=0, y=2, epsg='epsg:4326'),
                                 Stop('A', x=0, y=1, epsg='epsg:4326')
                             ],
                             trips={
                                 'trip_id': ['route1_04:40:00'],
                                 'trip_departure_time': ['04:40:00'],
                                 'vehicle_id': ['veh_bus_3']
                             },
                             arrival_offsets=['', '', ''],
                             departure_offsets=['', '', '']),
                       Route(id='4_dir_2',
                             route_short_name='route4',
                             mode='rail',
                             stops=[
                                 Stop('C', x=0, y=3, epsg='epsg:4326'),
                                 Stop('A', x=0, y=1, epsg='epsg:4326')
                             ],
                             trips={
                                 'trip_id': ['route1_04:40:00'],
                                 'trip_departure_time': ['04:40:00'],
                                 'vehicle_id': ['veh_bus_4']
                             },
                             arrival_offsets=['', '', ''],
                             departure_offsets=['', '', '']),
                   ])
コード例 #11
0
def test_stops_exact():
    a = Stop(id='0', x=-0.14910908709500162, y=51.52370573323939, epsg='epsg:4326')
    b = Stop(id='0', x=-0.14910908709500162, y=51.52370573323939, epsg='epsg:4326')

    assert a.is_exact(b)
コード例 #12
0
ファイル: fixtures.py プロジェクト: Safadiyazan/genet
def stop_epsg_4326():
    return Stop(id='0',
                x=-0.14910908709500162,
                y=51.52370573323939,
                epsg='epsg:4326')
コード例 #13
0
ファイル: fixtures.py プロジェクト: Safadiyazan/genet
def stop_epsg_27700():
    return Stop(id='0',
                x=528504.1342843144,
                y=182155.7435136598,
                epsg='epsg:27700')
コード例 #14
0
def test_has_correctly_ordered_route_with_no_route():
    a = Stop(id='1', x=4, y=2, epsg='epsg:27700')
    a.add_additional_attributes({'linkRefId': '10'})
    b = Stop(id='2', x=4, y=2, epsg='epsg:27700')
    b.add_additional_attributes({'linkRefId': '20'})
    c = Stop(id='3', x=4, y=2, epsg='epsg:27700')
    c.add_additional_attributes({'linkRefId': '30'})

    r = Route(route_short_name='name',
              mode='bus',
              stops=[a, b, c],
              trips={
                  '1': '1',
                  '2': '2'
              },
              arrival_offsets=['1', '2'],
              departure_offsets=['1', '2'],
              route=[],
              id='1')
    assert not r.has_correctly_ordered_route()
コード例 #15
0
def test_stops_equal():
    a = Stop(id='0', x=528504.1342843144, y=182155.7435136598, epsg='epsg:27700')
    b = Stop(id='0', x=528504.1342843144, y=182155.7435136598, epsg='epsg:27700')

    assert a == b
コード例 #16
0
def test_stop_already_in_epsg_4326_gives_lat_lon():
    a = Stop(id='0', x=-0.14910908709500162, y=51.52370573323939, epsg='epsg:4326')

    assert a.lat == a.y
    assert a.lon == a.x
コード例 #17
0
def test_has_linkRefId_with_stop_which_has_linkRefId():
    a = Stop(id='0', x=-0.14910908709500162, y=51.52370573323939, epsg='epsg:4326')
    a.add_additional_attributes({'linkRefId': '1234'})
    assert a.has_linkRefId()
コード例 #18
0
def test_build_graph_builds_correct_graph():
    route = Route(route_short_name='name',
                  mode='bus',
                  stops=[
                      Stop(id='1', x=4, y=2, epsg='epsg:27700'),
                      Stop(id='2', x=1, y=2, epsg='epsg:27700'),
                      Stop(id='3', x=3, y=3, epsg='epsg:27700'),
                      Stop(id='4', x=7, y=5, epsg='epsg:27700')
                  ],
                  trips={
                      'trip_id': ['1', '2'],
                      'trip_departure_time': ['1', '2'],
                      'vehicle_id': ['veh_3_bus', 'veh_4_bus']
                  },
                  arrival_offsets=['1', '2'],
                  departure_offsets=['1', '2'])
    g = route.graph()
    assert_semantically_equal(
        dict(g.nodes(data=True)), {
            '1': {
                'routes': {''},
                'id': '1',
                'x': 4.0,
                'y': 2.0,
                'epsg': 'epsg:27700',
                'lat': 49.76682779861249,
                'lon': -7.557106577683727,
                's2_id': 5205973754090531959,
                'name': '',
                'additional_attributes': set()
            },
            '2': {
                'routes': {''},
                'id': '2',
                'x': 1.0,
                'y': 2.0,
                'epsg': 'epsg:27700',
                'lat': 49.766825803756994,
                'lon': -7.557148039524952,
                's2_id': 5205973754090365183,
                'name': '',
                'additional_attributes': set()
            },
            '3': {
                'routes': {''},
                'id': '3',
                'x': 3.0,
                'y': 3.0,
                'epsg': 'epsg:27700',
                'lat': 49.76683608549253,
                'lon': -7.557121424907424,
                's2_id': 5205973754090203369,
                'name': '',
                'additional_attributes': set()
            },
            '4': {
                'routes': {''},
                'id': '4',
                'x': 7.0,
                'y': 5.0,
                'epsg': 'epsg:27700',
                'lat': 49.766856648946295,
                'lon': -7.5570681956375,
                's2_id': 5205973754097123809,
                'name': '',
                'additional_attributes': set()
            }
        })
    assert_semantically_equal(
        g.edges(data=True)._adjdict, {
            '1': {
                '2': {
                    'routes': {''}
                }
            },
            '2': {
                '3': {
                    'routes': {''}
                }
            },
            '3': {
                '4': {
                    'routes': {''}
                }
            },
            '4': {}
        })
コード例 #19
0
def test__repr__shows_projection():
    a = Stop(id='0', x=528504.1342843144, y=182155.7435136598, epsg='epsg:27700')
    r = a.__repr__()
    assert 'epsg:27700' in r
コード例 #20
0
def service_with_loopy_routes():
    return Service(id='service1',
                   routes=[
                       Route(id='1_dir_1',
                             route_short_name='route1',
                             mode='bus',
                             stops=[
                                 Stop('A', x=1, y=0, epsg='epsg:4326'),
                                 Stop('B', x=0, y=-1, epsg='epsg:4326'),
                                 Stop('C', x=-1, y=0, epsg='epsg:4326'),
                                 Stop('D', x=0, y=1, epsg='epsg:4326'),
                                 Stop('A', x=1, y=0, epsg='epsg:4326'),
                             ],
                             trips={
                                 'trip_id': ['route1_04:40:00'],
                                 'trip_departure_time': ['04:40:00'],
                                 'vehicle_id': ['veh_bus_1']
                             },
                             arrival_offsets=['', '', ''],
                             departure_offsets=['', '', '']),
                       Route(id='2_dir_1',
                             route_short_name='route2',
                             mode='bus',
                             stops=[
                                 Stop('A', x=1, y=0, epsg='epsg:4326'),
                                 Stop('C', x=-1, y=0, epsg='epsg:4326'),
                                 Stop('D', x=0, y=1, epsg='epsg:4326'),
                                 Stop('A', x=1, y=0, epsg='epsg:4326'),
                             ],
                             trips={
                                 'trip_id': ['route2_05:40:00'],
                                 'trip_departure_time': ['05:40:00'],
                                 'vehicle_id': ['veh_bus_2']
                             },
                             arrival_offsets=['', '', ''],
                             departure_offsets=['', '', '']),
                       Route(id='3_dir_2',
                             route_short_name='route3',
                             mode='bus',
                             stops=[
                                 Stop('A', x=1, y=0, epsg='epsg:4326'),
                                 Stop('D', x=0, y=1, epsg='epsg:4326'),
                                 Stop('C', x=-1, y=0, epsg='epsg:4326'),
                                 Stop('B', x=0, y=-1, epsg='epsg:4326'),
                                 Stop('A', x=1, y=0, epsg='epsg:4326'),
                             ],
                             trips={
                                 'trip_id': ['route1_04:40:00'],
                                 'trip_departure_time': ['04:40:00'],
                                 'vehicle_id': ['veh_bus_3']
                             },
                             arrival_offsets=['', '', ''],
                             departure_offsets=['', '', '']),
                       Route(id='4_dir_2',
                             route_short_name='route4',
                             mode='bus',
                             stops=[
                                 Stop('A', x=1, y=0, epsg='epsg:4326'),
                                 Stop('D', x=0, y=1, epsg='epsg:4326'),
                                 Stop('C', x=-1, y=0, epsg='epsg:4326'),
                                 Stop('A', x=1, y=0, epsg='epsg:4326'),
                             ],
                             trips={
                                 'trip_id': ['route1_04:40:00'],
                                 'trip_departure_time': ['04:40:00'],
                                 'vehicle_id': ['veh_bus_4']
                             },
                             arrival_offsets=['', '', ''],
                             departure_offsets=['', '', '']),
                   ])
コード例 #21
0
def test__str__shows_info():
    a = Stop(id='0', x=528504.1342843144, y=182155.7435136598, epsg='epsg:27700')
    assert 'epsg:27700' in a.__str__()
    assert str(a._round_lat()) in a.__str__()
    assert str(a._round_lon()) in a.__str__()
コード例 #22
0
def service_edge_case_loopy_and_non_overlapping_graph():
    # inspired by district and circle LU lines
    return Service(id='service1',
                   routes=[
                       Route(id='1_dir_1',
                             route_short_name='route1',
                             mode='rail',
                             stops=[
                                 Stop('A', x=-1, y=0, epsg='epsg:4326'),
                                 Stop('C', x=-3, y=0, epsg='epsg:4326')
                             ],
                             trips={
                                 'trip_id': ['route1_04:40:00'],
                                 'trip_departure_time': ['04:40:00'],
                                 'vehicle_id': ['veh_bus_1']
                             },
                             arrival_offsets=['', '', ''],
                             departure_offsets=['', '', '']),
                       Route(id='2_dir_2',
                             route_short_name='route2',
                             mode='rail',
                             stops=[
                                 Stop('F', x=-6, y=0, epsg='epsg:4326'),
                                 Stop('A', x=-1, y=0, epsg='epsg:4326')
                             ],
                             trips={
                                 'trip_id': ['route2_05:40:00'],
                                 'trip_departure_time': ['05:40:00'],
                                 'vehicle_id': ['veh_bus_2']
                             },
                             arrival_offsets=['', '', ''],
                             departure_offsets=['', '', '']),
                       Route(id='3_dir_1',
                             route_short_name='route3',
                             mode='rail',
                             stops=[
                                 Stop('E', x=-5, y=0, epsg='epsg:4326'),
                                 Stop('F', x=-6, y=0, epsg='epsg:4326')
                             ],
                             trips={
                                 'trip_id': ['route1_04:40:00'],
                                 'trip_departure_time': ['04:40:00'],
                                 'vehicle_id': ['veh_bus_3']
                             },
                             arrival_offsets=['', '', ''],
                             departure_offsets=['', '', '']),
                       Route(id='4_dir_1',
                             route_short_name='route4',
                             mode='rail',
                             stops=[
                                 Stop('A', x=-1, y=0, epsg='epsg:4326'),
                                 Stop('B', x=-2, y=0, epsg='epsg:4326'),
                                 Stop('C', x=-3, y=0, epsg='epsg:4326'),
                                 Stop('D', x=-4, y=0, epsg='epsg:4326'),
                                 Stop('E', x=-5, y=0, epsg='epsg:4326')
                             ],
                             trips={
                                 'trip_id': ['route1_04:40:00'],
                                 'trip_departure_time': ['04:40:00'],
                                 'vehicle_id': ['veh_bus_4']
                             },
                             arrival_offsets=['', '', ''],
                             departure_offsets=['', '', '']),
                   ])
コード例 #23
0
def test_print_shows_info(mocker):
    mocker.patch.object(Stop, 'info')
    a = Stop(id='0', x=528504.1342843144, y=182155.7435136598, epsg='epsg:27700')
    a.print()
    Stop.info.assert_called_once()
コード例 #24
0
def test_has_linkRefId_with_stop_with_missing_linkRefId():
    a = Stop(id='0',
             x=-0.14910908709500162,
             y=51.52370573323939,
             epsg='epsg:4326')
    assert not a.has_linkRefId()
コード例 #25
0
def test_add_additional_attributes_to_stops():
    a = Stop(id='0', x=528504.1342843144, y=182155.7435136598, epsg='epsg:27700', name='Brunswick Place (Stop P)')
    a.add_additional_attributes({'isBlocking': True})

    assert a.isBlocking == True
コード例 #26
0
    def write_transitLinesTransitRoute(transitLine, transitRoutes,
                                       transportMode):
        mode = transportMode['transportMode']
        service_id = transitLine['transitLine']['id']
        service_routes = []
        for transitRoute, transitRoute_val in transitRoutes.items():
            stops = [
                Stop(s['stop']['refId'],
                     x=transit_stop_id_mapping[s['stop']['refId']]['x'],
                     y=transit_stop_id_mapping[s['stop']['refId']]['y'],
                     epsg=epsg,
                     transformer=transformer)
                for s in transitRoute_val['stops']
            ]
            for s in stops:
                s.add_additional_attributes(transit_stop_id_mapping[s.id])

            arrival_offsets = []
            departure_offsets = []
            await_departure = []
            for stop in transitRoute_val['stops']:
                if 'departureOffset' not in stop[
                        'stop'] and 'arrivalOffset' not in stop['stop']:
                    pass
                elif 'departureOffset' not in stop['stop']:
                    arrival_offsets.append(stop['stop']['arrivalOffset'])
                    departure_offsets.append(stop['stop']['arrivalOffset'])
                elif 'arrivalOffset' not in stop['stop']:
                    arrival_offsets.append(stop['stop']['departureOffset'])
                    departure_offsets.append(stop['stop']['departureOffset'])
                else:
                    arrival_offsets.append(stop['stop']['arrivalOffset'])
                    departure_offsets.append(stop['stop']['departureOffset'])

                if 'awaitDeparture' in stop['stop']:
                    await_departure.append(
                        str(stop['stop']['awaitDeparture']).lower() in
                        ['true', '1'])

            route = [
                r_val['link']['refId'] for r_val in transitRoute_val['links']
            ]

            trips = {
                'trip_id': [],
                'trip_departure_time': [],
                'vehicle_id': []
            }
            for dep in transitRoute_val['departure_list']:
                trips['trip_id'].append(dep['departure']['id'])
                trips['trip_departure_time'].append(
                    dep['departure']['departureTime'])
                trips['vehicle_id'].append(dep['departure']['vehicleRefId'])

            r = Route(route_short_name=transitLine['transitLine']['name'],
                      mode=mode,
                      stops=stops,
                      route=route,
                      trips=trips,
                      arrival_offsets=arrival_offsets,
                      departure_offsets=departure_offsets,
                      id=transitRoute,
                      await_departure=await_departure)
            service_routes.append(r)
        services.append(Service(id=service_id, routes=service_routes))
コード例 #27
0
def test_has_more_than_one_stop_with_route_with_single_stop():
    route = Route(route_short_name='name',
                  mode='bus',
                  stops=[Stop(id='1', x=4, y=2, epsg='epsg:27700')],
                  trips={}, arrival_offsets=[], departure_offsets=[])
    assert not route.has_more_than_one_stop()