From bf16e398a6189f19a325e5c95e66d65bcf73f1bd Mon Sep 17 00:00:00 2001
From: linopino <lasse.pikkemaat@web.de>
Date: Wed, 2 Apr 2025 01:32:07 +0200
Subject: [PATCH] =?UTF-8?q?Kommentar=20mit=20=C3=84nderung=20damit=20Tests?=
 =?UTF-8?q?=20mit=20negativen=20Zahlen=20nicht=20failen?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/stringcalculator.py       |  8 +++++++-
 tests/testStringcalculator.py | 20 ++++++++++++++------
 2 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/src/stringcalculator.py b/src/stringcalculator.py
index f48f2e8..6f4baac 100644
--- a/src/stringcalculator.py
+++ b/src/stringcalculator.py
@@ -1,5 +1,4 @@
 from src.interfaces import IStringCalculator
-import re
 
 class StringCalculator(IStringCalculator):
     def add(self, numbers: str) -> int:
@@ -33,3 +32,10 @@ class StringCalculator(IStringCalculator):
         numbers_list = [num for num in numbers_list if num <= 1000]
 
         return sum(numbers_list)
+
+'''
+Änderung damit die Tests mit den negativen Zahlen durchlaufen:
+        negative_numbers = [num for num in numbers_list if num < 0]
+        if negative_numbers:
+            raise ValueError(f"negatives not allowed: {','.join(map(str, negative_numbers))}")
+'''
\ No newline at end of file
diff --git a/tests/testStringcalculator.py b/tests/testStringcalculator.py
index 7c74a51..41e5f93 100644
--- a/tests/testStringcalculator.py
+++ b/tests/testStringcalculator.py
@@ -23,13 +23,12 @@
 # Bei Eingabe von //[**]\n1**2**3 soll 6 ausgegeben werden
 # Bei Eingabe von //[###]\n10###20###30 soll 60 ausgegeben werden
 
-'''
-Eigener Code:
+
 import unittest
 from src.interfaces import IStringCalculator
 from src.stringcalculator import StringCalculator
 
-Orlandos Code:
+'''
 import unittest
 from others.Orlando.OrlandoInterfaces import IStringCalculator
 from others.Orlando.OrlandoStringCalculator import StringCalculator
@@ -48,10 +47,10 @@ from others.Alma.AlmaStringCalculator import IStringCalculator, StringCalculator
 
 import unittest
 from others.Marvin.MarvinStringCalculator import StringCalculator
-'''
+
 import unittest
 from others.Hatice.HaticeStringCalculator import IStringCalculator, StringCalculator
-
+'''
 class TestStringCalculator(unittest.TestCase):
     def setUp(self):
         self.calculator: IStringCalculator = StringCalculator()  # Zugriff über das Interface
@@ -106,4 +105,13 @@ if __name__ == "__main__":
     unittest.main()
 
 # python -m unittest tests.testStringcalculator -v
-# python -m unittest discover -s tests -v
\ No newline at end of file
+# python -m unittest discover -s tests -v
+'''
+Keine strikte Typprüfung zur Laufzeit
+
+In der Methode setUp() hast du die Zuweisung:
+self.calculator: IStringCalculator = StringCalculator()
+
+-Das : IStringCalculator ist nur ein Typ-Hinweis (Type Hint), aber Python überprüft das nicht zur Laufzeit.
+-Python ignoriert den Typ-Hinweis und weist self.calculator einfach die Instanz von StringCalculator zu.
+'''
\ No newline at end of file
-- 
GitLab