# Bei der Eingabe von Zahlen mit einem benutzerdefinierten Trennzeichen soll die Summe der Zahlen berechnet werden (z.B. //;\n1;2 = 3)
# 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 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 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
importunittest
importunittest
fromabcimportABC,abstractmethod
fromabcimportABC,abstractmethod
...
@@ -53,7 +52,8 @@ class StringCalculator(IStringCalculator):
...
@@ -53,7 +52,8 @@ class StringCalculator(IStringCalculator):
list=numbers.split(",")
list=numbers.split(",")
result=0
result=0
result=0
negative_numbers=[]
fornuminlist:
fornuminlist:
num=num.strip()
num=num.strip()
ifnum=="":
ifnum=="":
...
@@ -71,12 +71,17 @@ class StringCalculator(IStringCalculator):
...
@@ -71,12 +71,17 @@ class StringCalculator(IStringCalculator):
'''Konvertirung von Strings zu Integer'''
'''Konvertirung von Strings zu Integer'''
ifnumber<0:
ifnumber<0:
return"negatives not allowed"
negative_numbers.append(number)
ifnumber>1000:
ifnumber>1000:
continue
continue
result+=number
result+=number
iflen(negative_numbers)>1:
return"negatives not allowed "+str(negative_numbers)
elifnegative_numbers:
return"negatives not allowed"
returnresult
returnresult
...
@@ -129,5 +134,9 @@ class TestStringCalculator(unittest.TestCase):
...
@@ -129,5 +134,9 @@ class TestStringCalculator(unittest.TestCase):
res=self.c.add("//[***]\n1***2***3")
res=self.c.add("//[***]\n1***2***3")
self.assertEqual(res,6)
self.assertEqual(res,6)
deftest_multi_negative(self):
res=self.c.add("-3, -4")
self.assertEqual(res,"negatives not allowed "+str([-3,-4]))