From fcafdbfd82b75dc8112bd9e371add03d2c8b8c85 Mon Sep 17 00:00:00 2001
From: linopino <lasse.pikkemaat@web.de>
Date: Wed, 26 Mar 2025 23:27:02 +0100
Subject: [PATCH] Umsetzung der Testszenarien von Feature2

---
 src/stringcalculator.py        | 8 +++++++-
 tests/test_stringclaculator.py | 4 ++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/stringcalculator.py b/src/stringcalculator.py
index 41f666f..748f0de 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 34863d4..dbafdfe 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()
 
-- 
GitLab