def test_get_position(self): """ Test if rover gets current position tuple correctly. """ pos_input = (10, 30, 'N') r = rover.Rover(pos_input) self.assertEqual(r.get_position(), pos_input)
def test_rover_direction(self): """ Test if rover stores direction value correctly. """ pos = (10, 30, 'A') r = rover.Rover(pos) self.assertEqual(r.direction, 'A')
def test_rover_x(self): """ Test if rover stores x value correctly. """ pos = (10, 30, 'A') r = rover.Rover(pos) self.assertEqual(r.x, 10)
def test_controller_turn_left(self): """ Test if Controller can init reader instance correctly. """ ctrl = self.init_controller_for_test() pos = (4, 5, 'E') a_rover = rover.Rover(pos) ctrl.do_command(a_rover, 'L') expected = (4, 5, 'N') self.assertEqual(a_rover.get_position(), expected)
def test_controller_nok_move_foward_west(self): """ Test if Controller can init reader instance correctly. """ ctrl = self.init_controller_for_test() pos = (0, 5, 'W') a_rover = rover.Rover(pos) ctrl.do_command(a_rover, 'M') expected = (0, 5, 'W') self.assertEqual(a_rover.get_position(), expected)
def test_rover_turn_left_when_facing_north(self): """ Test if rover can turn left when facing North direction. """ initial_pos = (3, 4, 'N') r = rover.Rover(initial_pos) r.turn_left() pos = (r.x, r.y, r.direction) expected = (3, 4, 'W') self.assertEqual(pos, expected)
def test_rover_turn_left_when_facing_south(self): """ Test if rover can turn left foward when facing South direction. """ initial_pos = (3, 4, 'S') r = rover.Rover(initial_pos) r.turn_left() pos = (r.x, r.y, r.direction) expected = (3, 4, 'E') self.assertEqual(pos, expected)
def test_rover_move_when_facing_north(self): """ Test if rover can move foward when facing North direction. """ initial_pos = (3, 4, 'N') r = rover.Rover(initial_pos) r.move_foward() pos = (r.x, r.y, r.direction) expected = (3, 5, 'N') self.assertEqual(pos, expected)
def test_rover_turn_right_when_facing_west(self): """ Test if rover can turn right when facing West direction. """ initial_pos = (3, 4, 'W') r = rover.Rover(initial_pos) r.turn_right() pos = (r.x, r.y, r.direction) expected = (3, 4, 'N') self.assertEqual(pos, expected)
def run(self): """(Controller) -> NoneType Executes all lines of input file. >>> cat input.txt 5 5 1 2 N LMLMLMLMM >>> c = Controller("input.txt") >>> c.run() 1 3 N """ with reader.Reader(self.filename) as r: self.x_limit, self.y_limit = r.read_upper_right_coordinates() while r.has_rover_simulation(): rover_starting_position = r.read_rover_starting_position() m_rover = rover.Rover(rover_starting_position) commands = r.read_rover_commands() for command in commands: self.do_command(m_rover, command) print(self.format_position(m_rover.get_position()))