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