diff --git a/converter.py b/converter.py index 39548efeaea05889ef9d6b551023ff48cd39179d..8f6e01b8c5ccc3b1cdc389dbd82934dbd35e08a3 100644 --- a/converter.py +++ b/converter.py @@ -1,33 +1,50 @@ # 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 des Strings 'IV' soll 4 ausgegenen 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: + roman_numbers = [(1, 'I')] + + roman_str = '' + + for value, numeral in roman_numbers: + + while num >= value: + roman_str += numeral + num -= value + + return roman_str + +class TestConverter(unittest.TestCase): + def setUp(self): + self.c = Converter() + + def test_convertOne(self): + res = self.c.convert(1) + self.assertEqual(res, 'I') -# Bei Eingabe eines Strings statt Integer-Wert soll "Gebe eine Zahl ein" ausgegeben werden \ No newline at end of file +if __name__ == "__main__": + unittest.main()