def resolveNewX(self, roverGps, map: PlanetMap): tempX = roverGps.x tempX += self.x if (tempX < 0): tempX = map.get_max_x() elif (tempX > map.get_max_x()): tempX = 0 return tempX
def resolveNewY(self, roverGps, map: PlanetMap): tempY = roverGps.y tempY += self.y if (tempY < 0): tempY = map.get_max_y() elif (tempY > map.get_max_y()): tempY = 0 return tempY
def test_given_start_position_33_and_4x4_map(self, _, direction, command, expectedX, expectedY): map = PlanetMap(4, 4) rover = Rover(map, 3, 3, direction) rover.move([command]) self.assertEqual(rover.get_x(), expectedX) self.assertEqual(rover.get_y(), expectedY)
def test_rotation(self, _, originalDirection, command, expectedDirection): map = PlanetMap(10, 10) rover = Rover(map, 0, 0, originalDirection) rover.move([command]) self.assertEqual(rover.get_y(), 0) self.assertEqual(rover.get_x(), 0) self.assertEqual(rover.get_direction(), expectedDirection)
def test_receives_position_direction_and_map(self): map = PlanetMap(10, 10) rover = Rover(map, 0, 0, Direction.NORTH) self.assertIsNotNone(rover) self.assertEqual(rover.get_x(), 0) self.assertEqual(rover.get_y(), 0) self.assertEqual(rover.get_direction().value, 'N')
def test_list_commands_from_west_Reach_End_Point(self): map = PlanetMap(10, 10) rover = Rover(map, 0, 0, Direction.WEST) rover.move( ["R", "R", "F", "F", "F", "F", "L", "L", "R", "B", "B", "R"]) self.assertEqual(rover.get_y(), 2) self.assertEqual(rover.get_x(), 4) self.assertEqual(rover.get_direction(), Direction.EAST)
def test_given_4x4_map_getMaxX_returnsMaxPossibleValue3(self): planet_map = PlanetMap(4, 4) self.assertEqual(planet_map.get_max_x(), 3)
def test_given_4x4_map_getWidth_returnsWidth(self): planet_map = PlanetMap(4, 4) self.assertEqual(planet_map.get_width(), 4)
def test_given_4x4_map_getHeight_returnsHeight4(self): planet_map = PlanetMap(4, 4) self.assertEqual(planet_map.get_height(), 4)