diff --git a/stringCalculator.py b/stringCalculator.py index 078714f6455c6c4bfa7ad8fd17dc3794d809f942..88c3b4e6d81ff7e171540cadbad1a5b8a9d7ae4e 100644 --- a/stringCalculator.py +++ b/stringCalculator.py @@ -10,8 +10,7 @@ # 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). -# Bei der eingabe verschiedener Trennzeichen sollen trotzdem die Zahlen erkannt und zusammen addiert werden (--;\n1;2 = 3) - +# Bei der Eingabe mehrerer negativen Zahlen (z.B. -3, -4) sollen die Zahlen in der exception ausgegeben werden import unittest from abc import ABC, abstractmethod @@ -53,7 +52,8 @@ class StringCalculator(IStringCalculator): list = numbers.split(",") result = 0 - result = 0 + negative_numbers = [] + for num in list: num = num.strip() if num == "": @@ -71,12 +71,17 @@ class StringCalculator(IStringCalculator): '''Konvertirung von Strings zu Integer''' if number < 0: - return "negatives not allowed" + negative_numbers.append(number) if number > 1000: continue result += number + + if len(negative_numbers) > 1: + return "negatives not allowed " + str(negative_numbers) + elif negative_numbers: + return "negatives not allowed" return result @@ -129,5 +134,9 @@ class TestStringCalculator(unittest.TestCase): res = self.c.add("//[***]\n1***2***3") self.assertEqual(res, 6) + def test_multi_negative(self): + res = self.c.add("-3, -4") + self.assertEqual(res, "negatives not allowed " + str([-3, -4])) + if __name__ == "__main__": unittest.main() \ No newline at end of file