diff --git "a/Other/AliciMuhamed_1/Test_Converter_R\303\266mische_Zahlen.py" "b/Other/AliciMuhamed_1/Test_Converter_R\303\266mische_Zahlen.py" new file mode 100644 index 0000000000000000000000000000000000000000..d98f3422bc2a74e8201a16b6c5a433846eaf8e02 --- /dev/null +++ "b/Other/AliciMuhamed_1/Test_Converter_R\303\266mische_Zahlen.py" @@ -0,0 +1,36 @@ +#Test_Converter_Römische_Zahlen + +import unittest + +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 TestRomanConverter(unittest.TestCase): + def test_1(self): + self.assertEqual(convert(1), "I") # Erwartet "I" für 1 + + def test_10(self): + self.assertEqual(convert(10), "X") # Erwartet "X" für 10 + def test_21(self): + self.assertEqual(convert(21), "XXI") # Erwartet "XXI" für 21 + def test_50(self): + self.assertEqual(convert(50), "L") # Erwartet "L" für 50 + def test_100(self): + self.assertEqual(convert(100), "C") # Erwartet "C" für 100 + def test_1000(self): + self.assertEqual(convert(1000), "M") # Erwartet "M" für 1000 + def test_1999(self): + self.assertEqual(convert(1999), "MCMXCIX") #Erwartet "MCMXCIX" für 1999 + +if __name__ == "__main__": + unittest.main() \ No newline at end of file diff --git a/Other/AliciMuhamed_1/converter.py b/Other/AliciMuhamed_1/converter.py new file mode 100644 index 0000000000000000000000000000000000000000..0ef9bd00dc3c5f4bb6eec9d95b79aea454ffd3f8 --- /dev/null +++ b/Other/AliciMuhamed_1/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/Other/AliciMuhamed_1/my_converter.py b/Other/AliciMuhamed_1/my_converter.py new file mode 100644 index 0000000000000000000000000000000000000000..e83f699a2a13734e637cbbb0fb0ad6307e3528b7 --- /dev/null +++ b/Other/AliciMuhamed_1/my_converter.py @@ -0,0 +1,35 @@ +#Umsetzungen von AliciMuhamed auf meinen Testfälle + +import unittest + +from Test_Converter_Römische_Zahlen import RomanNumber as RomanNumber + + +class TestRomanConverter(unittest.TestCase): + def setUp(self): + self.converter = RomanNumber() + + def test_implements_interface(self): + self.assertIsInstance(self.converter, ...) + + 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/Other/AliciMuhamed_1/your_converter.py b/Other/AliciMuhamed_1/your_converter.py new file mode 100644 index 0000000000000000000000000000000000000000..3cd92f4d62c2546d45c4a38cce9b6d35f5048134 --- /dev/null +++ b/Other/AliciMuhamed_1/your_converter.py @@ -0,0 +1,23 @@ +import unittest + +from converter import RomanNumber as RomanNumber + +class TestRomanConverter(unittest.TestCase): + def test_1(self): + self.assertEqual(convert(1), "I") # Erwartet "I" für 1 + + def test_10(self): + self.assertEqual(convert(10), "X") # Erwartet "X" für 10 + def test_21(self): + self.assertEqual(convert(21), "XXI") # Erwartet "XXI" für 21 + def test_50(self): + self.assertEqual(convert(50), "L") # Erwartet "L" für 50 + def test_100(self): + self.assertEqual(convert(100), "C") # Erwartet "C" für 100 + def test_1000(self): + self.assertEqual(convert(1000), "M") # Erwartet "M" für 1000 + def test_1999(self): + self.assertEqual(convert(1999), "MCMXCIX") #Erwartet "MCMXCIX" für 1999 + +if __name__ == "__main__": + unittest.main() \ No newline at end of file diff --git a/Other/report.md b/Other/report.md new file mode 100644 index 0000000000000000000000000000000000000000..e3f3e1c908c950899f3b0408f5670e2531b78c1c --- /dev/null +++ b/Other/report.md @@ -0,0 +1,24 @@ +Meine Testfälle auf Implementierungen anderer Studierender: RomanNumberConverter + +| Name | Interface break | Failed Testcases | +|------------------|------------------|-------------------| +|AliciMuhamed | | | +|BerishaAlma | | | +|GotsisWasili | | | +|PikkemaatLasse | | | +|RafehDaniel | | | +|SerchimoMarvin | | | +|WeishauptOrlando | | | + +Testfälle anderer Studierender auf meine Implementierung: RomanNumberConverter + +| Name | Interface break | Failed Testcases | +|------------------|------------------|-------------------| +|AliciMuhamed | | | +|BerishaAlma | | | +|GotsisWasili | | | +|PikkemaatLasse | | | +|RafehDaniel | | | +|SerchimoMarvin | | | +|WeishauptOrlando | | | +