From 7ddeafb9675069369f6e07932e3ccf065ae0b1df Mon Sep 17 00:00:00 2001
From: Daniel Rafeh <daniel.rafeh@student.reutlingen-university.de>
Date: Tue, 18 Mar 2025 17:09:02 +0000
Subject: [PATCH 01/33] Delete test.py

---
 test.py | 24 ------------------------
 1 file changed, 24 deletions(-)
 delete mode 100644 test.py

diff --git a/test.py b/test.py
deleted file mode 100644
index f027fd1..0000000
--- a/test.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import unittest
-
-class Person:
-    def __init__(self, name, age):
-        self.name = name
-        self.age = age
-
-    def adult(self):
-        return self.age >= 18
-    
-class TestPerson(unittest.TestCase):
-    def test_if_adult(self):
-        person1 = Person("Daniel", 24)
-        person2 = Person("Wasilios", 21)
-        person3 = Person("Goksis", 12)
-
-        self.assertTrue(person1.adult())
-        self.assertTrue(person2.adult())
-        self.assertFalse(person3.adult())
-
-
-
-if __name__ == "__main__":
-    unittest.main()
-- 
GitLab


From 33764eb2ff3adf30aad98769b4d54555d7a00505 Mon Sep 17 00:00:00 2001
From: Daniel Rafeh <daniel.rafeh@student.reutlingen-university.de>
Date: Tue, 18 Mar 2025 17:09:08 +0000
Subject: [PATCH 02/33] Delete unittestExample1.py

---
 unittestExample1.py | 27 ---------------------------
 1 file changed, 27 deletions(-)
 delete mode 100644 unittestExample1.py

diff --git a/unittestExample1.py b/unittestExample1.py
deleted file mode 100644
index 55c1a53..0000000
--- a/unittestExample1.py
+++ /dev/null
@@ -1,27 +0,0 @@
-import unittest
-
-class Person:
-    def __init__(self, name, age):
-        self.name = name
-        self.age = age
-
-    def adult(self):
-        return self.age >= 18
-    
-class TestPerson(unittest.TestCase):
-    def test_if_adult(self):
-        person1 = Person("Daniel", 24)
-        person2 = Person("Wasilios", 21)
-        person3 = Person("Goksis", 12)
-
-        self.assertTrue(person1.adult())
-        self.assertTrue(person2.adult())
-        self.assertFalse(person3.adult())
-
-
-
-if __name__ == "__main__":
-    unittest.main()
-
-
-
-- 
GitLab


From d129e775b55d05f5054fb22021f2f4ecd2ae7e49 Mon Sep 17 00:00:00 2001
From: Daniel Rafeh <daniel.rafeh@student.reutlingen-university.de>
Date: Tue, 18 Mar 2025 17:09:13 +0000
Subject: [PATCH 03/33] Delete unittestExample2.py

---
 unittestExample2.py | 37 -------------------------------------
 1 file changed, 37 deletions(-)
 delete mode 100644 unittestExample2.py

diff --git a/unittestExample2.py b/unittestExample2.py
deleted file mode 100644
index 84ff7a7..0000000
--- a/unittestExample2.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import unittest
-
-def add(a, b):
-    return a + b
-    
-def sub(a, b):
-    return a - b
-    
-def mul(a, b):
-    return a * b
-    
-def div(a, b):
-    return a / b
-    
-class TestCalculation(unittest.TestCase):
-    def test_add(self):
-        self.assertEqual(add(1,2), 3)
-        self.assertEqual(add(8,7), 15)
-        self.assertEqual(add(200, 380), 580)
-
-    def test_sub(self):
-        self.assertEqual(sub(2,1), 1)
-        self.assertEqual(sub(8,7), 1)
-        self.assertEqual(sub(380, 200), 180)
-
-    def test_mul(self):
-        self.assertEqual(mul(2,5), 10)
-        self.assertEqual(mul(8,7), 56)
-        self.assertEqual(mul(3, 20), 60)
-
-    def test_div(self):
-        self.assertEqual(div(10,5), 2)
-        self.assertEqual(div(8,1), 8)
-        self.assertEqual(div(200, 20), 10)
-
-if __name__ == "__main__":
-    unittest.main()
\ No newline at end of file
-- 
GitLab


From e297c7097cc6f0161aa616a12e05d0a213139e84 Mon Sep 17 00:00:00 2001
From: Daniel Rafeh <daniel.rafeh@student.reutlingen-university.de>
Date: Tue, 18 Mar 2025 17:09:32 +0000
Subject: [PATCH 04/33] Delete exampleApp.py

---
 .vscode/exampleApp.py | 47 -------------------------------------------
 1 file changed, 47 deletions(-)
 delete mode 100644 .vscode/exampleApp.py

diff --git a/.vscode/exampleApp.py b/.vscode/exampleApp.py
deleted file mode 100644
index f703090..0000000
--- a/.vscode/exampleApp.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import sqlite3
-from flask import Flask, request, jsonify
-
-def create_app(conn):
-    app = Flask(__name__)
-
-    def create_user(cursor, name, email):
-        cursor.execute('''CREATE TABLE IF NOT EXISTS users (
-                       id INTEGER PRIMARY KEY AUTOINCREMENT,
-                       name TEXT NOT NULL, 
-                       email TEXT NOT NULL)''')
-        
-        cursor.execute('''INSERT INTO users (name, email) VALUES (?, ?)''', (name, email))
-        cursor.connection.commit()
-
-    def get_user(cursor, name):
-        cursor.execute('''SELECT * FROM users WHERE name = ?''', (name,))
-        row = cursor.fetchone()
-        if row:
-            return {'id': row[0], 'name': row[1], 'email': row[2]}
-        return None
-
-    @app.route('/create_user', methods=['POST'])
-    def api_create_user():
-        data = request.get_json()
-        name = data.get('name')
-        email = data.get('email')
-        
-        # Verwende 'with' für den Cursor, um sicherzustellen, dass er ordnungsgemäß verwendet wird
-        with conn.cursor() as cursor:
-            create_user(cursor, name, email)
-        return jsonify({'message': 'User has been created successfully'}), 201
-    
-    @app.route('/get_user/<name>', methods=['GET']) 
-    def api_get_user(name):  
-        with conn.cursor() as cursor:
-            user = get_user(cursor, name)
-        if user:
-            return jsonify(user), 200
-        return jsonify({'message': 'User not found'}), 404
-    
-    return app
-
-if __name__ == '__main__':
-    conn = sqlite3.connect(':memory:')  
-    app = create_app(conn)
-    app.run(debug=True, port=8001)
-- 
GitLab


