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] =?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