From 35a22558c1b7b6371910f9b85da7def5b823967f Mon Sep 17 00:00:00 2001
From: Marvin Serchimo <marvin.serchimo@student.reutlingen-university.de>
Date: Fri, 28 Mar 2025 15:02:19 +0100
Subject: [PATCH] feature3

---
 feature3 | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 feature3

diff --git a/feature3 b/feature3
new file mode 100644
index 0000000..b8c6ee0
--- /dev/null
+++ b/feature3
@@ -0,0 +1,45 @@
+import re 
+import unittest
+
+class StringCalculator:
+    def add(self, numbers: str) -> int:
+        if not numbers:
+            return 0
+        split_numbers = re.split(r",|\n", numbers)
+        number_list = [int(n) for n in split_numbers if n.strip() != ""]
+        return sum(number_list)
+
+class TestStringCalculator(unittest.TestCase):
+    """Test suite for the StringCalculator class."""
+
+    def setUp(self):
+        """neue Instanz des StringCalculators vor jedem Test """
+        self.calculator = StringCalculator()
+    def test_empty_string_returns_zero(self):
+        
+        """Test: Leerer String soll 0 ergeben"""
+        self.assertEqual(self.calculator.add(""), 0)
+
+    def test_single_number_returns_value(self):
+        
+        """Test: Ein einzelner Wert soll zurückgegeben werden"""
+        self.assertEqual(self.calculator.add("1"), 1)
+
+    def test_two_numbers_return_sum(self):
+       
+        """Test: Zwei Zahlen sollen summiert werden"""
+        self.assertEqual(self.calculator.add("1,2"), 3)
+
+      #feature 2 test 
+    def test_add_multiple_numbers(self):
+    
+        self.assertEqual(self.calculator.add("1,2,3,4,5"), 15) 
+
+      #feature 3 test
+    def test_add_numbers_with_newlines(self):
+    
+       self.assertEqual(self.calculator.add("1\n2\n3"), 6)    
+    
+    
+if __name__=='__main__':
+    unittest.main()
\ No newline at end of file
-- 
GitLab