From aeb186d0cb3fdb7429a067ca4798011f894a34a1 Mon Sep 17 00:00:00 2001
From: DaniRafeh28 <daniel.rafeh@student.reutlingen-university.de>
Date: Fri, 4 Apr 2025 12:33:40 +0200
Subject: [PATCH] 2/26 Tests failed - 5 errors - Report Table adjusted -
 Modified Orlandos Code to run the tests because there was no Class and
 Interface defined.

---
 Project_tests/converter.py                    |   6 +-
 .../test_roman.py => RomanConverter.py}       |  64 ++++++++++-
 .../RomanConverter.cpython-312.pyc            | Bin 0 -> 4238 bytes
 .../other/WeishauptOrlando/src/Count_ED.py    |   8 --
 .../WeishauptOrlando/src/RomanConverter.py    |  50 ---------
 .../other/WeishauptOrlando/src/__init__.py    |  53 ---------
 .../other/WeishauptOrlando/src/calculator.py  |  44 --------
 .../other/WeishauptOrlando/src/interfaces.py  |  17 ---
 .../WeishauptOrlando/tests/TestCount_ED.py    |  34 ------
 .../other/WeishauptOrlando/tests/__init__.py  |   0
 .../WeishauptOrlando/tests/test_calculator.py | 103 ------------------
 Project_tests/report.md                       |  20 ++--
 12 files changed, 74 insertions(+), 325 deletions(-)
 rename Project_tests/other/WeishauptOrlando/{tests/test_roman.py => RomanConverter.py} (57%)
 create mode 100644 Project_tests/other/WeishauptOrlando/__pycache__/RomanConverter.cpython-312.pyc
 delete mode 100644 Project_tests/other/WeishauptOrlando/src/Count_ED.py
 delete mode 100644 Project_tests/other/WeishauptOrlando/src/RomanConverter.py
 delete mode 100644 Project_tests/other/WeishauptOrlando/src/__init__.py
 delete mode 100644 Project_tests/other/WeishauptOrlando/src/calculator.py
 delete mode 100644 Project_tests/other/WeishauptOrlando/src/interfaces.py
 delete mode 100644 Project_tests/other/WeishauptOrlando/tests/TestCount_ED.py
 delete mode 100644 Project_tests/other/WeishauptOrlando/tests/__init__.py
 delete mode 100644 Project_tests/other/WeishauptOrlando/tests/test_calculator.py

diff --git a/Project_tests/converter.py b/Project_tests/converter.py
index da0273d..3700d4c 100644
--- a/Project_tests/converter.py
+++ b/Project_tests/converter.py
@@ -31,7 +31,8 @@ from abc import ABC, abstractmethod
 #from other.BerishaAlma.test2converter import RomanNumber as AlmaCalc
 #from other.GotsisWasilios.TDD_Converter import WasiliRomanNumber as WasiliCalc
 #from other.PikkemaatLasse.romannumerals import RomanNumerals as LasseCalc
-from other.YildirimHatice.converter import RomanNumber as HaticeCalc
+#from other.YildirimHatice.converter import RomanNumber as HaticeCalc
+from other.WeishauptOrlando.RomanConverter import RomanConverter_v1 as OrlandoCalc
 
 class IConverter(ABC):
     @abstractmethod
@@ -74,7 +75,8 @@ class DanisConverter(IConverter):
 
 class TestConverter(unittest.TestCase):
     def setUp(self):
-        self.c = HaticeCalc()
+        self.c = OrlandoCalc()
+        self.c.convert = self.c.int_to_roman
        
 
     def test_convertOne(self):
