From f03dea4246d64ae55fbfc8e2aa6d7c19fc428435 Mon Sep 17 00:00:00 2001
From: Muhamed <Muhamedalici@hotmail.de>
Date: Fri, 4 Apr 2025 14:15:45 +0200
Subject: [PATCH] ich vs marvin

---
 muhamed_directory/String calculator           |  81 +++++++++++++++++-
 .../__pycache__/feature7.cpython-311.pyc      | Bin 9697 -> 9697 bytes
 muhamed_directory/other/report.md             |  35 +++++++-
 3 files changed, 110 insertions(+), 6 deletions(-)

diff --git a/muhamed_directory/String calculator b/muhamed_directory/String calculator
index afdb3b0..5fd40e3 100644
--- a/muhamed_directory/String calculator	
+++ b/muhamed_directory/String calculator	
@@ -9,7 +9,7 @@
 import unittest
 import re
 from abc import ABC, abstractmethod
-from other.Marvin.feature7 import StringCalculator as Marvin
+#from other.Marvin.feature7 import StringCalculator as Marvin
 
 class CalculatorInterface(ABC):
     @abstractmethod
@@ -60,9 +60,84 @@ class StringCalculator(CalculatorInterface):
         return sum(numbers_to_add)
     def get_called_count(self):
         return self.called_count
+    
+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):
+        """Feature 1: Leerer String soll 0 ergeben"""
+        self.assertEqual(self.calculator.add(""), 0)
+
+    def test_single_number_returns_value(self):
+        """Ein einzelner Wert soll zurückgegeben werden"""
+        self.assertEqual(self.calculator.add("1"), 1)
+
+    def test_two_numbers_return_sum(self):
+        """Zwei Zahlen sollen summiert werden"""
+        self.assertEqual(self.calculator.add("1,2"), 3)
+
+    def test_add_multiple_numbers(self):
+        """Feature 2: Mehrere Zahlen summieren"""
+        self.assertEqual(self.calculator.add("1,2,3,4,5"), 15)
+
+    def test_add_numbers_with_newlines(self):
+        """Feature 3: Zeilenumbrüche als Trennzeichen"""
+        self.assertEqual(self.calculator.add("1\n2\n3"), 6)
+
+    def test_add_negative_numbers(self):
+        """Feature 4: Negative Zahlen sollen Fehler werfen"""
+        with self.assertRaises(ValueError) as e:
+            self.calculator.add("-1,2,-3")
+        self.assertEqual(str(e.exception), "Negative numbers are not allowed: -1, -3")
+
+    def test_add_numbers_with_custom_delimiter(self):
+        """Feature 5: Benutzerdefiniertes Trennzeichen"""
+        self.assertEqual(self.calculator.add("//;\n1;2;3"), 6)    
+
+    def test_add_numbers_with_custom_delimiter_different_symbol(self):
+        """Feature 5: Benutzerdefiniertes Trennzeichen mit anderem Symbol"""
+        self.assertEqual(self.calculator.add("//#\n4#5#6"), 15)
+
+    def test_custom_delimiter_with_multiple_numbers(self):
+        """
+        Kombinierter Test für:
+        feature 5 und feature 2
+        Erwartet wird die korrekte Addition von sechs durch ein benutzerdefiniertes Zeichen getrennten Zahlen.
+        """
+        self.assertEqual(self.calculator.add("//:\n1:2:3:4:5:6"), 21)    
+
+    def test_add_numbers_greater_than_1000(self):
+        """Feature6 test"""
+        self.assertEqual(self.calculator.add("1,1001,2,3"), 6)
+
+    def test_add_numbers_with_newlines_and_ignore_above_1000(self):
+        """Feature 3 und 6 test Zeilenumbruch als trenner, Zahlen>1000 ignorieren"""
+        self.assertEqual(self.calculator.add("1\n2\n1000\n1001"), 1003)
+    
+    def test_add_numbers_with_custom_delimiter_long_length(self):
+        """Benutzerdefinierte Trennzeichen beliebig lang """
+        self.assertEqual(self.calculator.add("//[***]\n1***2***3"), 6)
+
+    def test_custom_long_delimiter_with_large_number_ignored(self):
+        """FEature 6 und 7 test Benutzerdefinierte Delimiter Länge und zahl über 1000 wird ignoriert"""
+        self.assertEqual(self.calculator.add("//[***]\n1***1001***2"), 3) 
+        
+    def test_custom_long_delimiter_with_negative_numbers(self):
+        """Feature 4 und 7: Benutzerdefinierter Delimiter beliebiger Länge + negative Zahlen"""
+        with self.assertRaises(ValueError) as e:
+             self.calculator.add("//[***]\n1***-2***3***-4")
+        self.assertEqual(str(e.exception), "Negative numbers are not allowed: -2, -4")
+    
+    
+
+
         
     
-class TestStingCalculator(unittest.TestCase):
+'''class TestStingCalculator(unittest.TestCase):
     def setUp(self):
         self.calculator = Marvin()     
     def test_empty_string(self):
@@ -116,7 +191,7 @@ class TestStingCalculator(unittest.TestCase):
     def test_custom_del(self):
         self.assertEqual(self.calculator.add("//[+++]\n1+++2+++3"),6)
     def test_custom_del2(self):
-        self.assertEqual(self.calculator.add("//[aa]\n1aa2aa3"),6)
+        self.assertEqual(self.calculator.add("//[aa]\n1aa2aa3"),6)'''
         
         
 
