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