From ec78444ea71bb78809fbbd8ccc70dc938cd912e8 Mon Sep 17 00:00:00 2001
From: Marvin Serchimo <marvin.serchimo@student.reutlingen-university.de>
Date: Sun, 6 Apr 2025 20:26:43 +0200
Subject: [PATCH] featureBerishaAlma

---
 feature7                                      |  54 +++++-----
 other/BerishaAlma/Feature6.py                 |  94 ++++++++++++++++++
 .../__pycache__/Feature6.cpython-313.pyc      | Bin 0 -> 7414 bytes
 other/BerishaAlma/stringCalculator.py         |  29 ++++++
 .../TDD_StringCalculator.cpython-313.pyc      | Bin 6387 -> 0 bytes
 report.md                                     |   2 +-
 6 files changed, 151 insertions(+), 28 deletions(-)
 create mode 100644 other/BerishaAlma/Feature6.py
 create mode 100644 other/BerishaAlma/__pycache__/Feature6.cpython-313.pyc
 create mode 100644 other/BerishaAlma/stringCalculator.py
 delete mode 100644 other/GotsisWasilios/__pycache__/TDD_StringCalculator.cpython-313.pyc

diff --git a/feature7 b/feature7
index 8e5342a..7f7c293 100644
--- a/feature7
+++ b/feature7
@@ -1,50 +1,50 @@
 import re 
 import unittest
-from other.GotsisWasilios.TDD_StringCalculator import TestStringCalculator as Wasili
-class StringCalculator:
-    def add(self, numbers: str) -> int:
+from other.BerishaAlma.Feature6 import StringCalculator as Alma
+#class StringCalculator:
+ #   def add(self, numbers: str) -> int:
         # Feature 1: Leerer String ergibt 0
-        if not numbers:
-            return 0
+        #if not numbers:
+         # return 0
         
         
 
         # Vorbereitung für weiter features 
-        delimiters = [",", "\n"]
-        if numbers.startswith("//"):
-            delimiter_end_index = numbers.index("\n")
-            delimiter_section = numbers[2:delimiter_end_index]
-            numbers = numbers[delimiter_end_index + 1:]
+        #delimiters = [",", "\n"]
+        #if numbers.startswith("//"):
+         #   delimiter_end_index = numbers.index("\n")
+          #  delimiter_section = numbers[2:delimiter_end_index]
+           # numbers = numbers[delimiter_end_index + 1:]
 
          # Feature 7: Delimiter beliebiger Länge im Format //[***]
-            if delimiter_section.startswith("[") and delimiter_section.endswith("]"):
-                delimiter = re.escape(delimiter_section[1:-1])
-            else:
-                delimiter = re.escape(delimiter_section)
+            #if delimiter_section.startswith("[") and delimiter_section.endswith("]"):
+             #   delimiter = re.escape(delimiter_section[1:-1])
+            #else:
+             #   delimiter = re.escape(delimiter_section)
 
-            delimiters.append(delimiter)
+            #delimiters.append(delimiter)
 
         # Feature 3: Erlaube Zeilenumbrüche als Trenner
-        split_pattern = "|".join(delimiters)
-        number_list = re.split(split_pattern, numbers)
+        #split_pattern = "|".join(delimiters)
+        #number_list = re.split(split_pattern, numbers)
 
 
         
 
         # Feature 4: Negativzahlen abfangen
-        negatives = []
-        for num in number_list:
-            if num.strip() != "":
-                value = int(num)
-                if value < 0:
-                    negatives.append(value)
+        #negatives = []
+        #for num in number_list:
+         #   if num.strip() != "":
+          #      value = int(num)
+           #     if value < 0:
+            #        negatives.append(value)
 
         # Exception bei negativen Zahlen
-        if negatives:
-            raise ValueError(f"Negative numbers are not allowed: {', '.join(map(str, negatives))}")
+        #if negatives:
+         #   raise ValueError(f"Negative numbers are not allowed: {', '.join(map(str, negatives))}")
 
         # Feature 2: Beliebig viele Zahlen summieren
-        return sum(int(n) for n in number_list if n.strip() != "" and int(n) <= 1000)
+        #return sum(int(n) for n in number_list if n.strip() != "" and int(n) <= 1000)
 
 
 
@@ -53,7 +53,7 @@ class TestStringCalculator(unittest.TestCase):
 
     def setUp(self):
         """neue Instanz des StringCalculators vor jedem Test"""
-        self.calculator = StringCalculator()
+        self.calculator = Alma()
 
     def test_empty_string_returns_zero(self):
         """Feature 1: Leerer String soll 0 ergeben"""
