예제 #1
0
    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)
예제 #8
0
    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)
예제 #10
0
    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()))