diff --git a/String Calculator.py b/String Calculator.py
new file mode 100644
index 0000000000000000000000000000000000000000..75ecc09617aa694296836baa8ccbd048a809d6fb
--- /dev/null
+++ b/String Calculator.py	
@@ -0,0 +1,31 @@
+#test no string
+#test add 1 string
+#test adding 2 strings
+import unittest
+
+class StringCalculator:
+    def add (self, numbers : str)-> int: #Erwartet Integer
+        if not numbers:
+            return 0
+        else:
+            number_list = numbers.split(',')#aufteilung der strings
+            if len(number_list) ==1:
+                return int(number_list[0])#bei einem string wird er in int umgewandelt
+            elif len(number_list)==2:
+                return int(number_list[0])+ int(number_list[1])#bei 2 strings wird beides in int verwandelt und die summe zurück gegeben(Position 1/0+Position 2/1)
+            return 0
+        
+    
+class TestStingCalculator(unittest.TestCase):
+    def test_empty_string(self):
+        calculator = StringCalculator()
+        self.assertEqual(calculator.add(""), 0) #leerer string + 0
+    def test_single_number(self):
+        calculator = StringCalculator()
+        self.assertEqual(calculator.add("5"),5) #eingabe von einem String
+    def test_multiple_numbers(self):
+        calculator=StringCalculator()
+        self.assertEqual(calculator.add("5,5"),10)#eingabe mehrere strings
+
+if __name__=='__main__':
+    unittest.main()
\ No newline at end of file
diff --git "a/Test_Converter_R\303\266mische_Zahlen.py" "b/Test_Converter_R\303\266mische_Zahlen.py"
index d98f3422bc2a74e8201a16b6c5a433846eaf8e02..61622f8a9ab18de762b7adb4f9d89c2ded7425d4 100644
--- "a/Test_Converter_R\303\266mische_Zahlen.py"
+++ "b/Test_Converter_R\303\266mische_Zahlen.py"
@@ -1,36 +1,59 @@
 #Test_Converter_Römische_Zahlen
 
 import unittest
+from abc import ABC, abstractmethod
+#from muhamed_directory.other.alma.test2converter import RomanNumber as Alma
+#from muhamed_directory.other.daniel.converter import Converter as Dani
+#from muhamed_directory.other.hatice.converter import RomanNumber as Hati
+#from muhamed_directory.other.wasili.TDD_Converter import RomanNumber as was
+from muhamed_directory.other.orlando.RomanConverter import int_to_roman as Lando
 
-def convert(n: int) -> str:
-    roman_numerals = {
-        1000: "M", 900: "CM", 500: "D", 400: "CD",
-        100: "C", 90: "XC", 50: "L", 40: "XL",
-        10: "X", 9: "IX", 5: "V", 4: "IV", 1: "I"
-    }
-    result = ""
-    for value in sorted(roman_numerals.keys(), reverse=True): #Schleife, die über die Schlüssel (die Dezimalzahlen) des roman_numerals-Dictionaries iteriert und in absteigender reienfolge zurück gibt durch value nimmt  in jeder Iteration den Wert des nächsten sortierten Schlüssels an
-        while n >= value: #Dies startet eine while-Schleife, die so lange ausgeführt wird, wie der Wert von n größer oder gleich dem aktuellen value (der Dezimalzahl) ist
-            result += roman_numerals[value] #fügt die entsprechende römische Ziffer (den Wert aus dem roman_numerals-Dictionary) zur result-Zeichenkette hinzu.
-            n -= value # aktuelle value - n
-    return result
+class IStringCalculator(ABC):
+    @abstractmethod
+    def add(self, numbers: str) -> int:
+        pass
 
+class Converter(IStringCalculator):
+    @staticmethod
+    def convert(n: int) -> str:
+        roman_numerals = {
+            1000: "M", 900: "CM", 500: "D", 400: "CD",
+            100: "C", 90: "XC", 50: "L", 40: "XL",
+            10: "X", 9: "IX", 5: "V", 4: "IV", 1: "I"
+        }
+        result = ""
+        for value in sorted(roman_numerals.keys(), reverse=True):
+            while n >= value:
+                result += roman_numerals[value]
+                n -= value
+        return result
+
+    
 class TestRomanConverter(unittest.TestCase):
+    
+    def setUp(self):
+        self.Converter = Lando
+
     def test_1(self):
-        self.assertEqual(convert(1), "I")  # Erwartet "I" für 1
+        self.assertEqual(self.Converter.int_to_roman(1), "I")
 
     def test_10(self):
-        self.assertEqual(convert(10), "X")  # Erwartet "X" für 10
+        self.assertEqual(self.calculator.roman_to_int(10), "X")
+
     def test_21(self):
-        self.assertEqual(convert(21), "XXI")  # Erwartet "XXI" für 21
+        self.assertEqual(self.calculator.roman_to_int(21), "XXI")
+
     def test_50(self):
-        self.assertEqual(convert(50), "L")  # Erwartet "L" für 50
+        self.assertEqual(self.calculator.roman_to_int(50), "L")
+
     def test_100(self):
-        self.assertEqual(convert(100), "C")  # Erwartet "C" für 100
+        self.assertEqual(self.calculator.roman_to_int(100), "C")
+
     def test_1000(self):
-        self.assertEqual(convert(1000), "M")  # Erwartet "M" für 1000
+        self.assertEqual(self.calculator.roman_to_int(1000), "M")
+
     def test_1999(self):
-        self.assertEqual(convert(1999), "MCMXCIX") #Erwartet "MCMXCIX" für 1999
- 
+        self.assertEqual(self.calculator.roman_to_int(1999), "MCMXCIX")
+
 if __name__ == "__main__":
     unittest.main()
