示例#1
0
    def test_avoid_collisions(self):
        road = Road(5, 10, None)
        cars1 = [Car(road, (0, 0)), Car(road, (0, 2)), Car(road, (0, 4))]
        cars2 = [Car(road, (1, 0)), Car(road, (1, 3))]
        cars3 = [Car(road, (2, 3)), Car(road, (2, 4))]
        road.placeObjects(cars1 + cars2 + cars3)
        for car in cars1:
            self.assertFalse(road.possibleLaneChangeUp(car.pos))
            self.assertFalse(road.possibleLaneChangeDown(car.pos))
        self.assertTrue(road.possibleLaneChangeDown(cars2[0].pos))
        self.assertFalse(road.possibleLaneChangeUp(cars2[0].pos))
        self.assertTrue(road.possibleLaneChangeDown(cars2[1].pos))
        self.assertTrue(road.possibleLaneChangeUp(cars2[1].pos))

        self.assertTrue(road.possibleLaneChangeUp(cars3[0].pos))
        self.assertFalse(road.possibleLaneChangeDown(cars3[0].pos))
        self.assertFalse(road.possibleLaneChangeUp(cars3[1].pos))
        self.assertFalse(road.possibleLaneChangeDown(cars3[1].pos))
    def test_avoid_collisions(self):
        road = Road(5, 10, None)
        cars1 = [Car(road, (0, 0)), Car(road, (0, 2)), Car(road, (0, 4))]
        cars2 = [Car(road, (1, 0)), Car(road, (1, 3))]
        cars3 = [Car(road, (2, 3)), Car(road, (2, 4))]
        road.placeObjects( cars1 + cars2 + cars3 )
        for car in cars1:
            self.assertFalse( road.possibleLaneChangeUp(car.pos) )
            self.assertFalse( road.possibleLaneChangeDown(car.pos) )
        self.assertTrue( road.possibleLaneChangeDown(cars2[0].pos) )
        self.assertFalse( road.possibleLaneChangeUp(cars2[0].pos) )
        self.assertTrue( road.possibleLaneChangeDown(cars2[1].pos) )
        self.assertTrue( road.possibleLaneChangeUp(cars2[1].pos) )

        self.assertTrue( road.possibleLaneChangeUp(cars3[0].pos ))
        self.assertFalse( road.possibleLaneChangeDown(cars3[0].pos ))
        self.assertFalse( road.possibleLaneChangeUp(cars3[1].pos ))
        self.assertFalse( road.possibleLaneChangeDown(cars3[1].pos ))