def setUp(self): from surfacemapper.rover import Rover from surfacemapper.mars_rover_controller import MarsRoverController self.controller = MarsRoverController((0, 0), (5, 5)) rover = Rover(ROVER_ID, (1, 2, 'N'), ['L', 'M']) self.controller.add_rover(ROVER_ID, rover)
class TestMarsRoverController(unittest.TestCase): def setUp(self): from surfacemapper.rover import Rover from surfacemapper.mars_rover_controller import MarsRoverController self.controller = MarsRoverController((0, 0), (5, 5)) rover = Rover(ROVER_ID, (1, 2, 'N'), ['L', 'M']) self.controller.add_rover(ROVER_ID, rover) def tearDown(self): self.controller = None def test_move(self): self.controller.move(ROVER_ID, (0, 1)) rover = self.controller.rovers[ROVER_ID] self.assertEqual((1, 3, 'N'), rover.position) def test_move_invalid_grid_point(self): with self.assertRaises(Exception): self.controller.move(ROVER_ID, (-2, 0)) def test_turn(self): self.controller.turn(ROVER_ID, 'E') rover = self.controller.rovers[ROVER_ID] self.assertEqual((1, 2, 'E'), rover.position) def test_turn_invalid_direction(self): with self.assertRaises(Exception): self.controller.turn(ROVER_ID, 'NE')
def test_move(self, m_move): from surfacemapper.rover import Rover from surfacemapper.mars_rover_controller import MarsRoverController rover = Rover(ROVER_ID, (1, 2, 'N'), ['L', 'R', 'M']) self.mapper.controller = MarsRoverController((0, 0), (5, 5)) self.mapper.move(rover) m_move.assert_called_once_with(ROVER_ID, (0, 1))
def test_turn_right(self, m_turn): from surfacemapper.rover import Rover from surfacemapper.mars_rover_controller import MarsRoverController rover = Rover(ROVER_ID, (1, 2, 'N'), ['L', 'R', 'M']) self.mapper.controller = MarsRoverController((0, 0), (5, 5)) self.mapper.turn_right(rover) m_turn.assert_called_once_with(ROVER_ID, 'E')