From f673161f77ebbacf2924241184289ee7536e7e28 Mon Sep 17 00:00:00 2001
From: Daniel Rafeh <daniel.rafeh@student.reutlingen-university.de>
Date: Tue, 18 Mar 2025 17:09:36 +0000
Subject: [PATCH 05/33] Delete integrationTestExample1.py

---
 .vscode/integrationTestExample1.py | 2 --
 1 file changed, 2 deletions(-)
 delete mode 100644 .vscode/integrationTestExample1.py

diff --git a/.vscode/integrationTestExample1.py b/.vscode/integrationTestExample1.py
deleted file mode 100644
index 9f6bfd8..0000000
--- a/.vscode/integrationTestExample1.py
+++ /dev/null
@@ -1,2 +0,0 @@
-import unittest
-import sqlite3
-- 
GitLab


From 29c48bc6ceb697095fa6a52942b3ebaf6d6ea836 Mon Sep 17 00:00:00 2001
From: Daniel Rafeh <daniel.rafeh@student.reutlingen-university.de>
Date: Tue, 18 Mar 2025 17:09:41 +0000
Subject: [PATCH 06/33] Delete settings.json

---
 .vscode/settings.json | 11 -----------
 1 file changed, 11 deletions(-)
 delete mode 100644 .vscode/settings.json

diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index 65d939f..0000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-    "python.testing.unittestArgs": [
-        "-v",
-        "-s",
-        ".",
-        "-p",
-        "*test.py"
-    ],
-    "python.testing.pytestEnabled": false,
-    "python.testing.unittestEnabled": true
-}
\ No newline at end of file
-- 
GitLab


From 2e2ab859640bbdbaab37fe3665497e18b55954a3 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Tue, 18 Mar 2025 18:27:52 +0100
Subject: [PATCH 07/33] test

---
 helloWorld.py | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 helloWorld.py

diff --git a/helloWorld.py b/helloWorld.py
new file mode 100644
index 0000000..8c64f79
--- /dev/null
+++ b/helloWorld.py
@@ -0,0 +1 @@
+print("Hello World :)")
\ No newline at end of file
-- 
GitLab


From b6d7cd1e8143bbe37a8a33aba52aff7cfc064890 Mon Sep 17 00:00:00 2001
From: Daniel Rafeh <daniel.rafeh@student.reutlingen-university.de>
Date: Tue, 18 Mar 2025 17:28:35 +0000
Subject: [PATCH 08/33] Update file main.py

---
 main.py | 1 -
 1 file changed, 1 deletion(-)

diff --git a/main.py b/main.py
index 8e23576..e69de29 100644
--- a/main.py
+++ b/main.py
@@ -1 +0,0 @@
-print("Hello World")
\ No newline at end of file
-- 
GitLab


From aaa555f66212c4e7c2ffcf5d306c6f8b945a8627 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 13:03:26 +0100
Subject: [PATCH 09/33] =?UTF-8?q?Liste=20f=C3=BCr=20Tests=20erstellt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 __pycache__/calculator.cpython-312.pyc | Bin 0 -> 3501 bytes
 calculator.py                          |  66 +++++++++++++++++++++++++
 converter.py                           |  33 +++++++++++++
 counter.py                             |  55 +++++++++++++++++++++
 test_calculator.py                     |  38 ++++++++++++++
 5 files changed, 192 insertions(+)
 create mode 100644 __pycache__/calculator.cpython-312.pyc
 create mode 100644 calculator.py
 create mode 100644 converter.py
 create mode 100644 counter.py
 create mode 100644 test_calculator.py

