def test_can_change_lane_when_alone(self): car1 = Car(20, 0, 0, 10, 0) lane1 = Lane() lane2 = Lane() lane1.add_car(car1) light = TrafficLight(100) self.assertTrue(control.can_change_lane(car1, lane1, lane2, [light]))
def test_cant_change_lane_when_close_to_traffic_lights(self): car1 = Car(98, 0, 0, 10, 0) lane1 = Lane() lane2 = Lane() lane1.add_car(car1) light = TrafficLight(100) self.assertFalse(control.can_change_lane(car1, lane1, lane2, [light]))
def test_cant_change_lane_when_car_slightly_in_front(self): car1 = Car(20, 0, 0, 10, 0) car2 = Car(25, 0, 0, 10, 0) lane1 = Lane() lane2 = Lane() lane1.add_car(car1) lane2.add_car(car2) light = TrafficLight(100) self.assertFalse(control.can_change_lane(car1, lane1, lane2, [light]))
def test_can_change_lane_when_cars_around_but_far(self): car1 = Car(50, 0, 0, 10, 0) car2 = Car(20, 0, 0, 10, 0) car3 = Car(70, 0, 0, 10, 0) lane1 = Lane() lane2 = Lane() lane1.add_car(car1) lane2.add_car(car2) lane2.add_car(car3) light = TrafficLight(100) self.assertTrue(control.can_change_lane(car1, lane1, lane2, [light]))
def test_cant_change_to_lane_with_opposite_direction(self): car = Car(20, 0, 0, 10, 0) lane1 = Lane() lane2 = Lane('SOUTH') light = TrafficLight(100) self.assertFalse(control.can_change_lane(car, lane1, lane2, [light]))