def test_pushy_passenger_moving_algorithm_10() -> None:
    """Test the Pushy Passenger algorithm test with sample_arrivals.csv.

    Note that the configuration is quite a bit more restricted than even
    the sample one given in the starter code. This should make it easier
    to trace out the algorithms by hand.
    """
    config = {
        'num_floors': 5,
        'num_elevators': 1,
        'elevator_capacity': 10,
        # This is likely not used.
        'num_people_per_round': 2,
        'arrival_generator': FileArrivals(5, 'test_algorithms_10.csv'),
        'moving_algorithm': PushyPassenger(),
        'visualize': False
    }

    sim = Simulation(config)
    results = sim.run(15)
    assert results['num_iterations'] == 15
    assert results['total_people'] == 4
    assert results['people_completed'] == 4
    assert results['max_time'] == 8
    assert results['min_time'] == 2
    assert results['avg_time'] == 5
def test_pushy_passenger_moving_algorithm_3() -> None:
    """Test the Pushy Passenger algorithm test with sample_arrivals.csv.

    Note that the configuration is quite a bit more restricted than even
    the sample one given in the starter code. This should make it easier
    to trace out the algorithms by hand.
    """
    config = {
        'num_floors': 5,
        'num_elevators': 1,
        'elevator_capacity': 1,
        # This is likely not used.
        'num_people_per_round': 2,
        'arrival_generator': FileArrivals(5, 'pushy_3.csv'),
        'moving_algorithm': PushyPassenger(),
        'visualize': False
    }

    sim = Simulation(config)
    results = sim.run(20)

    assert results['num_iterations'] == 20
    assert results['total_people'] == 5

    # Note: 3 of the 4 people completed their rides.
    # One sad person arrives at round 1 on floor 5, and never reaches their
    # target floor. :(
    assert results['people_completed'] == 5
    assert results['max_time'] == 8
    assert results['min_time'] == 1
    assert results['avg_time'] == 3