diff --git a/__pycache__/calculator.cpython-312.pyc b/__pycache__/calculator.cpython-312.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..0c79c8eed669ab1f2545621177cf866fa57d22f5
GIT binary patch
literal 3501
zcmd5;UvC>l5Z}E&_QkQCq)lj`spB-IaDfCOpb{lQ4W$JtWCEp#T9M4zw@GdMC+wZm
z+6t%-c}N~mB2^+m;tNFi3VZ{eq7o%Kfk5KPZy^_i)F)>4Y{zy@(h453C(Z57?9S}Y
z{$^%>3WWj$+Jo<%*_2AiA2_Hr7>nk91HUz55|d_0j>c(Dic6G8<UL|ai^P-}-ITql
zaanK`;Hpfna}`+Y%c^k|{{E~lr^J=&dJSfFFf|kQ);H4nYOUnc0~HkMk|R&PbJYnO
zNz3L&%FZ$SPQgqyE|aPQ_e1Ec5k}(FByow!CS4?(RbgC#G3>oQhTWQS!`KI7I7MCV
zFR8lE>HOfTkxdn|hF##P>XGZVaqKF>Xo+ml*aq2<9mQhV8HXAUO<Fi18jU{6q%Ke2
zvKY6f-=CWPD9_&I>3KFi#f^JuYmOH(>`Oa(ljWFYGakJ(J=Z80wOQ&;zK|`<rdiUk
z(u~_|G@Z{E<_$Yt$g})(s=mXqxsoFrrdjT4*!CDOaFZ_H?tSvR7IdLQjy?_7U<&U*
zf^eywgyXF_vQ<nrn*fGb(2WavfczKjxnj0iJ1~N%_<zxErstcr14AgTYme!gqa_k~
zBgYa6Cy+?w3T82j{a_;TRnf?L5{^#gT}VzN=|ge`iEtZwLAZ<iu!jWUU`+v8B)jVA
zKP9S$T$%WK_prC;gWl8g#0ueZVIl?E>y1`>?gi)^1_p*jTm(a0!4QBT1>nbh0`P%<
z!8-<-z&qZ=8d;zVQW<(T$x%oV-YJI<RU#Ijfn{zdko#n}t9x~PxwsU395e0g0TPd~
zhZoUg4}keB@OT8tW58@@1ft{^BY4qGMgX4!PiF*<e~b|XQj-yY>0pzQnC|EO$Pov8
z4tq}kMzK*OcnS;eVv+0v{`&TPHR58=gA`7T>6GKYJ+xj0$??!KRREaZ^a0gMeu%H|
zr;zLpagnM)6|_N_sY30%&~4XcwcNZw5_Mk51E4O6JvubCK{<lU!WmI7U#S+eZ_Sl^
zn{AE>?u$6rL*p+!XCDkKDc|}$pwvyk3=DOF{x6^d=qDNYx3&z<XlW)jrA<5#w67_w
ztCd)fCFlY*<=PxdN<>#;6;xHhxfRT-y3C)4pSWMA)3BhF*w-)<ZAjv<j?DP1g=V7F
zBWpJJH-V+#Ov|Zjf|p^obrA@JVffU_%<{}iW;wIovp)GS99fcgwcw7{zoqrBpI$e%
zwde`(2^J!*1F86d)O;dxFCK=E0%_v}ELLru0D^H?;y&(#Q|li;3=f`2Cm<3lSWGGy
z`!y$s+H;f>u%@<k0thaFq9;T`a$6fZ0Z8bD9dq0^A8BxcsJ%xy0ZV^dCxGBB)b=_O
zQ6(CKzgD{4RS=8dZ<GQLn_UfZLN=??HweW<ffv@&GKk-n)|e<LzP#aUObWwf9CF%S
zc!l2vy_hEM$+yW}s>?BsDCTHiSDc`i9X>JA7PFkdXGXTju5n)AUIr09LcllX$8M1m
zzzK<DDN$y;P#$cTG#VycK@DR-AbEs(c0!S@P~?a5c4%Zb*u8Rn`TEL@<r}Mfef;O(
zxxZx+erYE(vK1P6WZ}!`yK@urkLslAkLew)1?&Zo^H-3(hU85o6G*NgX?a%-BM*r<
zPZT;($`q<b_BBZz+7DF8dC_xW7!h|XmgpVuP)?>e=2`C{hqvt25UrR`+vpM}aQL)#
zG|wfFdWGHQy*S#0_egx3Ujsde0P8Z4J(*Ja8yP-Ox@c&1_<+Fg;6f+uTRnR~;O7ny
b+WjjTI#32^WcBl%zKdIZ7ylwK5L^8Rl8bv*

literal 0
HcmV?d00001

