diff --git a/src/stringcalculator.py b/src/stringcalculator.py index 41f666fdc4d0e39d619a00d678088cdbfca15376..748f0de39cb0a6aac6adc4e8c031b3e97e9414b0 100644 --- a/src/stringcalculator.py +++ b/src/stringcalculator.py @@ -1,7 +1,13 @@ from src.interfaces import IStringCalculator +import re + class StringCalculator(IStringCalculator): def add(self, numbers: str) -> int: if not numbers: return 0 - return sum(map(int, numbers.split(','))) \ No newline at end of file + + # Erlaubt Kommas und Zeilenumbrüche als Trennzeichen + tokens = re.split(r"[,\n]", numbers) + + return sum(map(int, tokens)) \ No newline at end of file diff --git a/tests/test_stringclaculator.py b/tests/test_stringclaculator.py index 34863d46d9f857885949330fac161b4bfd130c95..dbafdfe3d26e924951e6fe08295623fcb7a68e8c 100644 --- a/tests/test_stringclaculator.py +++ b/tests/test_stringclaculator.py @@ -31,6 +31,10 @@ class TestStringCalculator(unittest.TestCase): self.assertEqual(self.calculator.add("1,2,3"), 6) self.assertEqual(self.calculator.add("10,20,30,40"), 100) + def test_add_with_newline_separator(self): + self.assertEqual(self.calculator.add("1\n2,3"), 6) + self.assertEqual(self.calculator.add("10\n20\n30"), 60) + if __name__ == "__main__": unittest.main()