diff --git a/other/BerishaAlma/Feature6.py b/other/BerishaAlma/Feature6.py
new file mode 100644
index 0000000..0f35297
--- /dev/null
+++ b/other/BerishaAlma/Feature6.py
@@ -0,0 +1,94 @@
+from abc import ABC, abstractmethod
+import unittest
+
+class IStringCalculator(ABC):
+    @abstractmethod
+    def add(self, numbers: str) -> int:
+        pass
+
+class StringCalculator(IStringCalculator):
+    def add(self, numbers: str) -> int:
+        if not numbers:
+            return 0
+        
+        # Überprüfe, ob ein benutzerdefiniertes Trennzeichen angegeben ist
+        if numbers.startswith("//"):
+            delimiter_line_end = numbers.find("\n")
+            delimiter = numbers[2:delimiter_line_end]  # Extrahiere das Trennzeichen
+            numbers = numbers[delimiter_line_end + 1:]  # Entferne die erste Zeile mit dem Trennzeichen
+            
+        else:
+            delimiter = ','  # Standard-Trennzeichen ist Komma, wenn keine Zeile mit dem Trennzeichen vorhanden ist
+
+        # Ersetze alle Vorkommen des Trennzeichens und teile die Eingabe
+        numbers = numbers.replace("\n", delimiter)
+        nums = numbers.split(delimiter)
+        
+        # Filtere alle Zahlen, die größer als 1000 sind
+        nums = [int(num) for num in nums if int(num) <= 1000]
+        
+        # Prüfe auf negative Zahlen
+        negatives = [num for num in nums if num < 0]
+        
+        if negatives:
+            # Wenn negative Zahlen vorhanden sind, werfe eine Ausnahme
+            raise ValueError(f"Negatives not allowed: {', '.join(map(str, negatives))}")
+        
+        # Berechne die Summe der Zahlen, die <= 1000 sind
+        return sum(nums)
+
+class TestStringCalculator(unittest.TestCase):
+    def setUp(self):
+        self.calculator = StringCalculator()
+    
+    def test_empty_string(self):
+        self.assertEqual(self.calculator.add(""), 0)
+    
+    def test_single_number(self):
+        self.assertEqual(self.calculator.add("1"), 1)
+    
+    def test_two_numbers(self):
+        self.assertEqual(self.calculator.add("1,2"), 3)
+    
+    def test_multiple_numbers(self):
+        self.assertEqual(self.calculator.add("1,2,3,4,5"), 15)
+    
+    def test_numbers_with_newline(self):
+        self.assertEqual(self.calculator.add("1\n2,3"), 6)
+    
+    def test_numbers_with_multiple_newlines(self):
+        self.assertEqual(self.calculator.add("1\n2\n3\n4\n5"), 15)
+    
+    def test_negative_number(self):
+        with self.assertRaises(ValueError) as context:
+            self.calculator.add("1,-2,3")
+        self.assertEqual(str(context.exception), "Negatives not allowed: -2")
+    
+    def test_multiple_negative_numbers(self):
+        with self.assertRaises(ValueError) as context:
+            self.calculator.add("1,-2,-3,4")
+        self.assertEqual(str(context.exception), "Negatives not allowed: -2, -3")
+    
+    def test_custom_delimiter(self):
+        self.assertEqual(self.calculator.add("//;\n1;2"), 3)
+    
+    def test_custom_delimiter_with_newline(self):
+        self.assertEqual(self.calculator.add("//;\n1;2\n3"), 6)
+    
+    def test_custom_delimiter_with_multiple_numbers(self):
+        self.assertEqual(self.calculator.add("//|\n1|2|3|4"), 10)
+    
+    def test_numbers_greater_than_1000(self):
+        self.assertEqual(self.calculator.add("2,1001"), 2)
+    
+    def test_numbers_greater_than_1000_with_custom_delimiter(self):
+        self.assertEqual(self.calculator.add("//;\n2;1001"), 2)
+    
+    def test_long_delimiter(self):
+        self.assertEqual(self.calculator.add("//[***]\n1***2***3"), 6)
+    
+    def test_long_delimiter_with_multiple_numbers(self):
+        self.assertEqual(self.calculator.add("//[---]\n1---2---3---4"), 10)
+
+if __name__ == "__main__":
+    unittest.main()
\ No newline at end of file
diff --git a/other/BerishaAlma/__pycache__/Feature6.cpython-313.pyc b/other/BerishaAlma/__pycache__/Feature6.cpython-313.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..f613aa2d3f78912e40e4833d451aa26267ef02f2
GIT binary patch
literal 7414
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
AsQ>@~

literal 0
HcmV?d00001

diff --git a/other/BerishaAlma/stringCalculator.py b/other/BerishaAlma/stringCalculator.py
new file mode 100644
index 0000000..f9a7682
--- /dev/null
+++ b/other/BerishaAlma/stringCalculator.py
@@ -0,0 +1,29 @@
+from abc import ABC, abstractmethod
+import unittest
+
+class IStringCalculator(ABC):
+    @abstractmethod
+    def add(self, numbers: str) -> int:
+        pass
+
+class StringCalculator(IStringCalculator):
+    def add(self, numbers: str) -> int:
+        if not numbers:
+            return 0
+        return sum(map(int, numbers.split(',')))
+
+class TestStringCalculator(unittest.TestCase):
+    def setUp(self):
+        self.calculator = StringCalculator()
+    
+    def test_empty_string(self):
+        self.assertEqual(self.calculator.add(""), 0)
+    
+    def test_single_number(self):
+        self.assertEqual(self.calculator.add("1"), 1)
+    
+    def test_two_numbers(self):
+        self.assertEqual(self.calculator.add("1,2"), 3)
+
+if __name__ == "__main__":
+    unittest.main()
\ No newline at end of file
diff --git a/other/GotsisWasilios/__pycache__/TDD_StringCalculator.cpython-313.pyc b/other/GotsisWasilios/__pycache__/TDD_StringCalculator.cpython-313.pyc
deleted file mode 100644
index 0560b12c2d952c1f11c1e0cbf8071d3f060cdc72..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6387
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
B1Q!4R

diff --git a/report.md b/report.md
index 27cbe3e..58bf717 100644
--- a/report.md
+++ b/report.md
@@ -3,7 +3,7 @@
 | Name              | Interface break | Failed Testcases |
 |-------------------|------------------|-------------------|
 | AliciMuhamed      | –                | –                 |
-| BerishaAlma       | –                | –                 |
+| BerishaAlma       | no               | 4                 |
 | GotsisWasilios    | no               | 0                 |
 | PikkemaatLasse    | –                | –                 |
 | RafehDaniel       | –                | –                 |
-- 
GitLab