diff --git a/calculator.py b/calculator.py
new file mode 100644
index 0000000..1a0959c
--- /dev/null
+++ b/calculator.py
@@ -0,0 +1,66 @@
+from abc import ABC, abstractmethod
+import unittest
+
+class ICalculator(ABC):
+    @abstractmethod
+    def add(self, a, b):
+        pass
+
+    @abstractmethod
+    def sub(self, a, b):
+        pass
+
+    @abstractmethod
+    def mul(self, a, b):
+        pass
+
+    @abstractmethod
+    def div(self, a, b):
+        pass
+
+class Calculator(ICalculator):
+    def add(self, a, b):
+        return a + b
+
+    def sub(self, a, b):
+        return a - b
+
+    def mul(self, a, b):
+        return a * b
+
+    def div(self, a, b):
+        if b == 0:
+            raise ValueError("Division durch die Zahl null ist nicht erlaubt")
+        return a / b
+
+class TestCalculator(unittest.TestCase):
+    def setUp(self):
+        self.calc = Calculator() 
+
+    # Test add-function
+    def test_add(self):
+        erg = self.calc.add(3, 5) 
+        self.assertEqual(erg, 8)
+
+    # Test sub-function
+    def test_sub(self):
+        erg = self.calc.sub(10, 3)
+        self.assertEqual(erg, 7)
+
+    # Test mul-function
+    def test_mul(self):
+        erg = self.calc.mul(4, 6)  
+        self.assertEqual(erg, 24)
+
+    # Test div-function
+    def test_div(self):
+        erg = self.calc.div(20, 4) 
+        self.assertEqual(erg, 5)
+
+    # Test div/0
+    def test_div_by_zero(self):
+        with self.assertRaises(ValueError):
+            self.calc.div(10, 0) 
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/converter.py b/converter.py
new file mode 100644
index 0000000..39548ef
--- /dev/null
+++ b/converter.py
@@ -0,0 +1,33 @@
+# Bei Eingabe der Zahl 1 soll "I" ausgegeben werden
+
+# Bei Eingabe der Zahl 2 soll "II" ausgegeben werden
+
+# Bei Eingabe der Zahl 3 soll "III" ausgegeben werden
+
+# Bei Eingabe der Zahl 4 soll "IV" ausgegeben werden
+
+# Bei Eingabe der Zahl 5 soll "V" ausgegeben werden
+
+# Bei Eingabe der Zahl 9 soll "IX" ausgegeben werden
+
+# Bei Eingabe der Zahl 10 soll "X" ausgegeben werden
+
+# Bei Eingabe der Zahl 21 soll "XXI" ausgegeben werden
+
+# Bei Eingabe der Zahl 50 soll "L" ausgegeben werden
+
+# Bei Eingabe der Zahl 100 soll "C" ausgegeben werden
+
+# Bei Eingabe der Zahl 500 soll "D" ausgegeben werden
+
+# Bei Eingabe der Zahl 1000 soll "M" ausgegeben werden
+
+# Bei Eingabe der Zahl 1111 soll "MCXI" ausgegeben werden
+
+# Bei Eingabe der Zahl 99 soll "XCIX" ausgegeben werden
+
+# Bei Eingabe der Zahl 0 soll "Es gibt keine römische Null" ausgegeben werden
+
+# Bei Eingabe der Zahl 40 soll "XL" ausgegeben werden
+
+# Bei Eingabe eines Strings statt Integer-Wert soll "Gebe eine Zahl ein" ausgegeben werden
\ No newline at end of file
diff --git a/counter.py b/counter.py
new file mode 100644
index 0000000..2126ece
--- /dev/null
+++ b/counter.py
@@ -0,0 +1,55 @@
+from abc import ABC, abstractmethod
+import unittest
+
+# Bei Eingabe des Strings Decker liegert die Funktion 3
+
+# Bei Eingabe eines leeren Strings soll 0 ausgegeben werden
+
+# Bei Eingabe des Strings Hallo soll 0 ausgegeben werden
+
+# Bei Eingabe von Groß-/Kleinschreibung soll trotzdem der entsprechende Wert rauskommen
+
+# Bei Eingabe vom Buchstaben D oder E soll trotzdem die 1 rauskommen
+
+class ICounter(ABC):
+    @abstractmethod
+    def count_ED(self, s):
+        pass
+
+class Counter(ICounter):
+    def count_ED(self, s):
+        s = s.upper()
+        return s.count("E") + s.count("D")
+
+class TestCounter(unittest.TestCase):
+    def setUp(self):
+        self.c = Counter()
+
+    def test_count_ED_regular(self):
+        res = self.c.count_ED("Decker")
+        self.assertEqual(res, 3)
+
+    def test_count_ED_empty(self):
+        res = self.c.count_ED(" ")
+        self.assertEqual(res, 0)
+
+    def test_count_ED_wo(self):
+        res = self.c.count_ED("Hallo")
+        self.assertEqual(res, 0)
+
+    def test_count_ED_insensetiv(self):
+        res = self.c.count_ED("Der Esel")
+        self.assertEqual(res, 4)
+
+    def test_count_ED_oneL(self):
+        res = self.c.count_ED('E')
+        self.assertEqual(res, 1)
+        res = self.c.count_ED('D')
+        self.assertEqual(res, 1)
+        res = self.c.count_ED('e')
+        self.assertEqual(res, 1)
+        res = self.c.count_ED('d')
+        self.assertEqual(res, 1)
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/test_calculator.py b/test_calculator.py
new file mode 100644
index 0000000..0ecaa8b
--- /dev/null
+++ b/test_calculator.py
@@ -0,0 +1,38 @@
+import sys
+import unittest
+from calculator import Calculator
+
+class TestCalculator(unittest.TestCase):
+
+    def setUp(self):
+        self.c = Calculator()
+
+    # Test add-function
+    def test_add(self):
+        erg = self.c.add(3, 5)
+        self.assertEqual(erg, 8)
+
+    # Test sub-function
+    def test_sub(self):
+        erg = self.c.sub(10, 3)
+        self.assertEqual(erg, 7)
+
+    # Test mul-function
+    def test_mul(self):
+        erg = self.c.mul(4, 6)
+        self.assertEqual(erg, 24)
+
+    # Test div-function
+    def test_div(self):
+        erg = self.c.div(20, 4)
+        self.assertEqual(erg, 5)
+
+    # Test div/0
+    def test_div_by_zero(self):
+        with self.assertRaises(ValueError):
+            self.c.div(10, 0)
+    
+    # Test negative numbers
+
+    # Test wrong inputs
+
-- 
GitLab


From a65a4cf95c7526d4b10ef1ed2449bc98b375127e Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:17:32 +0100
Subject: [PATCH 10/33] Test 1/17 erfolgreich

---
 converter.py | 49 +++++++++++++++++++++++++++++++++----------------
 1 file changed, 33 insertions(+), 16 deletions(-)

diff --git a/converter.py b/converter.py
index 39548ef..8f6e01b 100644
--- a/converter.py
+++ b/converter.py
@@ -1,33 +1,50 @@
 # Bei Eingabe der Zahl 1 soll "I" ausgegeben werden
-
 # Bei Eingabe der Zahl 2 soll "II" ausgegeben werden
-
 # Bei Eingabe der Zahl 3 soll "III" ausgegeben werden
-
 # Bei Eingabe der Zahl 4 soll "IV" ausgegeben werden
-
 # Bei Eingabe der Zahl 5 soll "V" ausgegeben werden
-
 # Bei Eingabe der Zahl 9 soll "IX" ausgegeben werden
-
 # Bei Eingabe der Zahl 10 soll "X" ausgegeben werden
-
 # Bei Eingabe der Zahl 21 soll "XXI" ausgegeben werden
-
 # Bei Eingabe der Zahl 50 soll "L" ausgegeben werden
-
 # Bei Eingabe der Zahl 100 soll "C" ausgegeben werden
-
 # Bei Eingabe der Zahl 500 soll "D" ausgegeben werden
-
 # Bei Eingabe der Zahl 1000 soll "M" ausgegeben werden
-
 # Bei Eingabe der Zahl 1111 soll "MCXI" ausgegeben werden
-
 # Bei Eingabe der Zahl 99 soll "XCIX" ausgegeben werden
-
 # Bei Eingabe der Zahl 0 soll "Es gibt keine römische Null" ausgegeben werden
-
 # Bei Eingabe der Zahl 40 soll "XL" ausgegeben werden
+# Bei Eingabe des Strings 'IV' soll 4 ausgegenen werden
+
+import unittest
+from abc import ABC, abstractmethod
+
+class IConverter(ABC):
+    @abstractmethod
+    def convert(self, num: int) -> str:
+        pass
+
+class Converter(IConverter):
+    def convert(self, num: int) -> str:
+        roman_numbers = [(1, 'I')]
+        
+        roman_str = ''
+
+        for value, numeral in roman_numbers:
+
+            while num >= value:
+                roman_str += numeral
+                num -= value
+
+        return roman_str
+
+class TestConverter(unittest.TestCase):
+    def setUp(self):
+        self.c = Converter()
+
+    def test_convertOne(self):
+        res = self.c.convert(1)
+        self.assertEqual(res, 'I')
 
