From e1a12298952ab7954291d4abdc2b809567ab2c36 Mon Sep 17 00:00:00 2001
From: Muhamed <Muhamedalici@hotmail.de>
Date: Fri, 4 Apr 2025 14:34:44 +0200
Subject: [PATCH] ich vs Daniel

---
 muhamed_directory/String calculator | 81 +++++++++++++++++++++++++++--
 muhamed_directory/other/report.md   | 59 +++++++++++++++++++--
 2 files changed, 133 insertions(+), 7 deletions(-)

diff --git a/muhamed_directory/String calculator b/muhamed_directory/String calculator
index bca6274..890565e 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.Daniel.stringCalculator import StringCalculator as Dani
+#from other.Daniel.stringCalculator import StringCalculator as Dani
 
 class CalculatorInterface(ABC):
     @abstractmethod
@@ -61,8 +61,83 @@ class StringCalculator(CalculatorInterface):
     def get_called_count(self):
         return self.called_count
         
+class TestStringCalculator(unittest.TestCase):
+    def setUp(self):
+        self.c = StringCalculator()
+
+    def test_empty(self):
+        res = self.c.add("")
+        self.assertEqual(res, 0)
+
+    def test_oneNumber(self):
+        res = self.c.add("1")
+        self.assertEqual(res, 1)
     
-class TestStingCalculator(unittest.TestCase):
+    def test_addingTwoNumbers(self):
+        res = self.c.add("1,2")
+        self.assertEqual(res, 3)
+
+    def test_addingTwoNumbersWithZero(self):
+        res = self.c.add("0,5")
+        self.assertEqual(res, 5)
+
+    def test_handleFloat(self):
+        res = self.c.add("3.5")
+        self.assertEqual(res, "only integers allowed")
+
+    def test_handleLetter(self):
+        res = self.c.add("1, z")
+        self.assertEqual(res, "only integers allowed")
+
+    def test_addWithBackslashN(self):
+        res = self.c.add("1\n2,3")
+        self.assertEqual(res, 6)
+
+    def test_negativeValues(self):
+        res = self.c.add("-3")
+        self.assertEqual(res, "negatives not allowed")
+
+    def test_delimiter(self):
+        res = self.c.add("//;\n1;2")
+        self.assertEqual(res, 3)
+
+    def test_thousandone(self):
+        res = self.c.add("2, 1001")
+        self.assertEqual(res, 2)
+
+    def test_multidelimiter(self):
+        res = self.c.add("//[***]\n1***2***3")
+        self.assertEqual(res, 6)
+
+    def test_multi_negative(self):
+        res = self.c.add("-3, -4")
+        self.assertEqual(res, "negatives not allowed " + str([-3, -4]))
+
+    def test_space_between_numbers(self):
+        res = self.c.add(" 4  , 5")
+        self.assertEqual(res, 9)
+
+    def test_multiple_num_with_thousandone(self):
+        res = self.c.add(" 2, 1001, 5")
+        self.assertEqual(res, 7)
+
+    def test_empty_text(self):
+        res = self.c.add("//;\n")
+        self.assertEqual(res, 0)
+
+    def test_one_number_with_empty_string(self):
+        res = self.c.add("1,")
+        self.assertEqual(res, 1)
+
+    def test_negative_with_positive(self):
+        res = self.c.add("-2, 5")
+        self.assertEqual(res, "negatives not allowed")
+
+    def test_mixture(self):
+        res = self.c.add("//;\n-1;2;1001;-3")
+        self.assertEqual(res, "negatives not allowed " + str([-1, -3]))
+  
+'''class TestStingCalculator(unittest.TestCase):
     def setUp(self):
         self.calculator = Dani()     
     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/report.md b/muhamed_directory/other/report.md
index 1317aa3..bed0da6 100644
--- a/muhamed_directory/other/report.md
+++ b/muhamed_directory/other/report.md
@@ -1,4 +1,55 @@
-| 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) |
\ No newline at end of file
+| 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') |
+| 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
+
+* **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
+
+* **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.
+
+### hatice tests muhamed calculator
+
+* **Anzahl der ausgeführten Tests:** 15
+* **Fehlgeschlagene Tests (Failures):** 2
+    * **test_multiple_negative_numbers:** Dieser Test ist fehlgeschlagen, weil deine `add`-Methode bei der Eingabe von "-2, -3" zwar eine `ValueError`-Ausnahme auslöst (was korrekt ist), die erwartete Fehlermeldung lautete jedoch "Negatives not allowed: -2, -3", während deine Implementierung die Meldung "negatives not allowed: -2,-3" zurückgegeben hat.
+    * **test_negative_number:** Dieser Test ist ebenfalls fehlgeschlagen, weil deine `add`-Methode bei der Eingabe von "-2" zwar eine `ValueError`-Ausnahme auslöst, die erwartete Fehlermeldung lautete jedoch "Negatives not allowed: -2", während deine Implementierung die Meldung "negatives not allowed: -2" zurückgegeben hat.
+
+### dani tests muhamed calculator
+
+* **Anzahl der ausgeführten Tests:** 18
+* **Fehler (Errors):** 8
+    * **test_empty_text:** Fehlgeschlagen aufgrund eines `ValueError`, da versucht wurde, einen leeren String in eine Ganzzahl umzuwandeln. Dies trat bei der Eingabe von "//;\n" auf.
+    * **test_handleFloat:** Fehlgeschlagen aufgrund eines `ValueError`, da versucht wurde, die Gleitkommazahl "3.5" in eine Ganzzahl umzuwandeln.
+    * **test_handleLetter:** Fehlgeschlagen aufgrund eines `ValueError`, da versucht wurde, den String " z" (mit einem Buchstaben) in eine Ganzzahl umzuwandeln. Dies trat bei der Eingabe von "1, z" auf.
+    * **test_mixture:** Fehlgeschlagen aufgrund eines `ValueError: negatives not allowed: -1,-3`. Dani's Test erwartet möglicherweise eine andere Behandlung von negativen Zahlen in Kombination mit anderen Regeln.
+    * **test_multi_negative:** Fehlgeschlagen aufgrund eines `ValueError: negatives not allowed: -3,-4`. Dani's Test erwartet möglicherweise eine andere Behandlung von mehreren negativen Zahlen.
+    * **test_negativeValues:** Fehlgeschlagen aufgrund eines `ValueError: negatives not allowed: -3`. Dani's Test erwartet möglicherweise eine andere Behandlung von einzelnen negativen Zahlen.
+    * **test_negative_with_positive:** Fehlgeschlagen aufgrund eines `ValueError: negatives not allowed: -2`. Dani's Test erwartet möglicherweise eine andere Behandlung von negativen Zahlen in Kombination mit positiven Zahlen.
+    * **test_one_number_with_empty_string:** Fehlgeschlagen aufgrund eines `ValueError`, da versucht wurde, einen leeren String in eine Ganzzahl umzuwandeln. Dies trat bei der Eingabe von "1," auf.
-- 
GitLab