示例#1
0
def find_max_duration__counterclockwise_test():
    resp_builder = ResponseBuilder()\
        .journey(sections=[
            {'mode': 'Walking', 'duration': 240},
            {'type': 'PT', 'duration': 300},
            {'mode': 'Walking', 'duration': 120},
        ], type='best', arrival='T1231')\
        .journey(uri='rapid', sections=[
            {'mode': 'Walking', 'duration': 120},
            {'type': 'PT', 'duration': 300},
            {'mode': 'Walking', 'duration': 120},
        ], type='rapid', arrival='T1501')\
        .journey(uri='non pt', sections=[
            {'mode': 'Walking', 'duration': 130},
        ], type='non_pt_walk', arrival='T1534')

    response = resp_builder.response

    scenario = default.Scenario()
    assert scenario._find_max_duration(response.journeys, Instance(),
                                       False) == 580
    scenario._delete_too_long_journey(response, Instance(), False)
    assert len(response.journeys) == 2
    assert response.journeys[0] == resp_builder.get_journey('rapid')
    assert response.journeys[1] == resp_builder.get_journey('non pt')
示例#2
0
def find_max_duration_clockwise_test_no_walk():
    """
    we don't have a journey with walking so max_duration is None, and we keep all journeys
    """
    resp_builder = ResponseBuilder()\
        .journey(uri='best', sections=[
            {'mode': 'Bike', 'duration': 240},
            {'type': 'PT', 'duration': 300},
            {'mode': 'Walking', 'duration': 120},
        ], type='best', arrival='T1534')\
        .journey(uri='rapid', sections=[
            {'mode': 'Walking', 'duration': 120},
            {'type': 'PT', 'duration': 300},
            {'mode': 'Bike', 'duration': 120},
        ], type='rapid', arrival='T1534')
    response = resp_builder.response

    scenario = default.Scenario()
    eq_(scenario._find_max_duration(response.journeys, Instance(), True), None)
    scenario._delete_too_long_journey(response, Instance(), True)
    eq_(len(response.journeys), 2)
    eq_(response.journeys[0], resp_builder.get_journey('best'))
    eq_(response.journeys[1], resp_builder.get_journey('rapid'))
示例#3
0
def find_max_duration_clockwise_test():
    resp_builder = ResponseBuilder()\
        .journey(sections=[
            {'mode': 'Walking', 'duration': 240},
            {'type': 'PT', 'duration': 300},
            {'mode': 'Walking', 'duration': 120},
        ], type='best', arrival='T1501')\
        .journey(uri='rapid', sections=[
            {'mode': 'Walking', 'duration': 120},
            {'type': 'PT', 'duration': 300},
            {'mode': 'Walking', 'duration': 120},
        ], type='rapid', arrival='T1501')\
        .journey(uri='non pt', sections=[
            {'mode': 'Walking', 'duration': 130},
        ], type='non_pt_walk', arrival='T1231')

    response = resp_builder.response

    scenario = default.Scenario()
    eq_(scenario._find_max_duration(response.journeys, Instance(), True), 580)
    scenario._delete_too_long_journey(response, Instance(), True)
    eq_(len(response.journeys), 2)
    eq_(response.journeys[0], resp_builder.get_journey('rapid'))
    eq_(response.journeys[1], resp_builder.get_journey('non pt'))
示例#4
0
def sort_destineo_test():
    resp_builder = ResponseBuilder()\
        .journey(uri='journey_tc3', sections=[
            {'mode': 'Walking'}, {'type': 'PT'}, {'mode': 'Walking'},
        ], departure='T1230')\
        .journey(uri='journey_tc1', sections=[
            {'mode': 'Walking'}, {'type': 'PT'}, {'mode': 'Walking'},
        ], departure='T1100')\
        .journey(uri='journey_bike', sections=[
            #{'mode': 'Bike'}
        ], type='non_pt_bike', departure='T1100')\
        .journey(uri='journey_bss', sections=[
            {'mode': 'Walking'},
            {'type': 'BSS_RENT'}, {'mode': 'Bike'}, {'type': 'BSS_PUT_BACK'},
            {'mode': 'Walking'}
        ], type='non_pt_bss', departure='T1100')\
        .journey(uri='journey_walk', sections=[
            #{'mode': 'Walking'},
        ], type='non_pt_walk', departure='T1100')\
        .journey(uri='journey_tc2', sections=[
            {'mode': 'Walking'}, {'type': 'PT'}, {'mode': 'Walking'},
        ], departure='T1200')\
        .journey(uri='journey_bss_and_tc', sections=[
            {'mode': 'Walking'}, {'type': 'BSS_RENT'}, {'mode': 'Bike'}, {'type': 'BSS_PUT_BACK'},
            {'type': 'PT'},
            {'mode': 'Walking'},
        ], departure='T1200')\
        .journey(uri='journey_bike_and_tc', sections=[
            {'mode': 'Bike'},
            {'type': 'PT'},
            {'mode': 'Walking'},
        ], departure='T1200')\
        .journey(uri='journey_car_and_tc', sections=[
            {'mode': 'Car'},
            {'type': 'PT'},
            {'mode': 'Walking'},
        ], departure='T1200')\

    response = resp_builder.response
    scenario = destineo.Scenario()
    scenario._custom_sort_journeys(response,
                                   clockwise=True,
                                   timezone='Africa/Abidjan')
    assert response.journeys[0] == resp_builder.get_journey('journey_tc1')
    assert response.journeys[1] == resp_builder.get_journey('journey_tc2')
    assert response.journeys[2] == resp_builder.get_journey('journey_tc3')
    assert response.journeys[3] == resp_builder.get_journey('journey_bss')
    assert response.journeys[4] == resp_builder.get_journey(
        'journey_bss_and_tc')
    assert response.journeys[5] == resp_builder.get_journey(
        'journey_bike_and_tc')
    assert response.journeys[6] == resp_builder.get_journey(
        'journey_car_and_tc')
    assert response.journeys[7] == resp_builder.get_journey('journey_walk')
    assert response.journeys[8] == resp_builder.get_journey('journey_bike')