コード例 #1
0
ファイル: fixtures.py プロジェクト: Safadiyazan/genet
def correct_services_from_test_gtfs():
    services = []
    services.append(
        Service('1001', [
            Route(
                route_short_name='BTR',
                mode='bus',
                stops=[
                    Stop(
                        id='BSE', x=-0.1413621, y=51.5226864,
                        epsg='epsg:4326'),
                    Stop(id='BSN', x=-0.140053, y=51.5216199, epsg='epsg:4326')
                ],
                trips={'BT1': '03:21:00'},
                arrival_offsets=['0:00:00', '0:02:00'],
                departure_offsets=['0:00:00', '0:02:00'])
        ]))
    services.append(
        Service('1002', [
            Route(
                route_short_name='RTR',
                mode='rail',
                stops=[
                    Stop(
                        id='RSN', x=-0.1410946, y=51.5231335,
                        epsg='epsg:4326'),
                    Stop(
                        id='RSE', x=-0.1421595, y=51.5192615, epsg='epsg:4326')
                ],
                trips={'RT1': '03:21:00'},
                arrival_offsets=['0:00:00', '0:02:00'],
                departure_offsets=['0:00:00', '0:02:00'])
        ]))
    return services
コード例 #2
0
def test_routes_exact(stop_epsg_27700):
    a = Route(route_short_name='route',
              mode='bus',
              stops=[stop_epsg_27700, stop_epsg_27700],
              trips={
                  'trip_id':
                  ['VJ00938baa194cee94700312812d208fe79f3297ee_04:40:00'],
                  'trip_departure_time': ['04:40:00'],
                  'vehicle_id': ['veh_1_bus']
              },
              arrival_offsets=['00:00:00', '00:02:00'],
              departure_offsets=['00:00:00', '00:02:00'])

    b = Route(route_short_name='route',
              mode='bus',
              stops=[stop_epsg_27700, stop_epsg_27700],
              trips={
                  'trip_id':
                  ['VJ00938baa194cee94700312812d208fe79f3297ee_04:40:00'],
                  'trip_departure_time': ['04:40:00'],
                  'vehicle_id': ['veh_1_bus']
              },
              arrival_offsets=['00:00:00', '00:02:00'],
              departure_offsets=['00:00:00', '00:02:00'])

    assert a.is_exact(b)
コード例 #3
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': ''},
                               '2': {'routes': {''}, 'id': '2', 'x': 1.0, 'y': 2.0, 'epsg': 'epsg:27700',
                                     'lat': 49.766825803756994, 'lon': -7.557148039524952, 's2_id': 5205973754090365183,
                                     'name': ''},
                               '3': {'routes': {''}, 'id': '3', 'x': 3.0, 'y': 3.0, 'epsg': 'epsg:27700',
                                     'lat': 49.76683608549253, 'lon': -7.557121424907424, 's2_id': 5205973754090203369,
                                     'name': ''},
                               '4': {'routes': {''}, 'id': '4', 'x': 7.0, 'y': 5.0, 'epsg': 'epsg:27700',
                                     'lat': 49.766856648946295, 'lon': -7.5570681956375, 's2_id': 5205973754097123809,
                                     'name': ''}})
    assert_semantically_equal(g.edges(data=True)._adjdict,
                              {'1': {'2': {'routes': {''}}}, '2': {'3': {'routes': {''}}}, '3': {'4': {'routes': {''}}},
                               '4': {}})
