diff --git a/converter.py b/converter.py index d705b46e7cdd1fd66ce22bd72e88658f1879ff7e..6d6f0fbb5bc996c7a61398ba8d9912d058645077 100644 --- a/converter.py +++ b/converter.py @@ -14,7 +14,9 @@ # 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 +# 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 import unittest from abc import ABC, abstractmethod @@ -30,16 +32,25 @@ class Converter(IConverter): roman_str = '' + '''Wenn eine 0 eingegeben wird muss eine Exception folgen''' if num == 0: return "Es gibt keine römische Null" + + + if isinstance(num, int): + if num < 0: + return "Es sind nur positive Zahlen zum konvertieren erlaubt" + + for value, numeral in roman_numbers: - for value, numeral in roman_numbers: + while num >= value: + roman_str += numeral + num -= value - while num >= value: - roman_str += numeral - num -= value + return roman_str + else: + return "Bitte ganze Zahlen eingeben" - return roman_str class TestConverter(unittest.TestCase): def setUp(self): @@ -109,8 +120,9 @@ class TestConverter(unittest.TestCase): 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") if __name__ == "__main__": unittest.main()