From 2c06d96b79aeb4ceb224bd8764eeb8c2960edfd3 Mon Sep 17 00:00:00 2001 From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de> Date: Sun, 23 Mar 2025 17:46:42 +0100 Subject: [PATCH] =?UTF-8?q?F=C3=BCge=20converter.py=20zum=20Develop-Branch?= =?UTF-8?q?=20hinzu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- converter.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 converter.py diff --git a/converter.py b/converter.py new file mode 100644 index 0000000..b70c932 --- /dev/null +++ b/converter.py @@ -0,0 +1,42 @@ +# + +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") + + + + +if __name__ == "__main__": + unittest.main() -- GitLab