コード例 #1
0
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
コード例 #2
0
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
コード例 #3
0
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
コード例 #4
0
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