Ejemplo n.º 1
0
def test_car_is_validating_position_with_road():
    # On init
    road = Road()
    car1 = Car(road, position=2000)
    assert car1.position == 0

    # In update_position
    car1 = Car(road, position=100, init_speed=10)
    car2 = Car(road, position=500)
    car1.position = 1000
    car1.update_position(car2)
    assert car1.position == 10

    # In brake_if_needed
    car1 = Car(road, position=1005, init_speed=10)
    car2 = Car(road, position=10)
    did_brake = car1.brake_if_needed(leading_car=car2)
    assert did_brake is True

    with mock.patch("random.random", return_value=1):
        car1 = Car(road, position=500, init_speed=10)
        car2 = Car(road, position=0)
        did_brake = car1.brake_if_needed(leading_car=car2)
        assert did_brake is False

    assert car1.distance_behind(car2) == 495
Ejemplo n.º 2
0
def test_car_slows_if_over_desired_speed():
    road = Road()
    car1 = Car(road, init_speed=100, desired_speed=30)
    car2 = Car(road, position=900)
    with mock.patch("random.random", return_value=1):
        # disable random braking
        car1.brake_if_needed(leading_car=car2)
    assert car1.speed == 30

    with mock.patch("random.random", return_value=0.05):
        # force random braking
        car1.brake_if_needed(leading_car=car2)
    assert car1.speed == 28

    car1.speed = 100
    car1.accelerate()
    assert car1.speed == 30
Ejemplo n.º 3
0
def test_brake_if_needed():
    # Stop if collision imminent
    road = Road()
    car1 = Car(road, position=200, init_speed=20)
    car2 = Car(road, position=210)
    with mock.patch("random.random", return_value=1):
        did_brake = car1.brake_if_needed(leading_car=car2)
    assert did_brake is True
    assert car1.speed == 5