diff --git a/Project_tests/other/WeishauptOrlando/tests/test_roman.py b/Project_tests/other/WeishauptOrlando/RomanConverter.py
similarity index 57%
rename from Project_tests/other/WeishauptOrlando/tests/test_roman.py
rename to Project_tests/other/WeishauptOrlando/RomanConverter.py
index 30cbabf..4bb414a 100644
--- a/Project_tests/other/WeishauptOrlando/tests/test_roman.py
+++ b/Project_tests/other/WeishauptOrlando/RomanConverter.py
@@ -1,3 +1,62 @@
+import sys
+import os
+import unittest
+from abc import ABC, abstractmethod
+
+class IRomanConverter(ABC):
+    @abstractmethod
+    def int_to_roman(self, num: int) -> str:
+        pass
+
+class RomanConverter_v1(IRomanConverter):
+    def int_to_roman(self, num: int) -> str:
+        """Konvertiert eine Dezimalzahl in eine römische Zahl."""
+        val = [
+            1000, 900, 500, 400,
+            100, 90, 50, 40,
+            10, 9, 5, 4,
+            1
+        ]
+        syb = [
+            "M", "CM", "D", "CD",
+            "C", "XC", "L", "XL",
+            "X", "IX", "V", "IV",
+            "I"
+        ]
+        roman_num = ''
+        i = 0
+        while num > 0:
+            for _ in range(num // val[i]):
+                roman_num += syb[i]
+                num -= val[i]
+            i += 1
+        return roman_num
+
+
+"""class RomanConverter(IRomanConverter):
+    def roman_to_int(self, s: str) -> int:
+        Konvertiert eine römische Zahl (String) in eine Dezimalzahl.
+        roman_values = {
+            'I': 1, 'V': 5, 'X': 10, 'L': 50,
+            'C': 100, 'D': 500, 'M': 1000
+        }
+
+        total = 0
+        prev_value = 0
+
+        # Iteriere über die Zeichen der römischen Zahl von rechts nach links
+        for char in reversed(s.upper()): 
+            value = roman_values.get(char)
+            if value is None:
+                raise ValueError(f"Ungültiges Zeichen '{char}' in der römischen Zahl.")
+            if value < prev_value:
+                total -= value
+            else:
+                total += value
+            prev_value = value
+
+        return total"""
+
 # Testfälle roman_to_int, str -> int
 
 # 1. Einzelne römische Ziffern
@@ -33,11 +92,6 @@ import sys
 import os
 import unittest
 
-# Füge das src-Verzeichnis zum Python-Pfad hinzu
-sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../src')))
-
-from src.RomanConverter import RomanConverter  # Importiere die zu testende Klasse
-
 class TestRomanConverter(unittest.TestCase):
     def setUp(self):
         self.converter = RomanConverter()
diff --git a/Project_tests/other/WeishauptOrlando/__pycache__/RomanConverter.cpython-312.pyc b/Project_tests/other/WeishauptOrlando/__pycache__/RomanConverter.cpython-312.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..1d3d28d2916e32b38f3d3155a2711b2c79ccbe5d
GIT binary patch
literal 4238
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

literal 0
HcmV?d00001

diff --git a/Project_tests/other/WeishauptOrlando/src/Count_ED.py b/Project_tests/other/WeishauptOrlando/src/Count_ED.py
deleted file mode 100644
index 3b6973a..0000000
--- a/Project_tests/other/WeishauptOrlando/src/Count_ED.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from src.interfaces import ICounter
-
-
-class Counter(ICounter):
-    def count_ed(self, s: str) -> int:
-        """Zählt die Anzahl der Buchstaben 'E' und 'D' in einem String (Case-Insensitive)."""
-        s = s.upper()
-        return s.count("D") + s.count("E")
diff --git a/Project_tests/other/WeishauptOrlando/src/RomanConverter.py b/Project_tests/other/WeishauptOrlando/src/RomanConverter.py
deleted file mode 100644
index e45a5e2..0000000
--- a/Project_tests/other/WeishauptOrlando/src/RomanConverter.py
+++ /dev/null
@@ -1,50 +0,0 @@
-from src.interfaces import IRomanConverter
-
-
-def int_to_roman(num: int) -> str:
-    """Konvertiert eine Dezimalzahl in eine römische Zahl."""
-    val = [
-        1000, 900, 500, 400,
-        100, 90, 50, 40,
-        10, 9, 5, 4,
-        1
-    ]
-    syb = [
-        "M", "CM", "D", "CD",
-        "C", "XC", "L", "XL",
-        "X", "IX", "V", "IV",
-        "I"
-    ]
-    roman_num = ''
-    i = 0
-    while num > 0:
-        for _ in range(num // val[i]):
-            roman_num += syb[i]
-            num -= val[i]
-        i += 1
-    return roman_num
-
-
-class RomanConverter(IRomanConverter):
-    def roman_to_int(self, s: str) -> int:
-        """Konvertiert eine römische Zahl (String) in eine Dezimalzahl."""
-        roman_values = {
-            'I': 1, 'V': 5, 'X': 10, 'L': 50,
-            'C': 100, 'D': 500, 'M': 1000
-        }
-
-        total = 0
-        prev_value = 0
-
-        # Iteriere über die Zeichen der römischen Zahl von rechts nach links
-        for char in reversed(s.upper()):
-            value = roman_values.get(char)
-            if value is None:
-                raise ValueError(f"Ungültiges Zeichen '{char}' in der römischen Zahl.")
-            if value < prev_value:
-                total -= value
-            else:
-                total += value
-            prev_value = value
-
-        return total
diff --git a/Project_tests/other/WeishauptOrlando/src/__init__.py b/Project_tests/other/WeishauptOrlando/src/__init__.py
deleted file mode 100644
index 1b733ab..0000000
--- a/Project_tests/other/WeishauptOrlando/src/__init__.py
+++ /dev/null
@@ -1,53 +0,0 @@
-from src.calculator import Calculator
-from src.Count_ED import Counter
-from src.RomanConverter import RomanConverter, int_to_roman
-
-if __name__ == "__main__":
-    # Erstelle eine Instanz der Calculator-Klasse
-    calc = Calculator()
-
-    # Eine Liste von Test-Ausdrücken, die überprüft werden sollen
-    test_expressions = [
-        "2+3",      # Einfacher Additionstest
-        "10-4/2",   # Test mit Division und Subtraktion
-        "(3+5)*2",  # Komplexerer Ausdruck mit Klammern
-        "3++5",     # Ungültiger Ausdruck (doppelte Operatoren)
-        "3--5",     # Ungültiger Ausdruck (doppelte Operatoren)
-        "10*/2",    # Ungültiger Ausdruck (Operatorenkombinationen)
-        "5/0",      # Division durch Null (Fehler)
-        "(3+5))",   # Ungültiger Ausdruck (zu viele Klammern)
-        "abc",      # Ungültiger Ausdruck (nur Buchstaben)
-        "-3*-3"     # Gültiger Ausdruck mit Vorzeichen
-    ]
-
-    # Schleife, um alle Test-Ausdrücke zu durchlaufen
-    for expr in test_expressions:
-        try:
-            # Versuche, den Ausdruck zu berechnen und gebe das Ergebnis aus
-            print(f"Eingabe: '{expr}' → Ausgabe: {calc.calculate(expr)}")
-        except Exception as e:
-            # Wenn ein Fehler auftritt, gebe die Fehlermeldung aus
-            print(f"Eingabe: '{expr}' → Fehler: {e}")
-print("______________________________________________________________")
-if __name__ == "__main__":
-    counter = Counter()
-    test_strings = ["Decker", "", "Hallo", "Der Esel", "D", "E", "d", "e"]
-
-    for string in test_strings:
-        print(f"Eingabe: '{string}' → Ausgabe: {counter.count_ed(string)}")
-
-print("______________________________________________________________")
-
-if __name__ == "__main__":
-    converter = RomanConverter()
-    # Test römische Zahl in Dezimalzahl umwandeln
-    print("Test römische Zahl in Dezimalzahl umwandeln")
-    print(converter.roman_to_int("MCMXCIV"))  # Ausgabe: 1994
-    print(converter.roman_to_int("XIV"))  # Ausgabe: 14
-    print(converter.roman_to_int("CDXLIV"))  # Ausgabe: 444
-
-    # Test Dezimalzahl in römische Zahl umwandeln
-    print("Test Dezimalzahl in römische Zahl umwand")
-    print(int_to_roman(1994))  # Ausgabe: MCMXCIV
-    print(int_to_roman(14))    # Ausgabe: XIV
-    print(int_to_roman(444))   # Ausgabe: CDXLIV
\ No newline at end of file
diff --git a/Project_tests/other/WeishauptOrlando/src/calculator.py b/Project_tests/other/WeishauptOrlando/src/calculator.py
deleted file mode 100644
index f4b4785..0000000
--- a/Project_tests/other/WeishauptOrlando/src/calculator.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import re
-from src.interfaces import ICalculator
-
-
-class Calculator(ICalculator):
-    """Ein Taschenrechner, der mathematische Ausdrücke berechnet."""
-
-    def calculate(self, expression: str) -> float:
-        """Berechnet einen mathematischen Ausdruck als String und überprüft auf ungültige Eingaben."""
-        try:
-            # Entfernt überflüssige Leerzeichen
-            expression = expression.replace(" ", "")
-
-            # Nur erlaubte Zeichen (Zahlen, Operatoren, Klammern) und Zahlen mit Vorzeichen
-            if not re.match(r'^[0-9+\-*/().]+$', expression):
-                raise ValueError("Ungültige Zeichen im Ausdruck.")
-
-            # Überprüfung auf doppelte Operatoren, aber keine Vorzeichen wie -* oder -+
-            # Hier wird jetzt auch sichergestellt, dass -3*-3 gültig bleibt
-            if re.search(r'(?<!\d)[+\-*/]{2,}', expression):  # Erfasst auch doppelte Operatoren wie ++, --, **, etc.
-                raise SyntaxError("Ungültige doppelte Operatoren im Ausdruck.")
-
-            # Sicherstellen, dass Klammern ausgeglichen sind
-            if expression.count("(") != expression.count(")"):
-                raise ValueError("Fehlende oder zu viele Klammern.")
-
-            # Sicherstellen, dass der Ausdruck nicht mit einem Operator beginnt oder endet,
-            # aber das Minuszeichen als Teil der Zahl akzeptiert wird
-            if re.match(r'^[*/]', expression) or re.match(r'[*/]$', expression):  # Weitere Kontrolle
-                raise ValueError("Der Ausdruck darf nicht mit einem Operator beginnen oder enden.")
-
-            # Evaluierung des mathematischen Ausdrucks mit eval()
-            result = eval(expression, {"__builtins__": None}, {})
-
-            # Sicherstellen, dass das Ergebnis numerisch ist
-            if isinstance(result, (int, float)):
-                return float(result)
-            else:
-                raise ValueError("Ungültiger Ausdruck.")
-
-        except ZeroDivisionError:
-            raise ZeroDivisionError("Division durch Null ist nicht erlaubt.")
-        except (SyntaxError, TypeError, NameError) as e:
-            raise ValueError(f"Ungültiger mathematischer Ausdruck: {str(e)}")
diff --git a/Project_tests/other/WeishauptOrlando/src/interfaces.py b/Project_tests/other/WeishauptOrlando/src/interfaces.py
deleted file mode 100644
index e9c300f..0000000
--- a/Project_tests/other/WeishauptOrlando/src/interfaces.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from abc import ABC, abstractmethod
-
-class ICounter(ABC):
-    @abstractmethod
-    def count_ed(self, s: str) -> int:
-        """Zählt die Buchstaben 'E' und 'D' in einem String (Case-Insensitive)."""
-        pass
-class IRomanConverter(ABC):
-    @abstractmethod
-    def roman_to_int(self, s: str) -> int:
-        """Konvertiert eine römische Zahl (String) in eine Dezimalzahl."""
-        pass
-
-class ICalculator(ABC):
-    @abstractmethod
-    def calculate(self, expression: str) -> float:
-        pass
\ No newline at end of file
diff --git a/Project_tests/other/WeishauptOrlando/tests/TestCount_ED.py b/Project_tests/other/WeishauptOrlando/tests/TestCount_ED.py
deleted file mode 100644
index 152bccd..0000000
--- a/Project_tests/other/WeishauptOrlando/tests/TestCount_ED.py
+++ /dev/null
@@ -1,34 +0,0 @@
-import unittest
-import sys
-import os
-
-sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../src')))
-from src.Count_ED import Counter
-
-class TestCounter(unittest.TestCase):
-    def setUp(self):
-        self.c = Counter()
-
-    def test_count_ed_regular(self):
-        self.assertEqual(self.c.count_ed("Decker"), 3)
-
-    def test_count_ed_empty(self):
-        self.assertEqual(self.c.count_ed(""), 0)
-
-    def test_count_ed_wo(self):
-        """Testet einen String ohne E und D"""
-        self.assertEqual(self.c.count_ed("Hallo"), 0)
-
-    def test_count_ed_case_insensitive(self):
-        """Testet verschiedene Groß- und Kleinschreibungen"""
-        self.assertEqual(self.c.count_ed("Der Esel"), 4)
-
-    def test_count_ED_single_letter(self):
-        """Testet Eingaben mit nur einem Buchstaben"""
-        self.assertEqual(self.c.count_ed('D'), 1)
-        self.assertEqual(self.c.count_ed('E'), 1)
-        self.assertEqual(self.c.count_ed('d'), 1)
-        self.assertEqual(self.c.count_ed('e'), 1)
-
-if __name__ == "__main__":
-    unittest.main()
\ No newline at end of file
diff --git a/Project_tests/other/WeishauptOrlando/tests/__init__.py b/Project_tests/other/WeishauptOrlando/tests/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/Project_tests/other/WeishauptOrlando/tests/test_calculator.py b/Project_tests/other/WeishauptOrlando/tests/test_calculator.py
deleted file mode 100644
index a0c7931..0000000
--- a/Project_tests/other/WeishauptOrlando/tests/test_calculator.py
+++ /dev/null
@@ -1,103 +0,0 @@
-# Testfälle für calculate(), Eingabe: str, Ausgabe: float/int
-
-# 1️⃣ Additionstests
-# Eingabe: "1+1" → Erwartete Ausgabe: 2
-# Eingabe: "10+20" → Erwartete Ausgabe: 30
-# Eingabe: "0+5" → Erwartete Ausgabe: 5
-# Eingabe: "-3+7" → Erwartete Ausgabe: 4
-# Eingabe: "2.5+2.5" → Erwartete Ausgabe: 5.0
-
-# 2️⃣ Subtraktionstests
-# Eingabe: "5-3" → Erwartete Ausgabe: 2
-# Eingabe: "10-20" → Erwartete Ausgabe: -10
-# Eingabe: "0-5" → Erwartete Ausgabe: -5
-# Eingabe: "-3-7" → Erwartete Ausgabe: -10
-# Eingabe: "2.5-1.5" → Erwartete Ausgabe: 1.0
-
-# 3️⃣ Multiplikationstests
-# Eingabe: "2*3" → Erwartete Ausgabe: 6
-# Eingabe: "10*0" → Erwartete Ausgabe: 0
-# Eingabe: "-2*5" → Erwartete Ausgabe: -10
-# Eingabe: "3.5*2" → Erwartete Ausgabe: 7.0
-# Eingabe: "-3*-3" → Erwartete Ausgabe: 9
-
-# 4️⃣ Divisionstests
-# Eingabe: "10/2" → Erwartete Ausgabe: 5
-# Eingabe: "5/2" → Erwartete Ausgabe: 2.5
-# Eingabe: "-6/3" → Erwartete Ausgabe: -2
-# Eingabe: "7.5/2.5" → Erwartete Ausgabe: 3.0
-# Eingabe: "5/0" → Erwartete Ausgabe: ZeroDivisionError (Fehlermeldung)
-
-# 5️⃣ Komplexe Berechnungen
-# Eingabe: "3+5*2" → Erwartete Ausgabe: 13 (Multiplikation vor Addition)
-# Eingabe: "(3+5)*2" → Erwartete Ausgabe: 16 (Klammer zuerst)
-# Eingabe: "10-4/2" → Erwartete Ausgabe: 8 (Division vor Subtraktion)
-# Eingabe: "3+(2*5)-8/4" → Erwartete Ausgabe: 10 (Mehrere Operatoren)
-
-# 6️⃣ Ungültige Eingaben
-# Eingabe: "3++5" → Erwartete Ausgabe: SyntaxError (Fehlermeldung)
-# Eingabe: "10*/2" → Erwartete Ausgabe: SyntaxError (Fehlermeldung)
-# Eingabe: "abc" → Erwartete Ausgabe: ValueError (Fehlermeldung)
-
-
-import unittest
-from src.calculator import Calculator
-
-class TestCalculator(unittest.TestCase):
-    def setUp(self):
-        self.calc = Calculator()
-
-    # Addition
-    def test_addition(self):
-        self.assertEqual(self.calc.calculate("1+1"), 2)
-        self.assertEqual(self.calc.calculate("10+20"), 30)
-        self.assertEqual(self.calc.calculate("0+5"), 5)
-        self.assertEqual(self.calc.calculate("-3+7"), 4)
-        self.assertEqual(self.calc.calculate("2.5+2.5"), 5.0)
-
-    # Subtraktion
-    def test_subtraction(self):
-        self.assertEqual(self.calc.calculate("5-3"), 2)
-        self.assertEqual(self.calc.calculate("10-20"), -10)
-        self.assertEqual(self.calc.calculate("0-5"), -5)
-        self.assertEqual(self.calc.calculate("-3-7"), -10)
-        self.assertEqual(self.calc.calculate("2.5-1.5"), 1.0)
-
-    # Multiplikation
-    def test_multiplication(self):
-        self.assertEqual(self.calc.calculate("2*3"), 6)
-        self.assertEqual(self.calc.calculate("10*0"), 0)
-        self.assertEqual(self.calc.calculate("-2*5"), -10)
-        self.assertEqual(self.calc.calculate("3.5*2"), 7.0)
-        self.assertEqual(self.calc.calculate("-3*-3"), 9)
-
-    # Division
-    def test_division(self):
-        self.assertEqual(self.calc.calculate("10/2"), 5)
-        self.assertEqual(self.calc.calculate("5/2"), 2.5)
-        self.assertEqual(self.calc.calculate("-6/3"), -2)
-        self.assertEqual(self.calc.calculate("7.5/2.5"), 3.0)
-
-    # Division durch Null
-    def test_division_by_zero(self):
-        with self.assertRaises(ZeroDivisionError):
-            self.calc.calculate("5/0")
-
-    # Komplexe Berechnungen
-    def test_complex_expressions(self):
-        self.assertEqual(self.calc.calculate("3+5*2"), 13)  # Punkt-vor-Strich beachten
-        self.assertEqual(self.calc.calculate("(3+5)*2"), 16)  # Klammer zuerst
-        self.assertEqual(self.calc.calculate("10-4/2"), 8)  # Division vor Subtraktion
-        self.assertEqual(self.calc.calculate("3+(2*5)-8/4"), 11.0)  #  11
-
-    # Ungültige Eingaben
-    def test_invalid_expressions(self):
-        with self.assertRaises(ValueError):
-            self.calc.calculate("3++5")
-        with self.assertRaises(ValueError):
-            self.calc.calculate("10*/2")
-        with self.assertRaises(ValueError):
-            self.calc.calculate("abc")
-
-if __name__ == "__main__":
-    unittest.main()
\ No newline at end of file
diff --git a/Project_tests/report.md b/Project_tests/report.md
index 38a751c..8197e73 100644
--- a/Project_tests/report.md
+++ b/Project_tests/report.md
@@ -1,9 +1,11 @@
-| Name           | Interface break | Failed Testcases                                                                                                                                                                                                                                                                                                            |
-|----------------|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| AliciMuhamed   | yes (4)         | test_convertFloat test_convertNegative test_convertZero                                                                                                                                                                                                                                                                     |
-| BerishaAlma    | no              | all except one (test_convertThree)                                                                                                                                                                                                                                                                                          |
-| GotsisWasilios | no              | 23/26 failed (test_convertTwenty, test_convertSixty, test_convertSeventy successful)                                                                                                                                                                                                                                        |
-| PikkemaatLasse | yes (8)         | none                                                                                                                                                                                                                                                                                                                        |
-| YildirimHatice | no              | 15/26 failed (test_convertZero, test_convertYear, test_convertThirty, test_convertTen, test_convertString, test_convertSign, test_convertNintyNine, test_convertNinety, test_convertNegative, test_convertMultipleNum, test_convertHighNum, test_convertFourty, test_convertFourDigit,test_convertFloat,test_convertEmpty)  |
-|                |                 |                                                                                                                                                                                                                                                                                                                             |
-|                |                 |                                                                                                                                                                                                                                                                                                                             |
\ No newline at end of file
+Roman Numbers - Codes of Group members tested with my testcases:
+
+| Name             | Interface break | Failed Testcases                                                                                                                                                                                                                                                                                                            |
+|------------------|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| AliciMuhamed     | yes (4)         | 3/26 failed (test_convertFloat, test_convertNegative, test_convertZero)                                                                                                                                                                                                                                                     |
+| BerishaAlma      | no              | 25/26 failed (test_convertThree was the only one that was successful)                                                                                                                                                                                                                                                       |
+| GotsisWasilios   | no              | 23/26 failed (test_convertTwenty, test_convertSixty, test_convertSeventy successful)                                                                                                                                                                                                                                        |
+| PikkemaatLasse   | yes (8)         | none                                                                                                                                                                                                                                                                                                                        |
+| YildirimHatice   | no              | 15/26 failed (test_convertZero, test_convertYear, test_convertThirty, test_convertTen, test_convertString, test_convertSign, test_convertNintyNine, test_convertNinety, test_convertNegative, test_convertMultipleNum, test_convertHighNum, test_convertFourty, test_convertFourDigit,test_convertFloat,test_convertEmpty)  |
+| WeishauptOrlando | yes (5)         | 2/26 failed (test_convertZero, test_convertNegative)                                                                                                                                                                                                                                                                        |
+|                  |                 |                                                                                                                                                                                                                                                                                                                             |
\ No newline at end of file
-- 
GitLab