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

ich vs marvin

parent ece54f6a
No related branches found
No related tags found
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