-# Bei Eingabe eines Strings statt Integer-Wert soll "Gebe eine Zahl ein" ausgegeben werden
\ No newline at end of file
+if __name__ == "__main__":
+    unittest.main()
-- 
GitLab


From 24854f358247ce5f7816579072b53b529b4185dd Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:19:15 +0100
Subject: [PATCH 11/33] Test 2/17 erfolgreich

---
 converter.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/converter.py b/converter.py
index 8f6e01b..8f49951 100644
--- a/converter.py
+++ b/converter.py
@@ -45,6 +45,10 @@ class TestConverter(unittest.TestCase):
     def test_convertOne(self):
         res = self.c.convert(1)
         self.assertEqual(res, 'I')
+    
+    def test_convertTwo(self):
+        res = self.c.convert(2)
+        self.assertEqual(res, 'II')
 
 if __name__ == "__main__":
     unittest.main()
-- 
GitLab


From 2d5486303b633f7bd8898306faa2d3be93d63889 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:21:36 +0100
Subject: [PATCH 12/33] Test 3/17 erfolgreich

---
 converter.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/converter.py b/converter.py
index 8f49951..b572325 100644
--- a/converter.py
+++ b/converter.py
@@ -49,6 +49,12 @@ class TestConverter(unittest.TestCase):
     def test_convertTwo(self):
         res = self.c.convert(2)
         self.assertEqual(res, 'II')
+    
+    def test_convertTwo(self):
+        res = self.c.convert(3)
+        self.assertEqual(res, 'III')
+
+    
 
 if __name__ == "__main__":
     unittest.main()
-- 
GitLab


From 6b20d9133e48bb4ff72a30af30dcfbdf051345fb Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:24:03 +0100
Subject: [PATCH 13/33] Test 4/17 erfolgreich

---
 converter.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/converter.py b/converter.py
index b572325..b51be3f 100644
--- a/converter.py
+++ b/converter.py
@@ -26,7 +26,7 @@ class IConverter(ABC):
 
 class Converter(IConverter):
     def convert(self, num: int) -> str:
-        roman_numbers = [(1, 'I')]
+        roman_numbers = [(4, 'IV'), (1, 'I')]
         
         roman_str = ''
 
@@ -54,6 +54,10 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(3)
         self.assertEqual(res, 'III')
 
+    def test_convertTwo(self):
+        res = self.c.convert(4)
+        self.assertEqual(res, 'IV')
+
     
 
 if __name__ == "__main__":
-- 
GitLab


From d3fa7851645f6ee652c0a934ab7f1c43f5bb8187 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:25:13 +0100
Subject: [PATCH 14/33] Test 5/17 erfolgreich

---
 converter.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/converter.py b/converter.py
index b51be3f..d69efb5 100644
--- a/converter.py
+++ b/converter.py
@@ -26,7 +26,7 @@ class IConverter(ABC):
 
 class Converter(IConverter):
     def convert(self, num: int) -> str:
-        roman_numbers = [(4, 'IV'), (1, 'I')]
+        roman_numbers = [(5, 'V'), (4, 'IV'), (1, 'I')]
         
         roman_str = ''
 
@@ -58,6 +58,11 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(4)
         self.assertEqual(res, 'IV')
 
+    def test_convertTwo(self):
+        res = self.c.convert(5)
+        self.assertEqual(res, 'V')
+
+
     
 
 if __name__ == "__main__":
-- 
GitLab


From 22e01bdf34d34305bb42d9b4221533f925588861 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:26:46 +0100
Subject: [PATCH 15/33] Test 6/17 erfolgreich

---
 converter.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/converter.py b/converter.py
index d69efb5..f561863 100644
--- a/converter.py
+++ b/converter.py
@@ -26,7 +26,7 @@ class IConverter(ABC):
 
 class Converter(IConverter):
     def convert(self, num: int) -> str:
-        roman_numbers = [(5, 'V'), (4, 'IV'), (1, 'I')]
+        roman_numbers = [(9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
         
         roman_str = ''
 
@@ -62,6 +62,10 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(5)
         self.assertEqual(res, 'V')
 
+    def test_convertTwo(self):
+        res = self.c.convert(9)
+        self.assertEqual(res, 'IX')
+
 
     
 
-- 
GitLab


From 4ca91d0321d0535262f35215c18251a3122145de Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:28:27 +0100
Subject: [PATCH 16/33] Test 7/17 erfolgreich

---
 converter.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/converter.py b/converter.py
index f561863..88d52c0 100644
--- a/converter.py
+++ b/converter.py
@@ -26,7 +26,7 @@ class IConverter(ABC):
 
 class Converter(IConverter):
     def convert(self, num: int) -> str:
-        roman_numbers = [(9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
+        roman_numbers = [(10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
         
         roman_str = ''
 
@@ -66,6 +66,10 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(9)
         self.assertEqual(res, 'IX')
 
+    def test_convertTwo(self):
+        res = self.c.convert(10)
+        self.assertEqual(res, 'X')
+
 
     
 
-- 
GitLab


From ff2bf006431de36197edf529747e205003dc50cb Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:29:44 +0100
Subject: [PATCH 17/33] Test 8/17 erfolgreich

---
 converter.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/converter.py b/converter.py
index 88d52c0..0d55a79 100644
--- a/converter.py
+++ b/converter.py
@@ -70,6 +70,10 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(10)
         self.assertEqual(res, 'X')
 
+    def test_convertTwo(self):
+        res = self.c.convert(21)
+        self.assertEqual(res, 'XXI')
+
 
     
 
-- 
GitLab


From 3da40b9200e2372c8ec955c3781a52c35aec5faf Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:32:58 +0100
Subject: [PATCH 18/33] Test 9/17 erfolgreich

---
 converter.py | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/converter.py b/converter.py
index 0d55a79..4cf6d9f 100644
--- a/converter.py
+++ b/converter.py
@@ -26,7 +26,7 @@ class IConverter(ABC):
 
 class Converter(IConverter):
     def convert(self, num: int) -> str:
-        roman_numbers = [(10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
+        roman_numbers = [(50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
         
         roman_str = ''
 
@@ -50,30 +50,34 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(2)
         self.assertEqual(res, 'II')
     
-    def test_convertTwo(self):
+    def test_convertThree(self):
         res = self.c.convert(3)
         self.assertEqual(res, 'III')
 
-    def test_convertTwo(self):
+    def test_convertFour(self):
         res = self.c.convert(4)
         self.assertEqual(res, 'IV')
 
-    def test_convertTwo(self):
+    def test_convertFive(self):
         res = self.c.convert(5)
         self.assertEqual(res, 'V')
 
-    def test_convertTwo(self):
+    def test_convertNine(self):
         res = self.c.convert(9)
         self.assertEqual(res, 'IX')
 
-    def test_convertTwo(self):
+    def test_convertTen(self):
         res = self.c.convert(10)
         self.assertEqual(res, 'X')
 
-    def test_convertTwo(self):
+    def test_convertTwentyTwo(self):
         res = self.c.convert(21)
         self.assertEqual(res, 'XXI')
 
+    def test_convertFifty(self):
+        res = self.c.convert(50)
+        self.assertEqual(res, 'L')
+
 
     
 
-- 
GitLab


From f712c36e4fdd9e4ca830207b82b5a740d4ebc552 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:35:01 +0100
Subject: [PATCH 19/33] Test 10/17 erfolgreich

---
 converter.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/converter.py b/converter.py
index 4cf6d9f..ae4bda2 100644
--- a/converter.py
+++ b/converter.py
@@ -26,7 +26,7 @@ class IConverter(ABC):
 
 class Converter(IConverter):
     def convert(self, num: int) -> str:
-        roman_numbers = [(50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
+        roman_numbers = [(100, 'C'), (50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
         
         roman_str = ''
 
@@ -78,6 +78,10 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(50)
         self.assertEqual(res, 'L')
 
+    def test_convertHundred(self):
+        res = self.c.convert(100)
+        self.assertEqual(res, 'C')
+
 
     
 
-- 
GitLab


From 4fc54249e09a1eccdc01f0dcec1140a43fe1fb0b Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:36:21 +0100
Subject: [PATCH 20/33] Test 11/17 erfolgreich

---
 converter.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/converter.py b/converter.py
index ae4bda2..28c8973 100644
--- a/converter.py
+++ b/converter.py
@@ -26,7 +26,7 @@ class IConverter(ABC):
 
 class Converter(IConverter):
     def convert(self, num: int) -> str:
-        roman_numbers = [(100, 'C'), (50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
+        roman_numbers = [(500, 'D'), (100, 'C'), (50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
         
         roman_str = ''
 
@@ -82,6 +82,10 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(100)
         self.assertEqual(res, 'C')
 
+    def test_convertFiveHundred(self):
+        res = self.c.convert(500)
+        self.assertEqual(res, 'D')
+
 
     
 
-- 
GitLab


From 824ec177c82805e9904892fefb5fe6559ce11983 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:38:09 +0100
Subject: [PATCH 21/33] Test 12/17 erfolgreich

---
 converter.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/converter.py b/converter.py
index 28c8973..d3eac5a 100644
--- a/converter.py
+++ b/converter.py
@@ -26,7 +26,7 @@ class IConverter(ABC):
 
 class Converter(IConverter):
     def convert(self, num: int) -> str:
-        roman_numbers = [(500, 'D'), (100, 'C'), (50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
+        roman_numbers = [(1000, 'M'), (500, 'D'), (100, 'C'), (50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
         
         roman_str = ''
 
@@ -86,6 +86,10 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(500)
         self.assertEqual(res, 'D')
 
+    def test_convertThousand(self):
+        res = self.c.convert(1000)
+        self.assertEqual(res, 'M')
+
 
     
 
-- 
GitLab


From eedae99fd30e6442b4c92ccccafdb675d4e49d15 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:39:22 +0100
Subject: [PATCH 22/33] Test 13/17 erfolgreich

---
 converter.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/converter.py b/converter.py
index d3eac5a..0c6ef09 100644
--- a/converter.py
+++ b/converter.py
@@ -89,6 +89,10 @@ class TestConverter(unittest.TestCase):
     def test_convertThousand(self):
         res = self.c.convert(1000)
         self.assertEqual(res, 'M')
+    
+    def test_convertFourDigit(self):
+        res = self.c.convert(1111)
+        self.assertEqual(res, 'MCXI')
 
 
     
-- 
GitLab


From 24a8bbcedf40bd5f3c5ec9570f5d967ca14b9726 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:43:50 +0100
Subject: [PATCH 23/33] Test 14/17 erfolgreich

---
 converter.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/converter.py b/converter.py
index 0c6ef09..50e6a1b 100644
--- a/converter.py
+++ b/converter.py
@@ -26,7 +26,7 @@ class IConverter(ABC):
 
 class Converter(IConverter):
     def convert(self, num: int) -> str:
-        roman_numbers = [(1000, 'M'), (500, 'D'), (100, 'C'), (50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
+        roman_numbers = [(1000, 'M'), (500, 'D'), (100, 'C'), (90, 'XC'), (50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
         
         roman_str = ''
 
@@ -94,6 +94,10 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(1111)
         self.assertEqual(res, 'MCXI')
 
+    def test_convertNintyNine(self):
+        res = self.c.convert(99)
+        self.assertEqual(res, 'XCIX')
+
 
     
 
-- 
GitLab


From 6c1ba0952a58fcee273769d4badcc308439e4c04 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:47:25 +0100
Subject: [PATCH 24/33] Test 15/17 erfolgreich

---
 converter.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/converter.py b/converter.py
index 50e6a1b..daaf56d 100644
--- a/converter.py
+++ b/converter.py
@@ -30,6 +30,9 @@ class Converter(IConverter):
         
         roman_str = ''
 
+        if num == 0:
+            return "Es gibt keine römische Null"
+
         for value, numeral in roman_numbers:
 
             while num >= value:
@@ -98,6 +101,10 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(99)
         self.assertEqual(res, 'XCIX')
 
+    def test_convertZero(self):
+        res = self.c.convert(0)
+        self.assertEqual(res, 'Es gibt keine römische Null')
+
 
     
 
-- 
GitLab


From 536efe7aee4ef814927635a6055473cf4fe0b1d2 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 14:53:44 +0100
Subject: [PATCH 25/33] Test 16/17 erfolgreich

---
 converter.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/converter.py b/converter.py
index daaf56d..d705b46 100644
--- a/converter.py
+++ b/converter.py
@@ -105,6 +105,10 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(0)
         self.assertEqual(res, 'Es gibt keine römische Null')
 
+    def test_convertFourty(self):
+        res = self.c.convert(40)
+        self.assertEqual(res, 'XL')
+
 
     
 
-- 
GitLab


From 6e52d64d238818fbc610a51a411e6cc505c3fda0 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 15:29:35 +0100
Subject: [PATCH 26/33] Test 17/17 erfolgreich -- Testliste jedoch nochmals
 angepasst (3 neue Testcases)

---
 converter.py | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git a/converter.py b/converter.py
index d705b46..6d6f0fb 100644
--- a/converter.py
+++ b/converter.py
@@ -14,7 +14,9 @@
 # Bei Eingabe der Zahl 99 soll "XCIX" ausgegeben werden
 # Bei Eingabe der Zahl 0 soll "Es gibt keine römische Null" ausgegeben werden
 # Bei Eingabe der Zahl 40 soll "XL" ausgegeben werden
-# Bei Eingabe des Strings 'IV' soll 4 ausgegenen werden
+# Bei Eingabe eines Strings soll "Bitte ganze Zahlen eingeben" ausgegeben werden -> geändert aufgrund der Aufgabenstellung
+# Bei Eingabe von Float-Werten (z.B. 4,3) soll "Bitte ganze Zahlen eingeben" ausgegeben werden.
+# Bei Eingabe von negativen Werten (z.B. -5) soll "Es sind nur positive Zahlen zum konvertieren erlaubt" ausgegeben werden
 
 import unittest
 from abc import ABC, abstractmethod
@@ -30,16 +32,25 @@ class Converter(IConverter):
         
         roman_str = ''
 
+        '''Wenn eine 0 eingegeben wird muss eine Exception folgen'''
         if num == 0:
             return "Es gibt keine römische Null"
+        
+
+        if isinstance(num, int):
+            if num < 0:
+                return "Es sind nur positive Zahlen zum konvertieren erlaubt"
+            
+            for value, numeral in roman_numbers:
 
-        for value, numeral in roman_numbers:
+                while num >= value:
+                    roman_str += numeral
+                    num -= value
 
-            while num >= value:
-                roman_str += numeral
-                num -= value
+            return roman_str
+        else: 
+            return "Bitte ganze Zahlen eingeben"
 
-        return roman_str
 
 class TestConverter(unittest.TestCase):
     def setUp(self):
@@ -109,8 +120,9 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(40)
         self.assertEqual(res, 'XL')
 
-
-    
+    def test_convertString(self):
+        res = self.c.convert('HUIHIN')
+        self.assertEqual(res, "Bitte ganze Zahlen eingeben")
 
 if __name__ == "__main__":
     unittest.main()
-- 
GitLab


From 4bee07da4dadaad95e609c6706498de7399fecd4 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 15:30:10 +0100
Subject: [PATCH 27/33] Test 18/19 erfolgreich

---
 converter.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/converter.py b/converter.py
index 6d6f0fb..69c9029 100644
--- a/converter.py
+++ b/converter.py
@@ -124,5 +124,9 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert('HUIHIN')
         self.assertEqual(res, "Bitte ganze Zahlen eingeben")
 
+    def test_convertFloat(self):
+        res = self.c.convert(4.3)
+        self.assertEqual(res, "Bitte ganze Zahlen eingeben")
+
 if __name__ == "__main__":
     unittest.main()
-- 
GitLab


From d44983aa62af6b01e8c5b4e17e36203a41a09910 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 15:32:45 +0100
Subject: [PATCH 28/33] Test 19/19 erfolgreich

---
 converter.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/converter.py b/converter.py
index 69c9029..7e833af 100644
--- a/converter.py
+++ b/converter.py
@@ -128,5 +128,9 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(4.3)
         self.assertEqual(res, "Bitte ganze Zahlen eingeben")
 
+    def test_convertNegative(self):
+        res = self.c.convert(-4)
+        self.assertEqual(res, "Es sind nur positive Zahlen zum konvertieren erlaubt")
+
 if __name__ == "__main__":
     unittest.main()
-- 
GitLab


From 2156ede0e8d0ca24ad004daa63f429b645ec3fce Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 15:38:30 +0100
Subject: [PATCH 29/33] =?UTF-8?q?Test=2020/22=20erfolgreich=20(Es=20wurden?=
 =?UTF-8?q?=20erneut=203=20neue=20Testcases=20hinzugef=C3=BCgt)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 converter.py | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/converter.py b/converter.py
index 7e833af..b844efb 100644
--- a/converter.py
+++ b/converter.py
@@ -17,6 +17,9 @@
 # Bei Eingabe eines Strings soll "Bitte ganze Zahlen eingeben" ausgegeben werden -> geändert aufgrund der Aufgabenstellung
 # Bei Eingabe von Float-Werten (z.B. 4,3) soll "Bitte ganze Zahlen eingeben" ausgegeben werden.
 # Bei Eingabe von negativen Werten (z.B. -5) soll "Es sind nur positive Zahlen zum konvertieren erlaubt" ausgegeben werden
+# Bei Eingabe der Zahl 2025 soll "MMXXV" ausgegeben werden
+# Bei Eingabe von Zeichen wie ! soll "Bitte ganze Zahlen eingeben" ausgegeben werden
+# Bei Eingabe mehrerer Zahlen wie 4, 3 soll IV, III augegeben werden
 
 import unittest
 from abc import ABC, abstractmethod
@@ -132,5 +135,11 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(-4)
         self.assertEqual(res, "Es sind nur positive Zahlen zum konvertieren erlaubt")
 
+    def test_convertYear(self):
+        res = self.c.convert(2025)
+        self.assertEqual(res, "MMXXV")
+
+
+
 if __name__ == "__main__":
     unittest.main()
-- 
GitLab


From 209c3432d582bd8cf610124cb7a62a2908361784 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 15:40:11 +0100
Subject: [PATCH 30/33] Test 21/22 erfolgreich

---
 converter.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/converter.py b/converter.py
index b844efb..0387c45 100644
--- a/converter.py
+++ b/converter.py
@@ -139,6 +139,10 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(2025)
         self.assertEqual(res, "MMXXV")
 
+    def test_convertSign(self):
+        res = self.c.convert('!')
+        self.assertEqual(res, "Bitte ganze Zahlen eingeben")
+
 
 
 if __name__ == "__main__":
-- 
GitLab


From c671356c4a862294dea20a84549609461d742246 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 15:54:15 +0100
Subject: [PATCH 31/33] Test 22/22 erfolgreich

---
 converter.py | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/converter.py b/converter.py
index 0387c45..69588fe 100644
--- a/converter.py
+++ b/converter.py
@@ -19,7 +19,7 @@
 # Bei Eingabe von negativen Werten (z.B. -5) soll "Es sind nur positive Zahlen zum konvertieren erlaubt" ausgegeben werden
 # Bei Eingabe der Zahl 2025 soll "MMXXV" ausgegeben werden
 # Bei Eingabe von Zeichen wie ! soll "Bitte ganze Zahlen eingeben" ausgegeben werden
-# Bei Eingabe mehrerer Zahlen wie 4, 3 soll IV, III augegeben werden
+# Bei Eingabe mehrerer Zahlen wie 4, 3 soll "Bitte nur eine ganze Zahl eingeben" augegeben werden
 
 import unittest
 from abc import ABC, abstractmethod
@@ -31,6 +31,11 @@ class IConverter(ABC):
 
 class Converter(IConverter):
     def convert(self, num: int) -> str:
+
+        '''Sicherstellen, dass nur eine ganze Zahl eingegeben wurde.'''
+        if isinstance(num, str) and len(num.split(',')) > 1: 
+            return 'Bitte nur eine ganze Zahl eingeben'
+        
         roman_numbers = [(1000, 'M'), (500, 'D'), (100, 'C'), (90, 'XC'), (50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
         
         roman_str = ''
@@ -40,7 +45,10 @@ class Converter(IConverter):
             return "Es gibt keine römische Null"
         
 
+        '''Sicherstellen, dass keine Zeichen oder Strings eingegeben werden'''
         if isinstance(num, int):
+
+            '''Sicherstellen, dass keine negativen Zahlen eingegeben werden'''
             if num < 0:
                 return "Es sind nur positive Zahlen zum konvertieren erlaubt"
             
@@ -143,6 +151,9 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert('!')
         self.assertEqual(res, "Bitte ganze Zahlen eingeben")
 
+    def test_convertMultipleNum(self):
+        res = self.c.convert('4, 3')
+        self.assertEqual(res, "Bitte nur eine ganze Zahl eingeben")
 
 
 if __name__ == "__main__":
-- 
GitLab


From 3c95653044daa6b0fc56e5b951c85de95b194adf Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 16:06:30 +0100
Subject: [PATCH 32/33] New Tests in order to check if everything works out
 (Test 23/26 successful)

---
 converter.py | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/converter.py b/converter.py
index 69588fe..5e9f163 100644
--- a/converter.py
+++ b/converter.py
@@ -20,6 +20,10 @@
 # Bei Eingabe der Zahl 2025 soll "MMXXV" ausgegeben werden
 # Bei Eingabe von Zeichen wie ! soll "Bitte ganze Zahlen eingeben" ausgegeben werden
 # Bei Eingabe mehrerer Zahlen wie 4, 3 soll "Bitte nur eine ganze Zahl eingeben" augegeben werden
+# Bei Eingabe größerer Zahlen wie z.B. 4000 soll "MMMM" ausgegeben werden
+# Bei Eingabe der Zahl 30 soll "XXX" ausgegeben werden
+# Bei Eingabe der Zahl 90 soll "90" ausgegeben werden
+# Bei Eingabe eines leeren Strings soll "Bitte ganze Zahlen eingeben" ausgegeben werden
 
 import unittest
 from abc import ABC, abstractmethod
@@ -155,6 +159,12 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert('4, 3')
         self.assertEqual(res, "Bitte nur eine ganze Zahl eingeben")
 
+    def test_convertHighNum(self):
+        res = self.c.convert(4000)
+        self.assertEqual(res, "MMMM")
+
+    
+
 
 if __name__ == "__main__":
     unittest.main()
-- 
GitLab


From 64c5b16a9572b0d924219c4ed13f306502149cf4 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Thu, 20 Mar 2025 16:09:20 +0100
Subject: [PATCH 33/33] Test 26/26 successful

---
 converter.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/converter.py b/converter.py
index 5e9f163..1d5eff4 100644
--- a/converter.py
+++ b/converter.py
@@ -163,6 +163,18 @@ class TestConverter(unittest.TestCase):
         res = self.c.convert(4000)
         self.assertEqual(res, "MMMM")
 
+    def test_convertThirty(self):
+        res = self.c.convert(30)
+        self.assertEqual(res, "XXX")
+
+    def test_convertNinety(self):
+        res = self.c.convert(90)
+        self.assertEqual(res, "XC")
+
+    def test_convertEmpty(self):
+        res = self.c.convert('')
+        self.assertEqual(res, "Bitte ganze Zahlen eingeben")
+
     
 
 
-- 
GitLab