def test_heavy_journey_bss(): """ we should not remove any bss journey since it is already in concurrence with the walking """ request = {'_min_bike': 10, '_min_car': 20} journey = response_pb2.Journey() journey.sections.add() journey.sections[-1].type = response_pb2.STREET_NETWORK journey.sections[-1].street_network.mode = response_pb2.Walking journey.sections[-1].duration = 5 journey.sections.add() journey.sections[-1].type = response_pb2.BSS_RENT journey.sections[-1].duration = 5 journey.sections.add() journey.sections[-1].type = response_pb2.STREET_NETWORK journey.sections[-1].street_network.mode = response_pb2.Bike journey.sections[-1].duration = 5 journey.sections.add() journey.sections[-1].type = response_pb2.BSS_PUT_BACK journey.sections[-1].duration = 5 journey.sections.add() journey.sections[-1].type = response_pb2.STREET_NETWORK journey.sections[-1].street_network.mode = response_pb2.Walking journey.sections[-1].duration = 5 journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' not in journey.tags
def test_heavy_journey_walking(): """ we don't filter any journey with walking """ request = {'_min_bike': 10, '_min_car': 20} journey = response_pb2.Journey() journey.sections.add() journey.sections[-1].type = response_pb2.STREET_NETWORK journey.sections[-1].street_network.mode = response_pb2.Walking journey.sections[-1].duration = 5 journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' not in journey.tags
def test_heavy_journey_car(): """ the first time the duration of the car section is superior to the min value, so we keep the journey on the second test the duration is inferior to the min, so we delete the journey """ request = {'_min_bike': 10, '_min_car': 20} journey = response_pb2.Journey() journey.sections.add() journey.sections[-1].type = response_pb2.STREET_NETWORK journey.sections[-1].street_network.mode = response_pb2.Car journey.sections[-1].duration = 25 journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' not in journey.tags journey.sections[-1].duration = 15 journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' in journey.tags
def test_activate_deactivate_min_bike(): """ A B C D *................*============================*.............* A: origin D: Destination A->B : Bike B->C : public transport C->D : Bike """ # case 1: request without origin_mode and destination_mode request = {'_min_bike': 10} journey = response_pb2.Journey() journey.sections.add() journey.sections[-1].type = response_pb2.STREET_NETWORK journey.sections[-1].street_network.mode = response_pb2.Bike journey.sections[-1].duration = 5 journey.sections.add() journey.sections[-1].type = response_pb2.PUBLIC_TRANSPORT journey.sections[-1].street_network.mode = response_pb2.PUBLIC_TRANSPORT journey.sections[-1].duration = 35 journey.sections.add() journey.sections[-1].type = response_pb2.STREET_NETWORK journey.sections[-1].street_network.mode = response_pb2.Bike journey.sections[-1].duration = 7 journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' not in journey.tags # case 2: request without origin_mode journey.sections[-1].duration = 15 request = {'_min_bike': 8, 'destination_mode': ['bike', 'walking']} journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' not in journey.tags # case 3: request without destination_mode journey.sections[0].duration = 15 journey.sections[-1].duration = 5 request = {'_min_bike': 8, 'origin_mode': ['bike', 'walking']} journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' not in journey.tags # case 4: request without walking in origin_mode journey.sections[0].duration = 5 journey.sections[-1].duration = 15 request = {'_min_bike': 8, 'origin_mode': ['bike']} journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' not in journey.tags # case 5: request without walking in destination_mode journey.sections[0].duration = 15 journey.sections[-1].duration = 5 request = {'_min_bike': 8, 'destination_mode': ['bike']} journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' not in journey.tags # case 6: request with bike only in origin_mode destination_mode journey.sections[0].duration = 15 journey.sections[-1].duration = 14 request = { '_min_bike': 17, 'origin_mode': ['bike'], 'destination_mode': ['bike'] } journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' not in journey.tags # case 7: request with walking in destination_mode journey.sections[0].duration = 15 journey.sections[-1].duration = 5 request = {'_min_bike': 8, 'destination_mode': ['bike', 'walking']} journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' in journey.tags # case 8: request with walking in origin_mode journey.sections[0].duration = 5 journey.sections[-1].duration = 15 request = {'_min_bike': 8, 'origin_mode': ['bike', 'walking']} journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' in journey.tags # case 9: request with bike in origin_mode and bike, walking in destination_mode journey.sections[0].duration = 5 journey.sections[-1].duration = 7 request = { '_min_bike': 8, 'origin_mode': ['bike'], 'destination_mode': ['bike', 'walking'] } journey_filter._filter_too_short_heavy_journeys([journey], request) assert 'to_delete' in journey.tags