コード例 #4
0
ファイル: fixtures.py プロジェクト: zeyefkey/genet
def correct_schedule():
    return Schedule(epsg='epsg:27700', services=[
        Service(id='service',
                routes=[
                    Route(id='1', route_short_name='route', mode='bus',
                          stops=[
                              Stop(id='0', x=529455.7452394223, y=182401.37630677427, epsg='epsg:27700', linkRefId='1'),
                              Stop(id='1', x=529350.7866124967, y=182388.0201078112, epsg='epsg:27700', linkRefId='2')],

                          trips={'trip_id': ['VJ00938baa194cee94700312812d208fe79f3297ee_04:40:00'],
                                 'trip_departure_time': ['04:40:00'],
                                 'vehicle_id': ['veh_1_bus']},
                          arrival_offsets=['00:00:00', '00:02:00'],
                          departure_offsets=['00:00:00', '00:02:00'],
                          route=['1', '2']),
                    Route(id='2', route_short_name='route1', mode='bus',
                          stops=[
                              Stop(id='0', x=529455.7452394223, y=182401.37630677427, epsg='epsg:27700', linkRefId='1'),
                              Stop(id='1', x=529350.7866124967, y=182388.0201078112, epsg='epsg:27700', linkRefId='2')],
                          trips={'trip_id': ['Blep_04:40:00'],
                                 'trip_departure_time': ['05:40:00'],
                                 'vehicle_id': ['veh_2_bus']},
                          arrival_offsets=['00:00:00', '00:03:00'],
                          departure_offsets=['00:00:00', '00:05:00'],
                          route=['1', '2'])
                ])
    ])
コード例 #5
0
def test_read_gtfs_returns_expected_schedule(correct_stops_to_service_mapping_from_test_gtfs,
                                             correct_stops_to_route_mapping_from_test_gtfs):
    schedule = Schedule('epsg:4326')
    schedule.read_gtfs_schedule(gtfs_test_file, '20190604')

    assert schedule.services['1001'] == Service(
        '1001',
        [Route(
            route_short_name='BTR',
            mode='bus',
            stops=[Stop(id='BSE', x=-0.1413621, y=51.5226864, epsg='epsg:4326'),
                   Stop(id='BSN', x=-0.140053, y=51.5216199, epsg='epsg:4326')],
            trips={'BT1': '03:21:00'},
            arrival_offsets=['0:00:00', '0:02:00'],
            departure_offsets=['0:00:00', '0:02:00']
        )])
    assert schedule.services['1002'] == Service(
        '1002',
        [Route(
            route_short_name='RTR',
            mode='rail',
            stops=[Stop(id='RSN', x=-0.1410946, y=51.5231335, epsg='epsg:4326'),
                   Stop(id='RSE', x=-0.1421595, y=51.5192615, epsg='epsg:4326')],
            trips={'RT1': '03:21:00'},
            arrival_offsets=['0:00:00', '0:02:00'],
            departure_offsets=['0:00:00', '0:02:00']
        )])
    assert_semantically_equal(schedule.stop_to_service_ids_map(), correct_stops_to_service_mapping_from_test_gtfs)
    assert_semantically_equal(schedule.stop_to_route_ids_map(), correct_stops_to_route_mapping_from_test_gtfs)