\ No newline at end of file
diff --git a/muhamed_directory/other/alma/__pycache__/test2converter.cpython-311.pyc b/muhamed_directory/other/alma/__pycache__/test2converter.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..ab298a188fc70437ac40bc3acde1e4edb9f8eabf
Binary files /dev/null and b/muhamed_directory/other/alma/__pycache__/test2converter.cpython-311.pyc differ
diff --git a/muhamed_directory/other/alma/import unittest.py b/muhamed_directory/other/alma/import unittest.py
new file mode 100644
index 0000000000000000000000000000000000000000..c1b2fe7432330ac049fb5f7f56d79e9a1227880b
--- /dev/null
+++ b/muhamed_directory/other/alma/import unittest.py	
@@ -0,0 +1,50 @@
+import unittest
+from abc import ABC, abstractmethod
+
+#Interface für Counter
+class ICounter(ABC):
+    @abstractmethod
+    def count_ED(self, s):
+        pass
+
+# Implementierung Counter Klasse
+class Counter(ICounter):
+       def count_ED(self, s):
+           s = s.upper()
+           return s.count("D") + s.count("E")
+
+class TextCounter (unittest.TestCase):
+    def setUp(self):
+        self.c = Counter()
+
+    def test_count_ED_regular(self):
+        ergebnis = self.c.count_ED("Decker")
+        self.assertEqual(ergebnis, 3)
+
+    def test_count_ED_empty(self):
+        ergebnis = self.c.count_ED("")
+        self.assertEqual(ergebnis, 0)
+
+    def test_count_ED_wo(self):
+        '''Testet einen String ohne E und D'''
+        ergebnis = self.c.count_ED("HAllo")
+        self.assertEqual(ergebnis, 0)
+
+    def test_count_ED_insensitive(self):
+        '''Testet verschiedene Groß- und Kleinschreibung '''
+        ergebnis = self.c.count_ED("Der Esel")
+        self.assertEqual(ergebnis, 4)
+   
+    def test_count_ED_single_letter(self):
+        '''Testet Eingaben mit nur einem Buchstaben'''
+        ergebnis = self.c.count_ED("D")
+        self.assertEqual(ergebnis, 1)
+        ergebnis = self.c.count_ED("E")
+        self.assertEqual(ergebnis, 1)
+        ergebnis = self.c.count_ED("d")
+        self.assertEqual(ergebnis, 1)
+        ergebnis = self.c.count_ED("e")
+        self.assertEqual(ergebnis, 1)
+
+if __name__ == "__main__":
+    unittest.main()
\ No newline at end of file
diff --git a/muhamed_directory/other/alma/test2converter.py b/muhamed_directory/other/alma/test2converter.py
new file mode 100644
index 0000000000000000000000000000000000000000..2e04e942a54a0b4c592206688a69e563a966af96
--- /dev/null
+++ b/muhamed_directory/other/alma/test2converter.py
@@ -0,0 +1,37 @@
+import unittest
+from abc import ABC, abstractmethod
+
+class IRomanNumber(ABC):
+    @abstractmethod
+    def convert(self, n:int) -> str:
+        pass
+
+class RomanNumber(IRomanNumber):
+    def convert(self, n: int) -> str:
+        roman_numerals = {
+            3: "III",  6: "VI", 8: "VIII",
+            12: "XII",  17: "XVII", 29: "XXIX",
+            34: "XXXIV",  55: "LV", 101: "CI",
+            501: "DI",  1003: "MIII"
+        }
+        return roman_numerals.get(n, "")
+
+class TestRomanConverter(unittest.TestCase):
+    def setUp(self):
+        self.converter = RomanNumber()
+
+    def test_single_value(self):
+        self.assertEqual(self.converter.convert(3), "III")
+        self.assertEqual(self.converter.convert(6), "VI")
+        self.assertEqual(self.converter.convert(8), "VIII")
+        self.assertEqual(self.converter.convert(12), "XII")
+        self.assertEqual(self.converter.convert(17), "XVII")
+        self.assertEqual(self.converter.convert(29), "XXIX")
+        self.assertEqual(self.converter.convert(34), "XXXIV")
+        self.assertEqual(self.converter.convert(55), "LV")
+        self.assertEqual(self.converter.convert(101), "CI")
+        self.assertEqual(self.converter.convert(501), "DI")
+        self.assertEqual(self.converter.convert(1003), "MIII")
+
+if __name__ == "__main__":
+    unittest.main()
\ No newline at end of file
diff --git a/muhamed_directory/other/daniel/__pycache__/converter.cpython-311.pyc b/muhamed_directory/other/daniel/__pycache__/converter.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..e484c342eca8a05c422e607ed31e42fb40fb37af
Binary files /dev/null and b/muhamed_directory/other/daniel/__pycache__/converter.cpython-311.pyc differ
diff --git a/muhamed_directory/other/daniel/converter.py b/muhamed_directory/other/daniel/converter.py
new file mode 100644
index 0000000000000000000000000000000000000000..1d5eff48258d339da12cee00fa9dd6dd640c6911
--- /dev/null
+++ b/muhamed_directory/other/daniel/converter.py
@@ -0,0 +1,182 @@
+# Bei Eingabe der Zahl 1 soll "I" ausgegeben werden
+# Bei Eingabe der Zahl 2 soll "II" ausgegeben werden
+# Bei Eingabe der Zahl 3 soll "III" ausgegeben werden
+# Bei Eingabe der Zahl 4 soll "IV" ausgegeben werden
+# Bei Eingabe der Zahl 5 soll "V" ausgegeben werden
+# Bei Eingabe der Zahl 9 soll "IX" ausgegeben werden
+# Bei Eingabe der Zahl 10 soll "X" ausgegeben werden
+# Bei Eingabe der Zahl 21 soll "XXI" ausgegeben werden
+# Bei Eingabe der Zahl 50 soll "L" ausgegeben werden
+# Bei Eingabe der Zahl 100 soll "C" ausgegeben werden
+# Bei Eingabe der Zahl 500 soll "D" ausgegeben werden
+# Bei Eingabe der Zahl 1000 soll "M" ausgegeben werden
+# Bei Eingabe der Zahl 1111 soll "MCXI" ausgegeben werden
+# Bei Eingabe der Zahl 99 soll "XCIX" ausgegeben werden
+# Bei Eingabe der Zahl 0 soll "Es gibt keine römische Null" ausgegeben werden
+# Bei Eingabe der Zahl 40 soll "XL" ausgegeben werden
+# Bei Eingabe eines Strings soll "Bitte ganze Zahlen eingeben" ausgegeben werden -> geändert aufgrund der Aufgabenstellung
+# Bei Eingabe von Float-Werten (z.B. 4,3) soll "Bitte ganze Zahlen eingeben" ausgegeben werden.
+# Bei Eingabe von negativen Werten (z.B. -5) soll "Es sind nur positive Zahlen zum konvertieren erlaubt" ausgegeben werden
+# Bei Eingabe der Zahl 2025 soll "MMXXV" ausgegeben werden
+# Bei Eingabe von Zeichen wie ! soll "Bitte ganze Zahlen eingeben" ausgegeben werden
+# Bei Eingabe mehrerer Zahlen wie 4, 3 soll "Bitte nur eine ganze Zahl eingeben" augegeben werden
+# Bei Eingabe größerer Zahlen wie z.B. 4000 soll "MMMM" ausgegeben werden
+# Bei Eingabe der Zahl 30 soll "XXX" ausgegeben werden
+# Bei Eingabe der Zahl 90 soll "90" ausgegeben werden
+# Bei Eingabe eines leeren Strings soll "Bitte ganze Zahlen eingeben" ausgegeben werden
+
+import unittest
+from abc import ABC, abstractmethod
+
+class IConverter(ABC):
+    @abstractmethod
+    def convert(self, num: int) -> str:
+        pass
+
+class Converter(IConverter):
+    def convert(self, num: int) -> str:
+
+        '''Sicherstellen, dass nur eine ganze Zahl eingegeben wurde.'''
+        if isinstance(num, str) and len(num.split(',')) > 1: 
+            return 'Bitte nur eine ganze Zahl eingeben'
+        
+        roman_numbers = [(1000, 'M'), (500, 'D'), (100, 'C'), (90, 'XC'), (50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
+        
+        roman_str = ''
+
+        '''Wenn eine 0 eingegeben wird muss eine Exception folgen'''
+        if num == 0:
+            return "Es gibt keine römische Null"
+        
+
+        '''Sicherstellen, dass keine Zeichen oder Strings eingegeben werden'''
+        if isinstance(num, int):
+
+            '''Sicherstellen, dass keine negativen Zahlen eingegeben werden'''
+            if num < 0:
+                return "Es sind nur positive Zahlen zum konvertieren erlaubt"
+            
+            for value, numeral in roman_numbers:
+
+                while num >= value:
+                    roman_str += numeral
+                    num -= value
+
+            return roman_str
+        else: 
+            return "Bitte ganze Zahlen eingeben"
+
+
+class TestConverter(unittest.TestCase):
+    def setUp(self):
+        self.c = Converter()
+
+    def test_convertOne(self):
+        res = self.c.convert(1)
+        self.assertEqual(res, 'I')
+    
+    def test_convertTwo(self):
+        res = self.c.convert(2)
+        self.assertEqual(res, 'II')
+    
+    def test_convertThree(self):
+        res = self.c.convert(3)
+        self.assertEqual(res, 'III')
+
+    def test_convertFour(self):
+        res = self.c.convert(4)
+        self.assertEqual(res, 'IV')
+
+    def test_convertFive(self):
+        res = self.c.convert(5)
+        self.assertEqual(res, 'V')
+
+    def test_convertNine(self):
+        res = self.c.convert(9)
+        self.assertEqual(res, 'IX')
+
+    def test_convertTen(self):
+        res = self.c.convert(10)
+        self.assertEqual(res, 'X')
+
+    def test_convertTwentyTwo(self):
+        res = self.c.convert(21)
+        self.assertEqual(res, 'XXI')
+
+    def test_convertFifty(self):
+        res = self.c.convert(50)
+        self.assertEqual(res, 'L')
+
+    def test_convertHundred(self):
+        res = self.c.convert(100)
+        self.assertEqual(res, 'C')
+
+    def test_convertFiveHundred(self):
+        res = self.c.convert(500)
+        self.assertEqual(res, 'D')
+
+    def test_convertThousand(self):
+        res = self.c.convert(1000)
+        self.assertEqual(res, 'M')
+    
+    def test_convertFourDigit(self):
+        res = self.c.convert(1111)
+        self.assertEqual(res, 'MCXI')
+
+    def test_convertNintyNine(self):
+        res = self.c.convert(99)
+        self.assertEqual(res, 'XCIX')
+
+    def test_convertZero(self):
+        res = self.c.convert(0)
+        self.assertEqual(res, 'Es gibt keine römische Null')
+
+    def test_convertFourty(self):
+        res = self.c.convert(40)
+        self.assertEqual(res, 'XL')
+
+    def test_convertString(self):
+        res = self.c.convert('HUIHIN')
+        self.assertEqual(res, "Bitte ganze Zahlen eingeben")
+
+    def test_convertFloat(self):
+        res = self.c.convert(4.3)
+        self.assertEqual(res, "Bitte ganze Zahlen eingeben")
+
+    def test_convertNegative(self):
+        res = self.c.convert(-4)
+        self.assertEqual(res, "Es sind nur positive Zahlen zum konvertieren erlaubt")
+
+    def test_convertYear(self):
+        res = self.c.convert(2025)
+        self.assertEqual(res, "MMXXV")
+
+    def test_convertSign(self):
+        res = self.c.convert('!')
+        self.assertEqual(res, "Bitte ganze Zahlen eingeben")
+
+    def test_convertMultipleNum(self):
+        res = self.c.convert('4, 3')
+        self.assertEqual(res, "Bitte nur eine ganze Zahl eingeben")
+
+    def test_convertHighNum(self):
+        res = self.c.convert(4000)
+        self.assertEqual(res, "MMMM")
+
+    def test_convertThirty(self):
+        res = self.c.convert(30)
+        self.assertEqual(res, "XXX")
+
+    def test_convertNinety(self):
+        res = self.c.convert(90)
+        self.assertEqual(res, "XC")
+
+    def test_convertEmpty(self):
+        res = self.c.convert('')
+        self.assertEqual(res, "Bitte ganze Zahlen eingeben")
+
+    
+
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/muhamed_directory/other/hatice/__pycache__/converter.cpython-311.pyc b/muhamed_directory/other/hatice/__pycache__/converter.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..4f84ad4ae027f6ae2c09c923699dc5e41872ad4a
Binary files /dev/null and b/muhamed_directory/other/hatice/__pycache__/converter.cpython-311.pyc differ
diff --git a/muhamed_directory/other/hatice/calculator.py b/muhamed_directory/other/hatice/calculator.py
new file mode 100644
index 0000000000000000000000000000000000000000..79532fcf5edde813fe1f73aa5077023520b017f2
--- /dev/null
+++ b/muhamed_directory/other/hatice/calculator.py
@@ -0,0 +1,13 @@
+import unittest
+
+class Calculator:
+    def add(self, a, b):
+        return a + b
+
+class TestCalculator(unittest.TestCase):
+    def test_add(self):
+        c = Calculator()
+        self.assertEqual(c.add(2,3), 5)
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file
diff --git a/muhamed_directory/other/hatice/converter.py b/muhamed_directory/other/hatice/converter.py
new file mode 100644
index 0000000000000000000000000000000000000000..0ef9bd00dc3c5f4bb6eec9d95b79aea454ffd3f8
--- /dev/null
+++ b/muhamed_directory/other/hatice/converter.py
@@ -0,0 +1,49 @@
+#Bei Eingabe von Zahlen, die in der Liste definiert sind, sollen römische Zhalen zurückgegeben werden.
+#Bei Eingabe von Zahlen, die nicht in der Liste definiert ist, soll ein "" ausgeben werden.
+
+import unittest
+from abc import ABC, abstractmethod
+
+class IRomanNumber(ABC):
+    @abstractmethod
+    def convert(self, n:int) -> str:
+        pass
+
+class RomanNumber(IRomanNumber):
+    def convert(self, n: int) -> str:
+        roman_numerals = {
+            1: "I",  2: "II", 3: "III", 
+            4: "IV",  5: "V", 9: "IX", 
+            21: "XXI",  50: "L", 100: "C",
+            500: "D",  1000: "M" 
+        }
+        return roman_numerals.get(n, "")
+
+class TestRomanConverter(unittest.TestCase):
+    def setUp(self):
+        self.converter = RomanNumber()
+
+    def test_single_value(self):
+        self.assertEqual(self.converter.convert(1), "I")
+        self.assertEqual(self.converter.convert(2), "II")
+        self.assertEqual(self.converter.convert(3), "III")
+        self.assertEqual(self.converter.convert(4), "IV")
+        self.assertEqual(self.converter.convert(5), "V")
+        self.assertEqual(self.converter.convert(9), "IX")
+        self.assertEqual(self.converter.convert(21), "XXI")
+        self.assertEqual(self.converter.convert(50), "L")
+        self.assertEqual(self.converter.convert(100), "C")
+        self.assertEqual(self.converter.convert(500), "D")
+        self.assertEqual(self.converter.convert(1000), "M")
+    
+    def test_inivalid_numbers(self):
+        self.assertEqual(self.converter.convert(6), "")
+        self.assertEqual(self.converter.convert(99), "")
+        self.assertEqual(self.converter.convert(-1), "")
+        
+
+
+
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/muhamed_directory/other/hatice/counter.py b/muhamed_directory/other/hatice/counter.py
new file mode 100644
index 0000000000000000000000000000000000000000..f6ee3bb865d651fd9c93a7faa2daf9851732b86e
--- /dev/null
+++ b/muhamed_directory/other/hatice/counter.py
@@ -0,0 +1,35 @@
+#Bei Einhabe des Strings "Decker" liefert die Funktion 3
+#Bei Eingabe eines leeren Strings soll 0 ausgegeben werden
+#Bei Eingabe des Strings "Hallo" ohne E und D soll 0 ausgegeben werden
+
+from abc import ABC,abstractmethod
+import unittest
+
+class ICounter (ABC):
+    @abstractmethod
+    def count_ED(self,s):
+        pass
+
+class Counter (ICounter):
+    #def count_ED(self,s):
+    #return s.count("e")+s.count("D")
+    pass
+
+class TestCounter (unittest.TestCase):
+    def test_count_ED_regular (self):
+        c=Counter()
+        res=c.count_ED ("Decker")
+        self.assertEqual(res,3)
+    def test_count_ED_empty (self):
+        c=Counter()
+        res=c.count_ED ("")
+        self.assertEqual(res,0)
+    def test_count_ED_wo (self):
+        '''Testet einen String ohne E und D'''
+        c=Counter()
+        res=c.count_ED ("Hallo")
+        self.assertEqual(res,0)
+    
+
+if __name__=="__main__":
+    unittest.main()
diff --git a/muhamed_directory/other/hatice/test.py b/muhamed_directory/other/hatice/test.py
new file mode 100644
index 0000000000000000000000000000000000000000..d40dcf92e86fa7d9cc3fa3f3309aa5d30b9a311e
--- /dev/null
+++ b/muhamed_directory/other/hatice/test.py
@@ -0,0 +1,5 @@
+#Meine Übung, um es zu verstehen!
+class Employee:
+    def __init__(self, name, age):
+        self.name = name
+        self.age = age
\ No newline at end of file
diff --git a/muhamed_directory/other/lasse/Test.py b/muhamed_directory/other/lasse/Test.py
new file mode 100644
index 0000000000000000000000000000000000000000..903e6d75502eb48a50b99ba6c5a6ba3d97140231
--- /dev/null
+++ b/muhamed_directory/other/lasse/Test.py
@@ -0,0 +1,2 @@
+print("Hello WORLD")
+print("test")
\ No newline at end of file
diff --git a/muhamed_directory/other/lasse/calculator.py b/muhamed_directory/other/lasse/calculator.py
new file mode 100644
index 0000000000000000000000000000000000000000..e799761a891c6add0f8c76442f7d6d523992d0e0
--- /dev/null
+++ b/muhamed_directory/other/lasse/calculator.py
@@ -0,0 +1,29 @@
+#Test1: Addition 2 positiver Zaheln (2+5) erwartetes Ergebnis 8
+#Test2: Addition negativer und positiver Zahl (-1+1) erwartetes Ergebnis 0
+#Test3: Addition (0+0), erwartetes Ergebnis 0
+#Test4: Addition von 2 Dezimalzahlen (2,5+3,5), erwartetes Ergebnis 6
+
+from abc import ABC, abstractmethod
+class ICalculator(ABC):
+    @abstractmethod
+    def add(self, a: float, b: float) -> float:
+        pass
+
+class Calculator(ICalculator):
+    def add(self, a: float, b: float) -> float:
+        return a + b
+
+class TestCalculator:
+    def __init__(self, calculator: ICalculator):
+        self.calculator = calculator
+    def test_add(self):
+        assert self.calculator.add(2,3) == 5, "Fehler falls nicht 5"
+        assert self.calculator.add(-1,1) == 0, "Fegler falls nich 0"
+        assert self.calculator.add(0,0) == 0, "Fehler falls nicht 0"
+        assert self.calculator.add(2.5,3.5) == 6, "Fehler falls nicht 5"
+        print("Test erfolgreich")
+
+if __name__ == "__main__":
+    calc = Calculator()
+    tester = TestCalculator(calc)
+    tester.test_add()
diff --git a/muhamed_directory/other/lasse/counter.py b/muhamed_directory/other/lasse/counter.py
new file mode 100644
index 0000000000000000000000000000000000000000..00cf9c02e9829bf00319ee1547bfdd28a6018193
--- /dev/null
+++ b/muhamed_directory/other/lasse/counter.py
@@ -0,0 +1,48 @@
+#Bei Eingabe des Strings "Decker" liefert die Funktion 3
+#Bei Eingabe eines leeren Stings soll 0 augegeben werden
+#Bei Eingabe des Strings "Hallo" ohne E und D soll 0 ausgegeben werden
+#Bei Eingabe von dem String "Der Esel" soll Groß-Kleinschreibung (Caseinsensitive) gezählt werden. das Ergebnis ist 4
+#Bei Eingabe des Buchstaben D oder E soll 1 ausgegeben werden
+
+from abc import ABC,abstractmethod
+import unittest
+
+class ICounter (ABC):
+    @abstractmethod
+    def count_ED(self,s):
+        pass
+
+class Counter (ICounter):
+    def count_ED(self, s):
+        s=s.upper()
+        return s.count("D")+s.count("E")
+        
+class TestCounter (unittest.TestCase):
+    def setUp(self):
+        self.c=Counter()
+    def test_count_ED_regular (self):
+        res=self.c.count_ED ("Decker")
+        self.assertEqual(res,3)
+    def test_count_ED_empty (self):
+        res=self.c.count_ED ("")
+        self.assertEqual(res,0)
+    def test_count_ED_wo (self):
+        '''Testet einen String ohne E und D'''
+        res=self.c.count_ED ("Hallo")
+        self.assertEqual(res,0)
+    def test_count_ED_case_insensitive (self):
+        '''Testet verschiedene Groß- und Kleinschreibungen'''
+        res=self.c.count_ED ("Der Esel")
+        self.assertEqual(res,4) 
+    def test_count_ED_single_letetr (self):
+        '''Testet Eingaben mit nur einem Buchstaben'''
+        res=self.c.count_ED ('D')
+        self.assertEqual(res,1) 
+        res=self.c.count_ED ('E')
+        self.assertEqual (res,1)
+        res=self.c.count_ED ('d')
+        self.assertEqual(res,1) 
+        res=self.c.count_ED ('e')
+        self.assertEqual (res,1)
+if __name__=="__main__":
+    unittest.main()
\ No newline at end of file
diff --git a/muhamed_directory/other/lasse/interfaces.py b/muhamed_directory/other/lasse/interfaces.py
new file mode 100644
index 0000000000000000000000000000000000000000..fc645736ebe7edf2091db66c3738825f50fd923f
--- /dev/null
+++ b/muhamed_directory/other/lasse/interfaces.py
@@ -0,0 +1,6 @@
+from abc import ABC, abstractmethod
+
+class IRomanNumerals(ABC):
+    @abstractmethod
+    def to_roman(self, num):
+        pass
\ No newline at end of file
diff --git a/muhamed_directory/other/lasse/main.py b/muhamed_directory/other/lasse/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/muhamed_directory/other/lasse/romannumerals.py b/muhamed_directory/other/lasse/romannumerals.py
new file mode 100644
index 0000000000000000000000000000000000000000..3f3eaf1e8e956ca023c64ae71e38caefb1198940
--- /dev/null
+++ b/muhamed_directory/other/lasse/romannumerals.py
@@ -0,0 +1,23 @@
+from src.interfaces import IRomanNumerals
+
+
+class RomanNumerals(IRomanNumerals):
+    def to_roman(self, num):
+        if not isinstance(num, int):
+            raise ValueError("Eingabe muss eine ganze Zahl sein")
+        if num <= 0 or num >= 4000:
+            raise ValueError("Zahl muss zwischen 1 und 3999 liegen")
+
+        val = [
+            (1000, "M"), (900, "CM"), (500, "D"), (400, "CD"),
+            (100, "C"), (90, "XC"), (50, "L"), (40, "XL"),
+            (10, "X"), (9, "IX"), (5, "V"), (4, "IV"),
+            (1, "I")
+        ]
+
+        result = ""
+        for (value, numeral) in val:
+            while num >= value:
+                result += numeral
+                num -= value
+        return result
\ No newline at end of file
diff --git a/muhamed_directory/other/lasse/test_romannumerals.py b/muhamed_directory/other/lasse/test_romannumerals.py
new file mode 100644
index 0000000000000000000000000000000000000000..9a774cc92787102f3ef685b0c6a80138e5bbcedf
--- /dev/null
+++ b/muhamed_directory/other/lasse/test_romannumerals.py
@@ -0,0 +1,108 @@
+# Basisfälle
+# Bei Eingabe der Zahl 1, erhalte ich das Ergebnis I
+# Bei Eingabe der Zahl 5, erhalte ich das Ergebnis V
+# Bei Eingabe der Zahl 10, erhalte ich das Ergebnis X
+# Bei Eingabe der Zahl 50, erhalte ich das Ergebnis L
+# Bei Eingabe der Zahl 100, erhalte ich das Ergebnis C
+# Bei Eingabe der Zahl 500, erhalte ich das Ergebnis D
+# Bei Eingabe der Zahl 1000, erhalte ich das Ergebnis M
+# Substraktionsregel
+# Bei Eingabe der Zahl 4, erhalte ich das Ergebnis IV
+# Bei Eingabe der Zahl 9, erhalte ich das Ergebnis IX
+# Bei Eingabe der Zahl 40, erhalte ich das Ergebnis XL
+# Bei Eingabe der Zahl 90, erhalte ich das Ergebnis XC
+# Bei Eingabe der Zahl 400, erhalte ich das Ergebnis CD
+# Bei Eingabe der Zahl 900, erhalte ich das Ergebnis CM
+# Additionsregel
+# Bei Eingabe der Zahl 2 erhalte ich das Ergebnis "II"
+# Bei Eingabe der Zahl 3 erhalte ich das Ergebnis "III"
+# Bei Eingabe der Zahl 6 erhalte ich das Ergebnis "VI"
+# Bei Eingabe der Zahl 8 erhalte ich das Ergebnis "VIII"
+# Bei Eingabe der Zahl 30 erhalte ich das Ergebnis "XXX"
+# Bei Eingabe der Zahl 80 erhalte ich das Ergebnis "LXXX"
+# Kombination aus Addition und Subtraktion
+# Bei Eingabe der Zahl 14 erhalte ich das Ergebnis "XIV"
+# Bei Eingabe der Zahl 19 erhalte ich das Ergebnis "XIX"
+# Bei Eingabe der Zahl 29 erhalte ich das Ergebnis "XXIX"
+# Bei Eingabe der Zahl 44 erhalte ich das Ergebnis "XLIV"
+# Bei Eingabe der Zahl 99 erhalte ich das Ergebnis "XCIX"
+# Bei Eingabe der Zahl 444 erhalte ich das Ergebnis "CDXLIV"
+# Bei Eingabe der Zahl 999 erhalte ich das Ergebnis "CMXCIX"
+# Größere Zahlen
+# Bei Eingabe der Zahl 1001 erhalte ich das Ergebnis "MI"
+# Bei Eingabe der Zahl 1987 erhalte ich das Ergebnis "MCMLXXXVII"
+# Bei Eingabe der Zahl 2023 erhalte ich das Ergebnis "MMXXIII"
+# Bei Eingabe der Zahl 3999 erhalte ich das Ergebnis "MMMCMXCIX"
+# Fehlerfälle
+# Bei Eingabe der Zahl 0 erhalte ich eine Fehlermeldung
+# Bei Eingabe der Zahl -1 erhalte ich eine Fehlermeldung
+# Bei Eingabe der Zahl 4000 erhalte ich eine Fehlermeldung
+# Bei Eingabe der Zeichenfolge "ABC" erhalte ich eine Fehlermeldung
+# Bei Eingabe von None erhalte ich eine Fehlermeldung
+# Bei Eingabe der Zahl 3.14 erhalte ich eine Fehlermeldung
+
+import unittest
+from src.romannumerals import RomanNumerals
+
+
+class TestRomanNumerals(unittest.TestCase):
+    def setUp(self):
+        self.converter = RomanNumerals()
+
+    def test_to_roman_basic(self):
+        self.assertEqual(self.converter.to_roman(1), "I")
+        self.assertEqual(self.converter.to_roman(5), "V")
+        self.assertEqual(self.converter.to_roman(10), "X")
+        self.assertEqual(self.converter.to_roman(50), "L")
+        self.assertEqual(self.converter.to_roman(100), "C")
+        self.assertEqual(self.converter.to_roman(500), "D")
+        self.assertEqual(self.converter.to_roman(1000), "M")
+
+    def test_to_roman_subtraction(self):
+        self.assertEqual(self.converter.to_roman(4), "IV")
+        self.assertEqual(self.converter.to_roman(9), "IX")
+        self.assertEqual(self.converter.to_roman(40), "XL")
+        self.assertEqual(self.converter.to_roman(90), "XC")
+        self.assertEqual(self.converter.to_roman(400), "CD")
+        self.assertEqual(self.converter.to_roman(900), "CM")
+
+    def test_to_roman_addition(self):
+        self.assertEqual(self.converter.to_roman(2), "II")
+        self.assertEqual(self.converter.to_roman(3), "III")
+        self.assertEqual(self.converter.to_roman(6), "VI")
+        self.assertEqual(self.converter.to_roman(8), "VIII")
+        self.assertEqual(self.converter.to_roman(30), "XXX")
+        self.assertEqual(self.converter.to_roman(80), "LXXX")
+
+    def test_to_roman_mixed(self):
+        self.assertEqual(self.converter.to_roman(14), "XIV")
+        self.assertEqual(self.converter.to_roman(19), "XIX")
+        self.assertEqual(self.converter.to_roman(29), "XXIX")
+        self.assertEqual(self.converter.to_roman(44), "XLIV")
+        self.assertEqual(self.converter.to_roman(99), "XCIX")
+        self.assertEqual(self.converter.to_roman(444), "CDXLIV")
+        self.assertEqual(self.converter.to_roman(999), "CMXCIX")
+
+    def test_to_roman_large_numbers(self):
+        self.assertEqual(self.converter.to_roman(1001), "MI")
+        self.assertEqual(self.converter.to_roman(1987), "MCMLXXXVII")
+        self.assertEqual(self.converter.to_roman(2023), "MMXXIII")
+        self.assertEqual(self.converter.to_roman(3999), "MMMCMXCIX")
+
+    def test_to_roman_invalid(self):
+        with self.assertRaises(ValueError):
+            self.converter.to_roman(0)
+        with self.assertRaises(ValueError):
+            self.converter.to_roman(-1)
+        with self.assertRaises(ValueError):
+            self.converter.to_roman(4000)
+        with self.assertRaises(ValueError):
+            self.converter.to_roman("ABC")
+        with self.assertRaises(ValueError):
+            self.converter.to_roman(None)
+        with self.assertRaises(ValueError):
+            self.converter.to_roman(3.14)
+
+
+if __name__ == "__main__":
+    unittest.main()
\ No newline at end of file
diff --git a/muhamed_directory/other/orlando/RomanConverter.py b/muhamed_directory/other/orlando/RomanConverter.py
new file mode 100644
index 0000000000000000000000000000000000000000..0af044bf86763d59f9238708be92acaac2e092a8
--- /dev/null
+++ b/muhamed_directory/other/orlando/RomanConverter.py
@@ -0,0 +1,55 @@
+
+
+
+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 IRomanConverter(ABC):
+    @abstractmethod
+    def roman_to_int(self, s: str) -> int:
+        """Konvertiert eine römische Zahl (String) in eine Dezimalzahl."""
+        pass
+ 
+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/muhamed_directory/other/orlando/TestCount_ED.py b/muhamed_directory/other/orlando/TestCount_ED.py
new file mode 100644
index 0000000000000000000000000000000000000000..152bccd1cb4dff5df43c1c368fea2de123bfc632
--- /dev/null
+++ b/muhamed_directory/other/orlando/TestCount_ED.py
@@ -0,0 +1,34 @@
+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/muhamed_directory/other/orlando/__init__.py b/muhamed_directory/other/orlando/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/muhamed_directory/other/orlando/__pycache__/RomanConverter.cpython-311.pyc b/muhamed_directory/other/orlando/__pycache__/RomanConverter.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..78e04a25dbea7b2bc1b1abf5f51c568432e01f84
Binary files /dev/null and b/muhamed_directory/other/orlando/__pycache__/RomanConverter.cpython-311.pyc differ
diff --git a/muhamed_directory/other/orlando/__pycache__/__init__.cpython-311.pyc b/muhamed_directory/other/orlando/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..456506eeb2e840d1aa8b7835d806ade181909483
Binary files /dev/null and b/muhamed_directory/other/orlando/__pycache__/__init__.cpython-311.pyc differ
diff --git a/muhamed_directory/other/orlando/interfaces.py b/muhamed_directory/other/orlando/interfaces.py
new file mode 100644
index 0000000000000000000000000000000000000000..be069d6d910a5d5c44d8c083ec4429cfaac516b6
--- /dev/null
+++ b/muhamed_directory/other/orlando/interfaces.py
@@ -0,0 +1,30 @@
+from abc import ABC, abstractmethod
+
+# Definition des Interfaces für den StringCalculator
+class IStringCalculator(ABC):
+    @abstractmethod
+    def add(self, numbers: str) -> int:
+        """
+        Addiert beliebig viele Zahlen, die durch Kommas getrennt sind.
+        Leere oder nur aus Leerzeichen bestehende Einträge werden ignoriert.
+
+        :param numbers: String mit Zahlen (z.B. "1,2,3")
+        :return: Summe der Zahlen als int
+        """
+        pass
+
+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/muhamed_directory/other/orlando/test_calculator.py b/muhamed_directory/other/orlando/test_calculator.py
new file mode 100644
index 0000000000000000000000000000000000000000..a0c79315eb48c048e5a191db3037f095771d70a9
--- /dev/null
+++ b/muhamed_directory/other/orlando/test_calculator.py
@@ -0,0 +1,103 @@
+# 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/muhamed_directory/other/orlando/test_roman.py b/muhamed_directory/other/orlando/test_roman.py
new file mode 100644
index 0000000000000000000000000000000000000000..30cbabf8e6517f5fdcb4741df4389df09b0d3817
--- /dev/null
+++ b/muhamed_directory/other/orlando/test_roman.py
@@ -0,0 +1,66 @@
+# Testfälle roman_to_int, str -> int
+
+# 1. Einzelne römische Ziffern
+# Eingabe: "I" → Erwartete Ausgabe: 1
+# Eingabe: "V" → Erwartete Ausgabe: 5
+# Eingabe: "X" → Erwartete Ausgabe: 10
+# Eingabe: "L" → Erwartete Ausgabe: 50
+# Eingabe: "C" → Erwartete Ausgabe: 100
+# Eingabe: "D" → Erwartete Ausgabe: 500
+# Eingabe: "M" → Erwartete Ausgabe: 1000
+
+#2. Mehrere gleiche Ziffern hintereinander (einfache Addition)
+# Eingabe: "II" → Erwartete Ausgabe: 2
+# Eingabe: "XX" → Erwartete Ausgabe: 20
+# Eingabe: "CC" → Erwartete Ausgabe: 200
+# Eingabe: "MM" → Erwartete Ausgabe: 2000
+
+#3. Subtraktive Notation
+# Eingabe: "IV" → Erwartete Ausgabe: 4
+# Eingabe: "IX" → Erwartete Ausgabe: 9
+# Eingabe: "XL" → Erwartete Ausgabe: 40
+# Eingabe: "XC" → Erwartete Ausgabe: 90
+# Eingabe: "CD" → Erwartete Ausgabe: 400
+# Eingabe: "CM" → Erwartete Ausgabe: 900
+
+#4. Komplexe Zahlen
+# Eingabe: "MCMXCIV" → Erwartete Ausgabe: 1994
+#Eingabe: "XIV" → Erwartete Ausgabe: 14
+#Eingabe: "CDXLIV" → Erwartete Ausgabe: 444
+
+
+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()
+
+    def test_single_digits(self):
+        self.assertEqual(self.converter.roman_to_int("I"), 1)
+        self.assertEqual(self.converter.roman_to_int("V"), 5)
+        self.assertEqual(self.converter.roman_to_int("X"), 10)
+
+    def test_multiple_digits(self):
+        self.assertEqual(self.converter.roman_to_int("II"), 2)
+        self.assertEqual(self.converter.roman_to_int("XX"), 20)
+        self.assertEqual(self.converter.roman_to_int("VI"), 6)
+
+    def test_subtractive_notation(self):
+        self.assertEqual(self.converter.roman_to_int("IV"), 4)
+        self.assertEqual(self.converter.roman_to_int("IX"), 9)
+        self.assertEqual(self.converter.roman_to_int("XL"), 40)
+        self.assertEqual(self.converter.roman_to_int("XC"), 90)
+
+    def test_complex_numbers(self):
+        self.assertEqual(self.converter.roman_to_int("MCMXCIV"), 1994)
+        self.assertEqual(self.converter.roman_to_int("CDXLIV"), 444)
+
+if __name__ == "__main__":
+    unittest.main()
\ No newline at end of file
diff --git a/muhamed_directory/other/orlando/test_string_calculator.py b/muhamed_directory/other/orlando/test_string_calculator.py
new file mode 100644
index 0000000000000000000000000000000000000000..b9420c04783cbe6fe8d8c40d0caea43d541e054e
--- /dev/null
+++ b/muhamed_directory/other/orlando/test_string_calculator.py
@@ -0,0 +1,113 @@
+# Testfälle add(numbers: str) -> int – StringCalculator
+
+# 1. Leerer String
+# Eingabe: "" → Erwartete Ausgabe: 0
+
+# 2. Einzelne Zahl
+# Eingabe: "1" → Erwartete Ausgabe: 1
+
+# 3. Zwei Zahlen, getrennt durch Komma
+# Eingabe: "1,2" → Erwartete Ausgabe: 3
+
+# 4. Mehr als zwei Zahlen (beliebig viele erlaubt)
+# Eingabe: "1,2,3" → Erwartete Ausgabe: 6
+# Eingabe: "1,2,3,4,5" → Erwartete Ausgabe: 15
+
+# 5. Leere Einträge ignorieren
+# Eingabe: "1,,2" → Erwartete Ausgabe: 3
+# Eingabe: "1, ,2" → Erwartete Ausgabe: 3
+# Eingabe: ",,1,,2,,," → Erwartete Ausgabe: 3
+
+# 6. Zeilenumbrüche als Trennzeichen erlauben
+# Eingabe: "1\n2,3" → Erwartete Ausgabe: 6
+# Eingabe: "1,2\n3" → Erwartete Ausgabe: 6
+# Eingabe: "1\n2\n3" → Erwartete Ausgabe: 6
+
+# 8. Negative Zahlen → Exception mit allen negativen Werten
+# Eingabe: "1,-2" → Exception mit Message "negatives not allowed: -2"
+# Eingabe: "-1,-2,3" → Exception mit Message "negatives not allowed: -1, -2"
+
+# 9. Benutzerdefinierter Delimiter über Präfix: "//<delimiter>\n"
+# Eingabe: "//;\n1;2" → 3
+# Eingabe: "//|\n4|5|6" → 15
+# Eingabe: "//_\n7_8_9" → 24
+
+# 10. Zahlen größer als 1000 ignorieren
+# Eingabe: "2,1001" → 2
+# Eingabe: "1000,1" → 1001 (1000 zählt noch mit)
+# Eingabe: "1234,1001,3" → 3
+
+# 11. Delimiter mit beliebiger Länge (Format: //[delimiter]\n)
+# Eingabe: "//[***]\n1***2***3" → 6
+# Eingabe: "//[abc]\n4abc5abc6" → 15
+# Eingabe: "//[+]\n1+2+3" → 6
+
+import unittest
+from src.string_calculator import StringCalculator
+
+class TestStringCalculator(unittest.TestCase):
+    def setUp(self):
+        # Vor jedem Test wird eine Instanz des Calculators erstellt
+        self.calc = StringCalculator()
+
+    def test_add_empty_string(self):
+        # Leerer String → 0
+        self.assertEqual(self.calc.add(""), 0)
+
+    def test_add_single_number(self):
+        # Ein einzelner Wert → int
+        self.assertEqual(self.calc.add("1"), 1)
+
+    def test_add_two_numbers(self):
+        # Zwei Zahlen → Summe
+        self.assertEqual(self.calc.add("1,2"), 3)
+
+    def test_add_multiple_numbers(self):
+        # Mehr als zwei Zahlen → Summe
+        self.assertEqual(self.calc.add("1,2,3"), 6)
+        self.assertEqual(self.calc.add("1,2,3,4,5"), 15)
+
+    def test_add_ignores_empty_entries(self):
+        # Leere Einträge ignorieren → Summe
+        self.assertEqual(self.calc.add("1,,2"), 3)
+        self.assertEqual(self.calc.add("1, ,2"), 3)
+        self.assertEqual(self.calc.add(",,1,,2,,,"), 3)
+
+    def test_add_with_newlines_between_numbers(self):
+        # Zeilenumbrüche als Trennzeichen erlauben → Summe
+        self.assertEqual(self.calc.add("1\n2,3"), 6)
+        self.assertEqual(self.calc.add("1,2\n3"), 6)
+        self.assertEqual(self.calc.add("1\n2\n3"), 6)
+
+    def test_add_raises_exception_on_negative_number(self):
+        # Negative Zahlen → Exception mit allen negativen Werten
+        with self.assertRaises(ValueError) as context:
+            self.calc.add("1,-2")
+        self.assertIn("negatives not allowed: -2", str(context.exception))
+
+    def test_add_raises_exception_on_multiple_negatives(self):
+        # Negative Zahlen → Exception mit allen negativen Werten
+        with self.assertRaises(ValueError) as context:
+            self.calc.add("-1,-2,3")
+        self.assertIn("negatives not allowed: -1, -2", str(context.exception))
+
+    def test_add_with_custom_delimiter(self):
+        # Benutzerdefinierter Delimiter über Präfix: "//<delimiter>\n"
+        self.assertEqual(self.calc.add("//;\n1;2"), 3)
+        self.assertEqual(self.calc.add("//|\n4|5|6"), 15)
+        self.assertEqual(self.calc.add("//_\n7_8_9"), 24)
+
+    def test_add_ignores_numbers_greater_than_1000(self):
+        # Zahlen größer als 1000 ignorieren
+        self.assertEqual(self.calc.add("2,1001"), 2)
+        self.assertEqual(self.calc.add("1000,1"), 1001)
+        self.assertEqual(self.calc.add("1234,1001,3"), 3)
+
+    def test_add_with_multi_char_delimiter(self):
+        # Delimiter mit beliebiger Länge (Format: //[delimiter]\n)
+        self.assertEqual(self.calc.add("//[***]\n1***2***3"), 6)
+        self.assertEqual(self.calc.add("//[abc]\n4abc5abc6"), 15)
+        self.assertEqual(self.calc.add("//[+]\n1+2+3"), 6)
+
+if __name__ == "__main__":
+    unittest.main()
\ No newline at end of file
diff --git a/muhamed_directory/other/wasili/TDD_Converter.py b/muhamed_directory/other/wasili/TDD_Converter.py
new file mode 100644
index 0000000000000000000000000000000000000000..36a051802d037c50673356e39ecbde3b67a57589
--- /dev/null
+++ b/muhamed_directory/other/wasili/TDD_Converter.py
@@ -0,0 +1,51 @@
+import unittest
+from abc import ABC, abstractmethod
+
+#Interface für Counter
+class IRomanNumber(ABC):
+    @abstractmethod
+    def convert_int_to_str(self, n: int) -> str:
+        pass
+
+# Implementierung Converter Klasse
+class RomanNumber(IRomanNumber):
+    def convert_int_to_str(self, n: int) -> str:
+
+        #Eingabe anders als int
+        if not isinstance(n, int):
+            return "Fehler: Bitte Zahl eingeben"
+        
+        #Int Eingabe kleiner gleich 0
+        if n <= 0:
+            return "Integer muss größer als 0 sein"
+
+        # Bekannte Werte umwandeln
+        roman_convert = {1: "I", 21: "XXI", 1000: "M"}
+        return roman_convert.get(n)
+        
+# Testklasse (TestConverter)
+class TestRomanNumber (unittest.TestCase):
+    def setUp(self):
+        self.r = RomanNumber()
+
+    def test_convert_1(self):
+        self.assertEqual(self.r.convert_int_to_str(1), "I")
+
+    def test_convert_21(self):
+        self.assertEqual(self.r.convert_int_to_str(21), "XXI")
+
+    def test_convert_empty(self):
+        self.assertEqual(self.r.convert_int_to_str(None), "Fehler: Bitte Zahl eingeben")
+
+    def test_convert_string(self):
+        self.assertEqual(self.r.convert_int_to_str("Hello"), "Fehler: Bitte Zahl eingeben")
+
+    def test_convert_downzero(self):
+        self.assertEqual(self.r.convert_int_to_str(-5), "Integer muss größer als 0 sein")
+
+    def test_convert_downzero(self):
+        self.assertEqual(self.r.convert_int_to_str(1000), "M")
+
+if __name__ == "__main__":
+    unittest.main()
+
diff --git a/muhamed_directory/other/wasili/Testszenarios.txt b/muhamed_directory/other/wasili/Testszenarios.txt
new file mode 100644
index 0000000000000000000000000000000000000000..13205631d9ce736941534febbec3841f825f9da9
--- /dev/null
+++ b/muhamed_directory/other/wasili/Testszenarios.txt
@@ -0,0 +1,7 @@
+Convert int to str (römische Zahlen BSP):
+-Bei Eingabe des integers 1 liefert die Funktion I
+-Bei Eingabe des integers 21 liefert die Funktion XXI
+-Bei Eingabe eines leeren integers soll "Fehler: Bitte Zahl eingeben" rauskommen
+-Bei Eingabe eines strings "Hello" soll "Fehler: Bitte Zahl eingeben" rauskommen
+-Bei Eingabe eines des integers -5 soll "Integer muss größer als 0 sein" rauskommen
+-Bei Eingabe des integers 1000 liefert die Funktion "M"
diff --git a/muhamed_directory/other/wasili/__pycache__/TDD_Converter.cpython-311.pyc b/muhamed_directory/other/wasili/__pycache__/TDD_Converter.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..3cc6d13bf7a8ce4994dd7263ee9cf684d92090e5
Binary files /dev/null and b/muhamed_directory/other/wasili/__pycache__/TDD_Converter.cpython-311.pyc differ
diff --git a/report.md b/report.md
new file mode 100644
index 0000000000000000000000000000000000000000..fe36cee18fd4bf504a513b9034112db3bd9e8e5e
--- /dev/null
+++ b/report.md
@@ -0,0 +1,12 @@
+| Name                    | Interface break | Failed Testcases | Begründung                                                                                                                                         |
+|-------------------------|-----------------|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
+| Alma                    | yes             | all              | `TypeError`: Methode `convert()` fehlt der erwartete Parameter `n`. Interface nicht eingehalten.                                                  |
+| ich vs Alma Tests       | no              | none             | Einziger definierter Test in `test2converter.py` wurde bestanden.                                                                                  |
+| Daniel                  | yes             | all              | Die Tests rufen Converter.convert() als statische Methode auf, aber die convert-Methode aus Skript 1 ist eine Instanzmethode, die eine Objektinstanz (self) benötigt. Dieser falsche Aufruf verursacht bei jedem der 7 Tests einen TypeError, weil das erwartete self-Argument fehlt. |
+| Ich vs Daniel Tests     | no              | none             | 
+| Hatice                    | yes             | all              | TypeError: RomanNumber.convert() missing 1 required positional argument: 'n'                                                  |
+| ich vs Hatice Tests       | no              | 1             | FAIL: test_inivalid_numbers (__main__.TestRomanConverter.test_inivalid_numbers)                                                                                  |
+| Lasse                    | yes             | all              | TypeError: RomanNumerals.to_roman() missing 1 required positional argument: 'num'                                                  |
+| Wasili                    | yes             | all              | TypeError: RomanNumber.convert_int_to_str() missing 1 required positional argument: 'n'                                                  |
+| ich vs wasili Tests       | no              | 2            | TypeError: '>=' not supported between instances of 'str' and 'int')                                                                                  |
+| Orlando                    | yes             | all              | nicht umsätzbar                                                  |
\ No newline at end of file