From e40a1b2bb8583f4880a43c2fded8f92f287d2c0a Mon Sep 17 00:00:00 2001 From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de> Date: Wed, 30 Apr 2025 18:13:36 +0200 Subject: [PATCH] New function added - implementation of a move_backward-function in order to make the rover move backward too, creation of 4 testcases in order to proof that the MissionControl is able to make the rover move backwards --- rover.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/rover.py b/rover.py index 7f8c17e..998d7b4 100644 --- a/rover.py +++ b/rover.py @@ -89,10 +89,22 @@ class Rover: elif self.direction == 'W': self.x -= 1 + def move_backward(self): + if self.direction == 'N': + self.y -= 1 + elif self.direction == 'S': + self.y += 1 + elif self.direction == 'E': + self.x -= 1 + elif self.direction == 'W': + self.x += 1 + def drive(self, cmd: str) -> str: for c in cmd: if c == 'F': self.move_forward() + elif c == 'B': + self.move_backward() class Mars: @@ -153,6 +165,37 @@ class TestRover(unittest.TestCase): control.execute_command('F') self.assertEqual((rover.x, rover.y), (0,0)) + # Test Move Backward in Different Directions + def test_move_backward_north(self): + rover = Rover(0, 1, 'N') + control = MissionControl(rover) + + control.execute_command('B') + self.assertEqual((rover.x, rover.y), (0,0)) + + def test_move_backward_south(self): + rover = Rover(0, 0, 'S') + control = MissionControl(rover) + + control.execute_command('B') + self.assertEqual((rover.x, rover.y), (0,1)) + + def test_move_backward_east(self): + rover = Rover(1, 0, 'E') + control = MissionControl(rover) + + control.execute_command('B') + self.assertEqual((rover.x, rover.y), (0,0)) + + def test_move_backward_west(self): + rover = Rover(0, 0, 'W') + control = MissionControl(rover) + + control.execute_command('B') + self.assertEqual((rover.x, rover.y), (1,0)) + + + if __name__ == '__main__': -- GitLab