#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()