コード例 #6
0
def test_adding_schedules_retains_shared_graph(schedule):
    schedule_2 = Schedule(epsg='epsg:27700', services=[
        Service(id='service3',
                routes=[
                    Route(id='31', route_short_name='3route1', mode='bus',
                          stops=[
                              Stop(id='30', x=529455.7452394223, y=182401.37630677427, epsg='epsg:27700',
                                   linkRefId='0'),
                              Stop(id='31', 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='32', route_short_name='3route2', mode='bus',
                          stops=[
                              Stop(id='31', x=529455.7452394223, y=182401.37630677427, epsg='epsg:27700',
                                   linkRefId='1'),
                              Stop(id='32', 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'])
                ])])

    schedule.add(schedule_2)
    assert_all_elements_share_graph(schedule)
コード例 #7
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()
コード例 #8
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()
コード例 #9
0
def basic_service():
    return Service(id='service1',
                      routes=[
                          Route(id='1', route_short_name='route1', mode='bus',
                                stops=[
                                    Stop('0', x=1, y=1, epsg='epsg:4326'),
                                    Stop('1', x=2, y=2, epsg='epsg:4326'),
                                    Stop('2', x=3, y=3, 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('1', x=2, y=2, epsg='epsg:4326'),
                                    Stop('2', x=3, 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=1, y=1, epsg='epsg:4326'),
                                    Stop('1', x=2, y=2, 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=[]),
                          Route(id='4', route_short_name='route4', mode='bus',
                                stops=[
                                    Stop('2', x=3, y=3, epsg='epsg:4326'),
                                    Stop('1', x=2, y=2, epsg='epsg:4326'),
                                    Stop('0', x=1, y=1, epsg='epsg:4326')
                                ],
                                trips={
                                    'trip_id': ['route2_05:40:00'],
                                    'trip_departure_time': ['05:40:00'],
                                    'vehicle_id': ['veh_bus_4']
                                },
                                arrival_offsets=['00:00:00', '00:03:00'],
                                departure_offsets=['00:00:00', '00:05:00'],
                                route=[])
                      ])
コード例 #10
0
def test_route_is_not_in_exact_list(route, stop_epsg_27700):
    a = Route(route_short_name='route',
              mode='bus',
              stops=[stop_epsg_27700, stop_epsg_27700],
              trips={},
              arrival_offsets=[],
              departure_offsets=[])

    assert not a.isin_exact([route, route, route])
コード例 #11
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=['', '', '']),
                      ])
コード例 #12
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=['', '', '']),
                      ])
コード例 #13
0
ファイル: fixtures.py プロジェクト: arup-group/genet
def test_schedule():
    return Schedule(
        epsg='epsg:27700',
        services=[
            Service(
                id='service',
                routes=[
                    Route(
                        route_short_name='route',
                        mode='bus',
                        stops=[
                            Stop(id='0',
                                 x=528504.1342843144,
                                 y=182155.7435136598,
                                 epsg='epsg:27700'),
                            Stop(id='0',
                                 x=528504.1342843144,
                                 y=182155.7435136598,
                                 epsg='epsg:27700')
                        ],
                        trips={
                            'trip_id': [
                                'VJ00938baa194cee94700312812d208fe79f3297ee_04:40:00'
                            ],
                            'trip_departure_time': ['04:40:00'],
                            'vehicle_id': ['veh_1_bus']
                        },
                        arrival_offsets=['00:00:00', '00:02:00'],
                        departure_offsets=['00:00:00', '00:02:00']),
                    Route(route_short_name='route1',
                          mode='bus',
                          stops=[
                              Stop(id='0',
                                   x=528504.1342843144,
                                   y=182155.7435136598,
                                   epsg='epsg:27700'),
                              Stop(id='0',
                                   x=528504.1342843144,
                                   y=182155.7435136598,
                                   epsg='epsg:27700')
                          ],
                          trips={
                              'trip_id': ['Blep_04:40:00'],
                              'trip_departure_time': ['05:40:00'],
                              'vehicle_id': ['veh_2_bus']
                          },
                          arrival_offsets=['00:00:00', '00:03:00'],
                          departure_offsets=['00:00:00', '00:05:00'])
                ])
        ])
コード例 #14
0
ファイル: fixtures.py プロジェクト: zeyefkey/genet
def correct_services_from_test_pt2matsim_schedule():
    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')]

    stops[0].add_additional_attributes({'name': 'Brunswick Place (Stop P)', 'isBlocking': 'false'})
    stops[1].add_additional_attributes({'name': 'Brunswick Place (Stop P)', 'isBlocking': 'false'})

    services = [Service(id='10314', routes=[
        Route(
            route_short_name='12',
            mode='bus',
            stops=stops,
            route=['1'],
            trips={
                'trip_id': ['VJ00938baa194cee94700312812d208fe79f3297ee_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'],
            await_departure=[True, True]
        )
    ])
                ]
    return services
コード例 #15
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()
コード例 #16
0
def test_adding_merges_separable_schedules(route):
    schedule = Schedule(epsg='epsg:4326', services=[Service(id='1', routes=[route])])
    before_graph_nodes = schedule.reference_nodes
    before_graph_edges = schedule.reference_edges

    a = Stop(id='10', x=40, y=20, epsg='epsg:27700', linkRefId='1')
    b = Stop(id='20', x=10, y=20, epsg='epsg:27700', linkRefId='2')
    c = Stop(id='30', x=30, y=30, epsg='epsg:27700', linkRefId='3')
    d = Stop(id='40', x=70, y=50, epsg='epsg:27700', linkRefId='4')
    schedule_to_be_added = Schedule(epsg='epsg:4326', services=[Service(id='2', routes=[
        Route(
            route_short_name='name',
            mode='bus',
            stops=[a, b, c, d],
            trips={'1': '1', '2': '2'},
            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=['1', '2', '3', '4'], id='1')
    ])])

    tba_graph_nodes = schedule_to_be_added.reference_nodes
    tba_graph_edges = schedule_to_be_added.reference_edges

    schedule.add(schedule_to_be_added)

    assert schedule.services == {
        '1': Service(id='1', routes=[route]),
        '2': Service(id='2', routes=[route])}
    assert schedule.epsg == 'epsg:4326'
    assert schedule.epsg == schedule_to_be_added.epsg
    assert set(schedule._graph.nodes()) == set(before_graph_nodes) | set(tba_graph_nodes)
    assert set(schedule._graph.edges()) == set(before_graph_edges) | set(tba_graph_edges)
コード例 #17
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 = {}
            for dep in transitRoute_val['departure_list']:
                trips[dep['departure']
                      ['id']] = dep['departure']['departureTime']

            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))
コード例 #18
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])
コード例 #19
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'])
                ])
    ])
