From 079adc39711b28af31703828d569e6d87afcc26c Mon Sep 17 00:00:00 2001
From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de>
Date: Sat, 5 Apr 2025 01:35:50 +0200
Subject: [PATCH 1/4] Meine Implementierung converter.py

---
 Other/GotsisWasili_1/converter.py | 49 +++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 Other/GotsisWasili_1/converter.py

diff --git a/Other/GotsisWasili_1/converter.py b/Other/GotsisWasili_1/converter.py
new file mode 100644
index 0000000..0ef9bd0
--- /dev/null
+++ b/Other/GotsisWasili_1/converter.py
@@ -0,0 +1,49 @@
+#Bei Eingabe von Zahlen, die in der Liste definiert sind, sollen römische Zhalen zurückgegeben werden.
+#Bei Eingabe von Zahlen, die nicht in der Liste definiert ist, soll ein "" ausgeben werden.
+
+import unittest
+from abc import ABC, abstractmethod
+
+class IRomanNumber(ABC):
+    @abstractmethod
+    def convert(self, n:int) -> str:
+        pass
+
+class RomanNumber(IRomanNumber):
+    def convert(self, n: int) -> str:
+        roman_numerals = {
+            1: "I",  2: "II", 3: "III", 
+            4: "IV",  5: "V", 9: "IX", 
+            21: "XXI",  50: "L", 100: "C",
+            500: "D",  1000: "M" 
+        }
+        return roman_numerals.get(n, "")
+
+class TestRomanConverter(unittest.TestCase):
+    def setUp(self):
+        self.converter = RomanNumber()
+
+    def test_single_value(self):
+        self.assertEqual(self.converter.convert(1), "I")
+        self.assertEqual(self.converter.convert(2), "II")
+        self.assertEqual(self.converter.convert(3), "III")
+        self.assertEqual(self.converter.convert(4), "IV")
+        self.assertEqual(self.converter.convert(5), "V")
+        self.assertEqual(self.converter.convert(9), "IX")
+        self.assertEqual(self.converter.convert(21), "XXI")
+        self.assertEqual(self.converter.convert(50), "L")
+        self.assertEqual(self.converter.convert(100), "C")
+        self.assertEqual(self.converter.convert(500), "D")
+        self.assertEqual(self.converter.convert(1000), "M")
+    
+    def test_inivalid_numbers(self):
+        self.assertEqual(self.converter.convert(6), "")
+        self.assertEqual(self.converter.convert(99), "")
+        self.assertEqual(self.converter.convert(-1), "")
+        
+
+
+
+
+if __name__ == "__main__":
+    unittest.main()
-- 
GitLab


From e177c9e7a627a70a290e2b85eb367643e04df4e9 Mon Sep 17 00:00:00 2001
From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de>
Date: Sat, 5 Apr 2025 01:39:30 +0200
Subject: [PATCH 2/4] =?UTF-8?q?Implementierung=20von=20GotsisWasili=20mit?=
 =?UTF-8?q?=20meinen=20Testf=C3=A4llen=20getestet?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Other/GotsisWasili_1/TDD_Converter.py | 51 +++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 Other/GotsisWasili_1/TDD_Converter.py

diff --git a/Other/GotsisWasili_1/TDD_Converter.py b/Other/GotsisWasili_1/TDD_Converter.py
new file mode 100644
index 0000000..36a0518
--- /dev/null
+++ b/Other/GotsisWasili_1/TDD_Converter.py
@@ -0,0 +1,51 @@
+import unittest
+from abc import ABC, abstractmethod
+
+#Interface für Counter
+class IRomanNumber(ABC):
+    @abstractmethod
+    def convert_int_to_str(self, n: int) -> str:
+        pass
+
+# Implementierung Converter Klasse
+class RomanNumber(IRomanNumber):
+    def convert_int_to_str(self, n: int) -> str:
+
+        #Eingabe anders als int
+        if not isinstance(n, int):
+            return "Fehler: Bitte Zahl eingeben"
+        
+        #Int Eingabe kleiner gleich 0
+        if n <= 0:
+            return "Integer muss größer als 0 sein"
+
+        # Bekannte Werte umwandeln
+        roman_convert = {1: "I", 21: "XXI", 1000: "M"}
+        return roman_convert.get(n)
+        
+# Testklasse (TestConverter)
+class TestRomanNumber (unittest.TestCase):
+    def setUp(self):
+        self.r = RomanNumber()
+
+    def test_convert_1(self):
+        self.assertEqual(self.r.convert_int_to_str(1), "I")
+
+    def test_convert_21(self):
+        self.assertEqual(self.r.convert_int_to_str(21), "XXI")
+
+    def test_convert_empty(self):
+        self.assertEqual(self.r.convert_int_to_str(None), "Fehler: Bitte Zahl eingeben")
+
+    def test_convert_string(self):
+        self.assertEqual(self.r.convert_int_to_str("Hello"), "Fehler: Bitte Zahl eingeben")
+
+    def test_convert_downzero(self):
+        self.assertEqual(self.r.convert_int_to_str(-5), "Integer muss größer als 0 sein")
+
+    def test_convert_downzero(self):
+        self.assertEqual(self.r.convert_int_to_str(1000), "M")
+
+if __name__ == "__main__":
+    unittest.main()
+
-- 
GitLab


