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
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
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
def test_car_has_jumped_ahead(): road = Road() car1 = Car(road, position=5) car2 = Car(road, position=0) car2.update_position(car1)