def deploy_rovers(inputs): """ Create a new planet, with a plateau on which to deploy input rovers. :param inputs: :return: """ # Get the length and width of the plateau length = inputs['plateau']['length'] width = inputs['plateau']['width'] # Get the list of rovers rovers = inputs['rovers'] # Create a planet which will list all plateaus on the planet planet = models.Planet('Mars') # Create a plateau with the given length and width plateau = models.Plateau(length, width) # Add the plateau to the planet list of plateaus planet.add_plateau(plateau) for rover in rovers: # Create a new rover current_rover = models.Rover(rover['x'], rover['y'], rover['heading']) # Add the rover to the plateau plateau.add_rover(current_rover) # Get the rover's commands commands = rover['commands'] for command in commands: # Command the rover current_rover.command_rover(command) print(current_rover.get_position())
def test_rover_list(self): plateau = models.Plateau(5, 5) rover = models.Rover(1, 1, 'N') plateau.add_rover(rover) self.assertEqual(len(plateau.rover_list), 1) self.assertEqual(plateau.rover_list[0].x_pos, 1) self.assertEqual(plateau.rover_list[0].y_pos, 1) self.assertEqual(plateau.rover_list[0].heading, 'N')
def test_command_rover_left(self): rover = models.Rover(1, 1, 'N') rover.command_rover('L') self.assertEqual(rover.heading, 'W')
def test_turn_right(self): rover = models.Rover(1, 1, 'N') rover.turn_right() self.assertEqual(rover.heading, 'E')
def test_move_south(self): rover = models.Rover(1, 1, 'S') rover.move() self.assertEqual(rover.y_pos, 0) self.assertEqual(rover.x_pos, 1)
def test_move_north(self): rover = models.Rover(1, 1, 'N') rover.move() self.assertEqual(rover.y_pos, 2) self.assertEqual(rover.x_pos, 1)
def test_move_east(self): rover = models.Rover(1, 1, 'E') rover.move() self.assertEqual(rover.x_pos, 2) self.assertEqual(rover.y_pos, 1)
def test_rover(self): rover = models.Rover(1, 2, 'N') self.assertEqual(rover.x_pos, 1) self.assertEqual(rover.y_pos, 2) self.assertEqual(rover.heading, 'N')
def test_command_rover_move(self): rover = models.Rover(1, 1, 'N') rover.command_rover('M') self.assertEqual(rover.x_pos, 1) self.assertEqual(rover.y_pos, 2)
def test_command_rover_right(self): rover = models.Rover(1, 1, 'N') rover.command_rover('R') self.assertEqual(rover.heading, 'E')