Ejemplo n.º 1
0
def test_update_position():
    road = Road()
    car = Car(road, init_speed=10)
    car2 = Car(road, position=500)
    assert car.position == 0 and car.speed == 10
    car.update_position(car2)
    assert car.position == 0 + car.speed * car.s_per_step
Ejemplo n.º 2
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.º 3
0
def test_car_is_already_ahead_no_teleportation_error():
    road = Road()
    car1 = Car(road, position=5, init_speed=10, slowing_chance=0)
    car2 = Car(road, position=0, init_speed=36)
    car1.update_position(car2)
    assert car1.position == 15.0
Ejemplo n.º 4
0
def test_car_has_jumped_ahead():
    road = Road()
    car1 = Car(road, position=5)
    car2 = Car(road, position=0)
    car2.update_position(car1)