diff --git a/Counter.py b/Counter.py new file mode 100644 index 0000000000000000000000000000000000000000..00cf9c02e9829bf00319ee1547bfdd28a6018193 --- /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