def test_dispatch(): """Test moving a car that doesn't have enough fuel.""" manager = SuperDuperManager() manager.add_car('car1', 30) manager.add_car('car2', 30) manager.add_car('car3', 20) manager.move_car('car2', 6, 2) manager.move_car('car1', 3, 5) manager.dispatch(6, 6) assert manager.get_car_position('car1') == (6, 6)
class TestCar(unittest.TestCase): """Sample unit tests for Exercise 1.""" def setUp(self): """This is a special method that's called at the beginning of each test. It is used to create a SuperDuperManager object with three cars; these will be the cars used in subsequent tests. """ self.manager = SuperDuperManager() self.manager.add_car('car1', 2) self.manager.add_car('car2', 10) self.manager.add_car('car3', 20) def test_move_simple(self): self.manager.move_car('car2', 2, 3) pos = self.manager.get_car_position('car2') self.assertEqual(pos, (2, 3)) self.assertEqual(self.manager.get_car_fuel('car2'), 5) def test_move_not_enough(self): self.manager.move_car('car1', 3, 5) pos = self.manager.get_car_position('car1') self.assertEqual(pos, (0, 0)) self.assertEqual(self.manager.get_car_fuel('car1'), 2) def test_move_negative(self): self.manager.move_car('car3', -2, -3) pos = self.manager.get_car_position('car3') self.assertEqual(pos, (-2, -3)) self.assertEqual(self.manager.get_car_fuel('car3'), 15) def test_dispatch_no_ok_car(self): self.manager.dispatch(10, 20) self.assertEqual(self.manager.get_car_position('car1'), (0, 0)) self.assertEqual(self.manager.get_car_position('car2'), (0, 0)) self.assertEqual(self.manager.get_car_position('car3'), (0, 0)) self.assertEqual(self.manager.get_car_fuel('car1'), 2) self.assertEqual(self.manager.get_car_fuel('car2'), 10) self.assertEqual(self.manager.get_car_fuel('car3'), 20) def test_dispatch_has_ok_car(self): self.manager.dispatch(10, 10) self.assertEqual(self.manager.get_car_position('car1'), (0, 0)) self.assertEqual(self.manager.get_car_position('car2'), (0, 0)) self.assertEqual(self.manager.get_car_position('car3'), (10, 10)) self.assertEqual(self.manager.get_car_fuel('car1'), 2) self.assertEqual(self.manager.get_car_fuel('car2'), 10) self.assertEqual(self.manager.get_car_fuel('car3'), 0) def test_dispatch_has_conflict_car(self): self.manager.dispatch(1, 1) self.assertEqual(self.manager.get_car_position('car1'), (1, 1)) self.assertEqual(self.manager.get_car_position('car2'), (0, 0)) self.assertEqual(self.manager.get_car_position('car3'), (0, 0)) self.assertEqual(self.manager.get_car_fuel('car1'), 0) self.assertEqual(self.manager.get_car_fuel('car2'), 10) self.assertEqual(self.manager.get_car_fuel('car3'), 20) def test_dispatch_has_closet_car(self): self.manager.move_car('car2', 3, 3) self.manager.move_car('car3', 6, 6) self.manager.dispatch(4, 4) self.assertEqual(self.manager.get_car_position('car1'), (0, 0)) self.assertEqual(self.manager.get_car_position('car2'), (4, 4)) self.assertEqual(self.manager.get_car_position('car3'), (6, 6)) self.assertEqual(self.manager.get_car_fuel('car1'), 2) self.assertEqual(self.manager.get_car_fuel('car2'), 2) self.assertEqual(self.manager.get_car_fuel('car3'), 8)