From 72d0864b8d9b12306c03a8e4c0485c700c7c0f8a Mon Sep 17 00:00:00 2001
From: linopino <lasse.pikkemaat@web.de>
Date: Wed, 19 Mar 2025 13:01:47 +0100
Subject: [PATCH] Create Counter.py

---
 Counter.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 Counter.py

diff --git a/Counter.py b/Counter.py
new file mode 100644
index 0000000..00cf9c0
--- /dev/null
+++ b/Counter.py
@@ -0,0 +1,48 @@
+#Bei Eingabe des Strings "Decker" liefert die Funktion 3
+#Bei Eingabe eines leeren Stings soll 0 augegeben werden
+#Bei Eingabe des Strings "Hallo" ohne E und D soll 0 ausgegeben werden
+#Bei Eingabe von dem String "Der Esel" soll Groß-Kleinschreibung (Caseinsensitive) gezählt werden. das Ergebnis ist 4
+#Bei Eingabe des Buchstaben D oder E soll 1 ausgegeben werden
+
+from abc import ABC,abstractmethod
+import unittest
+
+class ICounter (ABC):
+    @abstractmethod
+    def count_ED(self,s):
+        pass
+
+class Counter (ICounter):
+    def count_ED(self, s):
+        s=s.upper()
+        return s.count("D")+s.count("E")
+        
+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):
+        '''Testet einen String ohne E und D'''
+        res=self.c.count_ED ("Hallo")
+        self.assertEqual(res,0)
+    def test_count_ED_case_insensitive (self):
+        '''Testet verschiedene Groß- und Kleinschreibungen'''
+        res=self.c.count_ED ("Der Esel")
+        self.assertEqual(res,4) 
+    def test_count_ED_single_letetr (self):
+        '''Testet Eingaben mit nur einem Buchstaben'''
+        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) 
+        res=self.c.count_ED ('e')
+        self.assertEqual (res,1)
+if __name__=="__main__":
+    unittest.main()
\ No newline at end of file
-- 
GitLab