Skip to content
Snippets Groups Projects
Commit f03dea42 authored by Muhamed's avatar Muhamed
Browse files

ich vs marvin

parent ece54f6a
No related merge requests found
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
import unittest import unittest
import re import re
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from other.Marvin.feature7 import StringCalculator as Marvin #from other.Marvin.feature7 import StringCalculator as Marvin
class CalculatorInterface(ABC): class CalculatorInterface(ABC):
@abstractmethod @abstractmethod
...@@ -60,9 +60,84 @@ class StringCalculator(CalculatorInterface): ...@@ -60,9 +60,84 @@ class StringCalculator(CalculatorInterface):
return sum(numbers_to_add) return sum(numbers_to_add)
def get_called_count(self): def get_called_count(self):
return self.called_count 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): def setUp(self):
self.calculator = Marvin() self.calculator = Marvin()
def test_empty_string(self): def test_empty_string(self):
...@@ -116,7 +191,7 @@ class TestStingCalculator(unittest.TestCase): ...@@ -116,7 +191,7 @@ class TestStingCalculator(unittest.TestCase):
def test_custom_del(self): def test_custom_del(self):
self.assertEqual(self.calculator.add("//[+++]\n1+++2+++3"),6) self.assertEqual(self.calculator.add("//[+++]\n1+++2+++3"),6)
def test_custom_del2(self): def test_custom_del2(self):
self.assertEqual(self.calculator.add("//[aa]\n1aa2aa3"),6) self.assertEqual(self.calculator.add("//[aa]\n1aa2aa3"),6)'''
......
No preview for this file type
| 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') | | 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) | | 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') | | 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') | | 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 | 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment