def test_tunneling(self):
     # obstacle
     speedLimits = SpeedLimits([SpeedLimit.createObstacle((10, 0))], 5)
     r = Road(1, 20, speedLimits)
     car = Car(r, (0, 0))
     self.assertTrue(r.placeObject(car))
     for x in range(100):
         r.update()
     self.assertEqual(0, car.velocity)
     self.assertEqual((9, 0), car.pos)
 def test_tunneling(self):
     # obstacle
     speedLimits = SpeedLimits( [SpeedLimit.createObstacle((10,0))], 5 )
     r = Road(1, 20, speedLimits)
     car = Car(r, (0,0))
     self.assertTrue(r.placeObject(car))
     for x in range(100):
         r.update()
     self.assertEqual(0, car.velocity)
     self.assertEqual((9, 0), car.pos)
 def test_placeObject(self):
     r = Road(3, 40, None)
     car1, car2 = Car(r, (20, 0)), Car(r, (30, 0))
     self.assertTrue(r.placeObjects([car1, car2]))
     self.assertEqual(2, r.carCount())
     self.assertEqual(9, r.distanceToNextThing(car1.pos))
     self.assertTrue(r.distanceToNextThing(car2.pos) >= r.getLength())
     car3 = Car(r, (21, 0))
     self.assertTrue(r.placeObject(car3))
     self.assertEqual(3, r.carCount())
     self.assertEqual(0, r.distanceToNextThing(car1.pos))
     self.assertEqual(8, r.distanceToNextThing(car3.pos))
 def test_placeObject(self):
     r = Road(3, 40, None)
     car1, car2 = Car(r, (20, 0)), Car(r, (30, 0))
     self.assertTrue(r.placeObjects([car1, car2]))
     self.assertEqual(2, r.carCount())
     self.assertEqual(9, r.distanceToNextThing(car1.pos))
     self.assertTrue(r.distanceToNextThing(car2.pos) >= r.getLength())
     car3 = Car(r, (21, 0))
     self.assertTrue( r.placeObject(car3) )
     self.assertEqual(3, r.carCount())
     self.assertEqual(0, r.distanceToNextThing(car1.pos))
     self.assertEqual(8, r.distanceToNextThing(car3.pos))
 def test_cant_push_car_on_stop(self):
     speedLimits = SpeedLimits([SpeedLimit.createObstacle((0, 1))], 5)
     r = Road(3, 40, speedLimits)
     self.assertFalse(r.placeObject(Car(r, (0, 1))))
 def test_cant_push_car_on_stop(self):
      speedLimits = SpeedLimits( [SpeedLimit.createObstacle((0,1))], 5 )
      r = Road(3, 40, speedLimits)
      self.assertFalse( r.placeObject( Car(r, (0,1)) ))