def test_complete_rover_missions_multi(self):
    mission_str = '''
      5 5
      1 2 N
      LMLMLMLMM
      3 3 E
      MMRMMRMRRM
    '''
    mission = Mission.from_str(mission_str)

    r = mission.rovers[0]
    self.assertEqual(r.current_position(), "x: 1, y: 2, heading: N")
    r = mission.rovers[1]
    self.assertEqual(r.current_position(), "x: 3, y: 3, heading: E")
    
    mission.complete_rover_missions()

    # 5 5
    # 3 3 E
    # MM RMM RM RRM
    # MM  -> 5,3 E
    # RMM -> 5,1 S
    # RM  -> 4,1 W
    # RRM -> 5,1 E
    r = mission.rovers[0]
    self.assertEqual(r.current_position(), "x: 1, y: 3, heading: N")
    r = mission.rovers[1]
    self.assertEqual(r.current_position(), "x: 5, y: 1, heading: E")
  def test_complete_rover_missions_single(self):
    mission_str = '''
      5 5
      1 2 N
      LMLMLMLMM
    '''
    mission = Mission.from_str(mission_str)
  
    r = mission.rovers[0]
    self.assertEqual(r.current_position(), "x: 1, y: 2, heading: N")
    
    mission.complete_rover_missions()

    # 5 5
    # 1 2 N
    # LM LM LM LMM
    # LM -> 0,2 W
    # LM -> 0,1 S
    # LM -> 1,1 E
    # LMM -> 1,3 N
    r = mission.rovers[0]
    self.assertEqual(r.current_position(), "x: 1, y: 3, heading: N")
  def test_display_rover_missions(self):
    mission = Mission.from_str(MissionTest.mission_str)

    mission.display_rover_missions()
 def test_mission_initialization(self):
   mission = Mission.from_str(MissionTest.mission_str)
 
   self.assertEqual(mission.terrain.latitude, 5)
   self.assertEqual(mission.terrain.longitude, 5)
   self.assertEqual(mission.rovers.__len__(), 1)