diff --git a/muhamed_directory/other/Marvin/__pycache__/feature7.cpython-311.pyc b/muhamed_directory/other/Marvin/__pycache__/feature7.cpython-311.pyc
index 7b49648e04b3bf85e351f73b995aabded2ca39d2..bc33ebb9c28a04774d541f4e31d4690e748e5f62 100644
GIT binary patch
delta 20
acmaFp{m`3xIWI340}$-n`+g($HB|shR|il4

delta 20
acmaFp{m`3xIWI340}yD)zS+oqO%(t`ZUz?s

diff --git a/muhamed_directory/other/report.md b/muhamed_directory/other/report.md
index 64584cd..498afb7 100644
--- a/muhamed_directory/other/report.md
+++ b/muhamed_directory/other/report.md
@@ -1,6 +1,35 @@
-| Name    | Interface break | Failed Testcases                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
-|---------|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Name    | Interface break | Failed Testcases                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
+|---------|-----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
 | Alma    | 2               | test_add_numbers_greater_than_1000_and_minus (Interface Break: Erwartete Fehlermeldung für negative Zahl in Kombination mit Zahl > 1000 war anders: "invalid literal for int() with base 10: '-3,4'" vs. erwartet 'negatives not allowed: -3'), test_multiple_negative_numbers_exception (Geringfügige Abweichung in der Fehlermeldung: 'Negatives not allowed: -1, -2' vs. erwartet 'negatives not allowed: -1,-2'), test_negative_number_exception (Geringfügige Abweichung in der Fehlermeldung: 'Negatives not allowed: -1' vs. erwartet 'negatives not allowed: -1'), test_add_numbers_with_custom_delimiter (Interface Break: ValueError: invalid literal for int() mit Eingabe '//;\n1,2,3'), test_custom_del (Interface Break: ValueError: invalid literal for int() mit Eingabe '//[+++]\n1+++2+++3'), test_custom_del2 (Interface Break: ValueError: invalid literal for int() mit Eingabe '//[aa]\n1aa2aa3'), test_custom_delimiter (Interface Break: ValueError: invalid literal for int() mit Eingabe '//[***]\n1***2***3') |
 | Daniel  | yes             | test_add_numbers_greater_1000_and_minus (Interface Break: ValueError wurde nicht ausgelöst, obwohl eine negative Zahl vorhanden war), test_add_numbers_with_custom_delimiter (Interface Break: ValueError wurde nicht ausgelöst, obwohl eine negative Zahl im benutzerdefinierten Trennzeichen-Szenario vorhanden war), test_multiple_negative_numbers_exception (Interface Break: ValueError wurde nicht ausgelöst, obwohl mehrere negative Zahlen vorhanden waren), test_negative_number_exception (Interface Break: ValueError wurde nicht ausgelöst, obwohl eine negative Zahl vorhanden war) |
 | Hatice  | 2               | test_add_numbers_greater_than_1000_and_minus (Interface Break: Erwartete Fehlermeldung für negative Zahl in Kombination mit Zahl > 1000 war anders: "invalid literal for int() with base 10: '-3,4'" vs. erwartet 'negatives not allowed: -3'), test_multiple_negative_numbers_exception (Geringfügige Abweichung in der Fehlermeldung: 'Negatives not allowed: -1, -2' vs. erwartet 'negatives not allowed: -1,-2'), test_negative_number_exception (Geringfügige Abweichung in der Fehlermeldung: 'Negatives not allowed: -1' vs. erwartet 'negatives not allowed: -1'), test_add_numbers_with_custom_delimiter (Interface Break: ValueError: invalid literal for int() mit Eingabe '//;\n1,2,3'), test_custom_del (Interface Break: ValueError: invalid literal for int() mit Eingabe '//[+++]\n1+++2+++3'), test_custom_del2 (Interface Break: ValueError: invalid literal for int() mit Eingabe '//[aa]\n1aa2aa3'), test_custom_delimiter (Interface Break: ValueError: invalid literal for int() mit Eingabe '//[***]\n1***2***3') |
-| Marvin  | yes             | test_add_numbers_greater_1000_and_minus (Interface Break: Fehlermeldung für negative Zahl war anders: 'Negative numbers are not allowed: -3' vs. erwartet 'negatives not allowed: -3'), test_add_numbers_with_custom_delimiter (Interface Break: Fehlermeldung für negative Zahl war anders: 'Negative numbers are not allowed: -3' vs. erwartet 'negatives not allowed: -3'), test_multiple_negative_numbers_exception (Interface Break: Fehlermeldung für negative Zahl war anders: 'Negative numbers are not allowed: -1, -2' vs. erwartet 'negatives not allowed: -1,-2'), test_negative_number_exception (Interface Break: Fehlermeldung für negative Zahl war anders: 'Negative numbers are not allowed: -1' vs. erwartet 'negatives not allowed: -1') |
\ No newline at end of file
+| Marvin  | yes             | test_add_numbers_greater_1000_and_minus (Interface Break: Fehlermeldung für negative Zahl war anders: 'Negative numbers are not allowed: -3' vs. erwartet 'negatives not allowed: -3'), test_add_numbers_with_custom_delimiter (Interface Break: Fehlermeldung für negative Zahl war anders: 'Negative numbers are not allowed: -3' vs. erwartet 'negatives not allowed: -3'), test_multiple_negative_numbers_exception (Interface Break: Fehlermeldung für negative Zahl war anders: 'Negative numbers are not allowed: -1, -2' vs. erwartet 'negatives not allowed: -1,-2'), test_negative_number_exception (Interface Break: Fehlermeldung für negative Zahl war anders: 'Negative numbers are not allowed: -1' vs. erwartet 'negatives not allowed: -1') |
+| Wasili  | no              | none                                                                                                                                                                             
+| Lasse   | yes             | test_add_numbers_greater_1000_and_minus (Interface Break: Fehlermeldung für negative Zahl war anders: 'Negative nicht erlaubt: [-3]' vs. erwartet 'negatives not allowed: -3'), test_add_numbers_with_custom_delimiter (Interface Break: Fehlermeldung für negative Zahl war anders: 'Negative nicht erlaubt: [-3]' vs. erwartet 'negatives not allowed: -3'), test_multiple_negative_numbers_exception (Interface Break: Fehlermeldung für negative Zahl war anders: 'Negative nicht erlaubt: [-1, -2]' vs. erwartet 'negatives not allowed: -1,-2'), test_negative_number_exception (Interface Break: Fehlermeldung für negative Zahl war anders: 'Negative nicht erlaubt: [-1]' vs. erwartet 'negatives not allowed: -1') |
+
+### alma tests muhamed calculator
+
+* **Anzahl der ausgeführten Tests:** 15
+* **Fehler (Errors):** 2
+    * **test_long_delimiter:** Dieser Test schlägt fehl, weil deine Implementierung Schwierigkeiten hat, Zahlen zu addieren, die durch ein benutzerdefiniertes Trennzeichen getrennt sind, das länger als ein einzelnes Zeichen ist (z.B. "***"). Es kommt zu einem `ValueError`, da der Teil des Strings, der das Trennzeichen enthält, nicht korrekt in eine Zahl umgewandelt werden kann.
+    * **test_long_delimiter_with_multiple_numbers:** Dieser Test schlägt ebenfalls fehl aus dem gleichen Grund wie oben, nur dass hier mehrere Zahlen durch ein längeres benutzerdefiniertes Trennzeichen (z.B. "---") getrennt sind.
+    
+### lasse tests muhamed calculator
+
+* **Anzahl der ausgeführten Tests:** 11
+* **Fehler (Errors):** 0
+* **Fehlgeschlagene Tests (Failures):** 2
+    * **test_add_multiple_negative_numbers:** Dieser Test ist fehlgeschlagen, weil deine `add`-Methode bei der Eingabe von "-10\n-20,-30" zwar eine `ValueError`-Ausnahme auslöst (was korrekt ist), die erwartete Fehlermeldung lautete jedoch "Negative nicht erlaubt: [-10, -20, -30]", während deine Implementierung die Meldung "negatives not allowed: -10,-20,-30" zurückgegeben hat.
+    * **test_add_single_negative_number:** Dieser Test ist ebenfalls fehlgeschlagen, weil deine `add`-Methode bei der Eingabe von "1,-2,3" zwar eine `ValueError`-Ausnahme auslöst, die erwartete Fehlermeldung lautete jedoch "Negative nicht erlaubt: [-2]", während deine Implementierung die Meldung "negatives not allowed: -2" zurückgegeben hat.
+
+### wasili tests muhamed calculator
+
+* **Ergebnis:** OK (Alle 11 Tests bestanden)
+
+### marvin tests muhamed calculator
+
+* **Anzahl der ausgeführten Tests:** 14
+* **Fehler (Errors):** 0
+* **Fehlgeschlagene Tests (Failures):** 2
+    * **test_add_negative_numbers:** Dieser Test ist fehlgeschlagen, weil deine `add`-Methode bei der Eingabe von Zahlen mit negativen Werten zwar eine `ValueError`-Ausnahme auslöst (was korrekt ist), die erwartete Fehlermeldung lautete jedoch "Negative numbers are not allowed: -1, -3", während deine Implementierung die Meldung "negatives not allowed: -1,-3" zurückgegeben hat.
+    * **test_custom_long_delimiter_with_negative_numbers:** Dieser Test ist ebenfalls fehlgeschlagen, weil deine `add`-Methode bei der Eingabe von Zahlen mit negativen Werten und einem benutzerdefinierten, längeren Trennzeichen zwar eine `ValueError`-Ausnahme auslöst, die erwartete Fehlermeldung lautete jedoch "Negative numbers are not allowed: -2, -4", während deine Implementierung die Meldung "negatives not allowed: -2,-4" zurückgegeben hat.
\ No newline at end of file
-- 
GitLab