diff --git a/others/Momo/MomoRomanConverter.py b/others/Momo/MomoRomanConverter.py new file mode 100644 index 0000000000000000000000000000000000000000..4d0841f9a87f5478f3cd6ad296479c24e24aa418 --- /dev/null +++ b/others/Momo/MomoRomanConverter.py @@ -0,0 +1,42 @@ +#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 +''' +import unittest +from src.romannumerals import RomanNumber +from src.interfaces import IRomanNumber + +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() + +#python -m unittest others.Momo.MomoRomanConverter -v \ No newline at end of file diff --git a/others/Momo/reportMomoImp.md b/others/Momo/reportMomoImp.md new file mode 100644 index 0000000000000000000000000000000000000000..875eee8abfee1223dfb714002952728f2f783df9 --- /dev/null +++ b/others/Momo/reportMomoImp.md @@ -0,0 +1,7 @@ +| Name | Interface break | Failed Testcases | | +|------|-----------------|---------------------------------------------------------------------------------|-----------------------------------------------------------------------| +| Momo | no | test_convert_addition (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'converter' | +| Momo | no | test_convert_invalid (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'converter' | +| Momo | no | test_convert_large_numbers (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'converter' | +| Momo | no | test_convert_mixed (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'converter' | +| Momo | no | test_convert_subtraction (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'converter' | \ No newline at end of file diff --git a/others/Momo/reportMomoTests.md b/others/Momo/reportMomoTests.md new file mode 100644 index 0000000000000000000000000000000000000000..92968fcaf94e45a066414454ebffe7aebac5f888 --- /dev/null +++ b/others/Momo/reportMomoTests.md @@ -0,0 +1,9 @@ +| Name | Interface break | Failed Testcases | | +|------|-----------------|-------------------------------------------------------------------------|------------------------------------------| +| Momo | no | test_1 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined | +| Momo | no | test_10 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined | +| Momo | no | test_100 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined | +| Momo | no | test_1000 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined | +| Momo | no | test_1999 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined | +| Momo | no | test_21 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined | +| Momo | no | test_50 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined | \ No newline at end of file diff --git a/tests/test_romannumerals.py b/tests/test_romannumerals.py index d0a09bfe8a87bfb8ebcc75fd8bf873fef085e46c..2ea7d7cec2447355acb497e5d1dae007a2c0fcca 100644 --- a/tests/test_romannumerals.py +++ b/tests/test_romannumerals.py @@ -55,19 +55,19 @@ from others.Dani.DaniRomanConverter import Converter, IConverter ''' import unittest -from others.Wasili.WasiliRomanConverter import RomanNumber, IRomanNumber +from others.Momo.MomoRomanConverter import convert class TestRomanNumber(unittest.TestCase): def setUp(self): - self.converter: IRomanNumber = RomanNumber + self.converter: convert() def test_convert_subtraction(self): - self.assertEqual(self.converter.convert_int_to_str(4), "IV") - self.assertEqual(self.converter.convert_int_to_str(9), "IX") - self.assertEqual(self.converter.convert_int_to_str(40), "XL") - self.assertEqual(self.converter.convert_int_to_str(90), "XC") - self.assertEqual(self.converter.convert_int_to_str(400), "CD") - self.assertEqual(self.converter.convert_int_to_str(900), "CM") + self.assertEqual(self.convert(4), "IV") + self.assertEqual(self.convert(9), "IX") + self.assertEqual(self.convert(40), "XL") + self.assertEqual(self.convert(90), "XC") + self.assertEqual(self.convert(400), "CD") + self.assertEqual(self.convert(900), "CM") def test_convert_addition(self): self.assertEqual(self.converter.convert(2), "II")