From 2950f5417f78a4f7cc9d742e73fc07c6e4423e74 Mon Sep 17 00:00:00 2001 From: Almmaa <Alma.Berisha@student.reutlingen-university.de> Date: Sun, 6 Apr 2025 01:27:35 +0200 Subject: [PATCH] Entfernt my_string_calculator.py aus dem Repository --- my_string_calculator.py | 88 ----------------------------------------- 1 file changed, 88 deletions(-) delete mode 100644 my_string_calculator.py diff --git a/my_string_calculator.py b/my_string_calculator.py deleted file mode 100644 index b525ef2..0000000 --- a/my_string_calculator.py +++ /dev/null @@ -1,88 +0,0 @@ -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 - - # 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) - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file -- GitLab