From 68626b73642111a14b9556b2263dae81fa9792a4 Mon Sep 17 00:00:00 2001 From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de> Date: Tue, 25 Mar 2025 17:39:20 +0100 Subject: [PATCH] test successful --- stringCalculator.py | 89 --------------------------------------------- 1 file changed, 89 deletions(-) delete mode 100644 stringCalculator.py diff --git a/stringCalculator.py b/stringCalculator.py deleted file mode 100644 index 3c58954..0000000 --- a/stringCalculator.py +++ /dev/null @@ -1,89 +0,0 @@ -# Bei einer leeren Eingabe "" soll die Zahl 0 ausgegeben werden. -# Bei der Eingabe "1" soll die 1 ausgegeben werden. -# Bei der Eingabe von 2 Zahlen als Strings separiert durch "," (z.B. "1, 2") soll die Zahl 3 ausgegeben werden -# Bei der Eingabe "0, 5" soll die Zahl 5 ausgegeben werden. -# Bei der Eingabe von 3 Zahlen (z.B. 1,2,3) soll "only two numbers allowed" ausgegeben werden. --rausgenommen weil kein Gebrauch! -# Bei der Eingabe von Float-Werten z.B. 3.5 soll "only integers allowed" ausgegeben werden. -# Bei der Eingabe von Buchstaben z.B. 1, z soll "only integers allowed" ausgegeben werden. -# Bei der Eingabe von 2 Zahlen als Strings separiert durch "\n" (z.B. "1\n2,3") soll 6 ausgegeben werden -# Bei der Eingabe von negativen Zahlen (z.B. -3) soll "negatives not allowed" ausgegeben werden -# Bei der Eingabe von Zahlen mit einem benutzerdefinierten Trennzeichen soll die Summe der Zahlen berechnet werden (z.B. //;\n1;2 = 3) -# Bei Eingabe von Zahlen >1000 sollen diese ignoriert werden (z.B. 2 + 1001 = 2) -# Bei der Eingabe von Zahlen mit einem benutzerdefinierten Trennzeichen soll die Summe der Zahlen berechnet werden. Trennzeichen können unbegrenzt lang sein (z.B. “//[***]\n1***2***3†= 6). -import unittest -from abc import ABC, abstractmethod - -class IStringCalculator(ABC): - @abstractmethod - def add(self, numbers: str) -> int: - pass - -class StringCalculator(IStringCalculator): - def add(self, numbers: str) -> int: - - '''Leere Eingabe soll 0 ausgeben''' - if numbers == "": - return 0 - - '''Zahlen mit Kommas werden aufgeteilt''' - list = numbers.replace("\n", ",").split(",") - - for num in list: - if "." in num: - return "only integers allowed" - - try: - int(num.strip()) - except ValueError: - return "only integers allowed" - - '''Konvertirung von Strings zu Integer''' - result = 0 - for num in list: - result += int(num.strip()) - '''Negative Ergebnisse nicht gestatten''' - if result < 0: - return "negatives not allowed" - - return result - - -class TestStringCalculator(unittest.TestCase): - def setUp(self): - self.c = StringCalculator() - - def test_empty(self): - res = self.c.add("") - self.assertEqual(res, 0) - - def test_oneNumber(self): - res = self.c.add("1") - self.assertEqual(res, 1) - - def test_addingTwoNumbers(self): - res = self.c.add("1,2") - self.assertEqual(res, 3) - - def test_addingTwoNumbersWithZero(self): - res = self.c.add("0,5") - self.assertEqual(res, 5) - - def test_handleFloat(self): - res = self.c.add("3.5") - self.assertEqual(res, "only integers allowed") - - def test_handleLetter(self): - res = self.c.add("1, z") - self.assertEqual(res, "only integers allowed") - - def test_addWithBackslashN(self): - res = self.c.add("1\n2,3") - self.assertEqual(res, 6) - - def test_negativeValues(self): - res = self.c.add("-3") - self.assertEqual(res, "negatives not allowed") - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file -- GitLab