From d019162e4e2e66783eaf16324d40a34a70033a95 Mon Sep 17 00:00:00 2001
From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de>
Date: Sat, 5 Apr 2025 01:41:50 +0200
Subject: [PATCH 3/4] =?UTF-8?q?Implementierung=20von=20GotsisWasili=20mit?=
 =?UTF-8?q?=20meinen=20Testf=C3=A4llen=20getestet?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Other/GotsisWasili_1/my_converter.py | 35 ++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 Other/GotsisWasili_1/my_converter.py

diff --git a/Other/GotsisWasili_1/my_converter.py b/Other/GotsisWasili_1/my_converter.py
new file mode 100644
index 0000000..05dd7ba
--- /dev/null
+++ b/Other/GotsisWasili_1/my_converter.py
@@ -0,0 +1,35 @@
+#Umsetzungen von GotsisWasili auf meine Testfälle
+
+import unittest
+
+from TDD_Converter import RomanNumber as RomanNumber
+from TDD_Converter import RomanNumber as IRomanNumber
+
+class TestRomanConverter(unittest.TestCase):
+    def setUp(self):
+        self.converter = RomanNumber()
+
+    def test_implements_interface(self):
+        self.assertIsInstance(self.converter, IRomanNumber)
+
+    def test_single_value(self):
+        self.assertEqual(self.converter.convert(1), "I")
+        self.assertEqual(self.converter.convert(2), "II")
+        self.assertEqual(self.converter.convert(3), "III")
+        self.assertEqual(self.converter.convert(4), "IV")
+        self.assertEqual(self.converter.convert(5), "V")
+        self.assertEqual(self.converter.convert(9), "IX")
+        self.assertEqual(self.converter.convert(21), "XXI")
+        self.assertEqual(self.converter.convert(50), "L")
+        self.assertEqual(self.converter.convert(100), "C")
+        self.assertEqual(self.converter.convert(500), "D")
+        self.assertEqual(self.converter.convert(1000), "M")
+    
+    def test_inivalid_numbers(self):
+        self.assertEqual(self.converter.convert(6), "")
+        self.assertEqual(self.converter.convert(99), "")
+        self.assertEqual(self.converter.convert(-1), "")
+    
+
+if __name__ == "__main__":
+    unittest.main()
-- 
GitLab


From 66469dcc40b1deb92d08e8852aef4f161851353f Mon Sep 17 00:00:00 2001
From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de>
Date: Sat, 5 Apr 2025 01:43:20 +0200
Subject: [PATCH 4/4] =?UTF-8?q?Meine=20Implementierung=20mit=20GotsisWasil?=
 =?UTF-8?q?i=20Testf=C3=A4llen=20getestet?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Other/GotsisWasili_1/your_converter.py | 34 ++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 Other/GotsisWasili_1/your_converter.py

diff --git a/Other/GotsisWasili_1/your_converter.py b/Other/GotsisWasili_1/your_converter.py
new file mode 100644
index 0000000..270b4d0
--- /dev/null
+++ b/Other/GotsisWasili_1/your_converter.py
@@ -0,0 +1,34 @@
+import unittest
+from converter import RomanNumber as RomanNumber
+from converter import IRomanNumber 
+
+
+# Testklasse (TestConverter)
+class TestRomanNumber (unittest.TestCase):
+    def setUp(self):
+        self.r = RomanNumber()
+
+    def test_implements_interface(self):
+        self.assertIsInstance(self.r, IRomanNumber)
+
+    def test_convert_1(self):
+        self.assertEqual(self.r.convert_int_to_str(1), "I")
+
+    def test_convert_21(self):
+        self.assertEqual(self.r.convert_int_to_str(21), "XXI")
+
+    def test_convert_empty(self):
+        self.assertEqual(self.r.convert_int_to_str(None), "Fehler: Bitte Zahl eingeben")
+
+    def test_convert_string(self):
+        self.assertEqual(self.r.convert_int_to_str("Hello"), "Fehler: Bitte Zahl eingeben")
+
+    def test_convert_downzero(self):
+        self.assertEqual(self.r.convert_int_to_str(-5), "Integer muss größer als 0 sein")
+
+    def test_convert_downzero(self):
+        self.assertEqual(self.r.convert_int_to_str(1000), "M")
+
+if __name__ == "__main__":
+    unittest.main()
+
-- 
GitLab