コード例 #20
0
ファイル: fixtures.py プロジェクト: zeyefkey/genet
def route():
    return Route(route_short_name='route', mode='bus',
                 stops=[Stop(id='0', x=528504.1342843144, y=182155.7435136598, epsg='epsg:27700'),
                        Stop(id='0', x=528504.1342843144, y=182155.7435136598, epsg='epsg:27700')],
                 trips={'trip_id': ['VJ00938baa194cee94700312812d208fe79f3297ee_04:40:00'],
                        'trip_departure_time': ['04:40:00'],
                        'vehicle_id': ['veh_1_bus']},
                 arrival_offsets=['00:00:00', '00:02:00'],
                 departure_offsets=['00:00:00', '00:02:00'])
コード例 #21
0
ファイル: fixtures.py プロジェクト: zeyefkey/genet
def similar_non_exact_test_route():
    return Route(route_short_name='route', mode='bus',
                 stops=[Stop(id='0', x=528504.1342843144, y=182155.7435136598, epsg='epsg:27700'),
                        Stop(id='0', x=528504.1342843144, y=182155.7435136598, epsg='epsg:27700')],
                 trips={'trip_id': ['Blep_04: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'])
コード例 #22
0
def test_accessing_route(schedule):
    assert 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': '1', '2': '2'},
                                        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'])
コード例 #23
0
def test_routes_equal(stop_epsg_27700):
    a = Route(route_short_name='route',
              mode='bus',
              stops=[stop_epsg_27700, stop_epsg_27700],
              trips={
                  'VJ00938baa194cee94700312812d208fe79f3297ee_04:40:00':
                  '04:40:00'
              },
              arrival_offsets=['00:00:00', '00:02:00'],
              departure_offsets=['00:00:00', '00:02:00'])

    b = Route(route_short_name='route',
              mode='bus',
              stops=[stop_epsg_27700, stop_epsg_27700],
              trips={},
              arrival_offsets=[],
              departure_offsets=[])

    assert a == b
コード例 #24
0
def self_looping_route():
    return Route(
        route_short_name='name',
        mode='bus',
        stops=[Stop(id='1', x=4, y=2, epsg='epsg:27700'), Stop(id='1', x=4, 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': ['10:00:00', '20:00:00'],
                 'vehicle_id': ['veh_3_bus', 'veh_4_bus']},
        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'])
コード例 #25
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()
コード例 #26
0
def strongly_connected_schedule():
    route_1 = Route(route_short_name='name',
                    mode='bus',
                    stops=[Stop(id='1', x=4, y=2, epsg='epsg:27700', name='Stop_1'),
                           Stop(id='2', x=1, y=2, epsg='epsg:27700', name='Stop_2'),
                           Stop(id='3', x=3, y=3, epsg='epsg:27700', name='Stop_3'),
                           Stop(id='4', x=7, y=5, epsg='epsg:27700', name='Stop_4'),
                           Stop(id='1', x=4, y=2, epsg='epsg:27700', name='Stop_1')],
                    trips={'1': '1', '2': '2'}, arrival_offsets=['1', '2'], departure_offsets=['1', '2'],
                    id='1')
    route_2 = Route(route_short_name='name_2',
                    mode='bus',
                    stops=[Stop(id='5', x=4, y=2, epsg='epsg:27700', name='Stop_5'),
                           Stop(id='2', x=1, y=2, epsg='epsg:27700', name='Stop_2'),
                           Stop(id='7', x=3, y=3, epsg='epsg:27700', name='Stop_7'),
                           Stop(id='8', x=7, y=5, epsg='epsg:27700', name='Stop_8'),
                           Stop(id='5', x=4, y=2, epsg='epsg:27700', name='Stop_5')],
                    trips={'1': '1', '2': '2'}, arrival_offsets=['1', '2', '3', '4', '5'],
                    departure_offsets=['1', '2', '3', '4', '5'],
                    id='2')
    service = Service(id='service', routes=[route_1, route_2])
    return Schedule(epsg='epsg:27700', services=[service])
コード例 #27
0
ファイル: fixtures.py プロジェクト: Safadiyazan/genet
def test_service():
    return Service(
        id='service',
        routes=[
            Route(route_short_name='route',
                  mode='bus',
                  stops=[
                      Stop(id='0',
                           x=528504.1342843144,
                           y=182155.7435136598,
                           epsg='epsg:27700'),
                      Stop(id='0',
                           x=528504.1342843144,
                           y=182155.7435136598,
                           epsg='epsg:27700')
                  ],
                  trips={
                      'VJ00938baa194cee94700312812d208fe79f3297ee_04:40:00':
                      '04:40:00'
                  },
                  arrival_offsets=['00:00:00', '00:02:00'],
                  departure_offsets=['00:00:00', '00:02:00']),
            Route(route_short_name='route1',
                  mode='bus',
                  stops=[
                      Stop(id='1',
                           x=528504.1342843144,
                           y=182155.7435136598,
                           epsg='epsg:27700'),
                      Stop(id='2',
                           x=528504.1342843144,
                           y=182155.7435136598,
                           epsg='epsg:27700')
                  ],
                  trips={'Blep_04:40:00': '05:40:00'},
                  arrival_offsets=['00:00:00', '00:03:00'],
                  departure_offsets=['00:00:00', '00:05:00'])
        ])
コード例 #28
0
def route():
    a = Stop(id='1', x=4, y=2, epsg='epsg:27700', linkRefId='1')
    b = Stop(id='2', x=1, y=2, epsg='epsg:27700', linkRefId='2')
    c = Stop(id='3', x=3, y=3, epsg='epsg:27700', linkRefId='3')
    d = Stop(id='4', x=7, y=5, epsg='epsg:27700', linkRefId='4')
    return Route(
        route_short_name='name',
        mode='bus',
        stops=[a, b, c, d],
        trips = {'trip_id': ['1', '2'],
                 'trip_departure_time': ['10:00:00', '20:00:00'],
                 'vehicle_id': ['veh_1_bus', 'veh_2_bus']},
        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=['1', '2', '3', '4'], id='1')
コード例 #29
0
def self_looping_route():
    return Route(
        route_short_name='name',
        mode='bus',
        stops=[
            Stop(id='1', x=4, y=2, epsg='epsg:27700'),
            Stop(id='1', x=4, 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': '1',
            '2': '2'
        },
        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'])
コード例 #30
0
def test_initiating_route_with_headway_spec():
    r = Route(
        id='route_ID',
        route_short_name='name',
        mode='bus',
        stops=[Stop(id='1', x=4, y=2, epsg='epsg:27700'), Stop(id='1', x=4, 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')],
        headway_spec={('01:00:00', '02:00:00'): 20, ('02:00:00', '03:00:00'): 30},
        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'])

    assert_semantically_equal(
        r.trips,
        {'trip_id': ['route_ID_01:00:00', 'route_ID_01:20:00', 'route_ID_01:40:00', 'route_ID_02:00:00',
                     'route_ID_02:30:00', 'route_ID_03:00:00'],
         'trip_departure_time': ['01:00:00', '01:20:00', '01:40:00', '02:00:00', '02:30:00', '03:00:00'],
         'vehicle_id': ['veh_bus_route_ID_01:00:00', 'veh_bus_route_ID_01:20:00', 'veh_bus_route_ID_01:40:00',
                        'veh_bus_route_ID_02:00:00', 'veh_bus_route_ID_02:30:00', 'veh_bus_route_ID_03:00:00']}
    )