From dd0b392a7840ae3673210616b04eddfcae5e7c1d Mon Sep 17 00:00:00 2001 From: linopino <lasse.pikkemaat@web.de> Date: Sun, 6 Apr 2025 17:01:10 +0200 Subject: [PATCH] Alma Code + Tests --- others/Alma/AlmaRomanConverter.py | 42 +++++++++++++++++++++++++++++++ others/Alma/reportAlmaImp.md | 7 ++++++ others/Alma/reportAlmaTests.md | 0 tests/test_romannumerals.py | 19 ++++++++------ 4 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 others/Alma/AlmaRomanConverter.py create mode 100644 others/Alma/reportAlmaImp.md create mode 100644 others/Alma/reportAlmaTests.md diff --git a/others/Alma/AlmaRomanConverter.py b/others/Alma/AlmaRomanConverter.py new file mode 100644 index 0000000..e5a434c --- /dev/null +++ b/others/Alma/AlmaRomanConverter.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 = { + 3: "III", 6: "VI", 8: "VIII", + 12: "XII", 17: "XVII", 29: "XXIX", + 34: "XXXIV", 55: "LV", 101: "CI", + 501: "DI", 1003: "MIII" + } + return roman_numerals.get(n, "") +''' +from src.romannumerals import RomanNumber +from src.interfaces import IRomanNumber + +class TestRomanConverter(unittest.TestCase): + def setUp(self): + self.converter = RomanNumber() + + def test_single_value(self): + self.assertEqual(self.converter.convert(3), "III") + self.assertEqual(self.converter.convert(6), "VI") + self.assertEqual(self.converter.convert(8), "VIII") + self.assertEqual(self.converter.convert(12), "XII") + self.assertEqual(self.converter.convert(17), "XVII") + self.assertEqual(self.converter.convert(29), "XXIX") + self.assertEqual(self.converter.convert(34), "XXXIV") + self.assertEqual(self.converter.convert(55), "LV") + self.assertEqual(self.converter.convert(101), "CI") + self.assertEqual(self.converter.convert(501), "DI") + self.assertEqual(self.converter.convert(1003), "MIII") + +if __name__ == "__main__": + unittest.main() + +#python -m unittest others.Alma.AlmaRomanConverter -v \ No newline at end of file diff --git a/others/Alma/reportAlmaImp.md b/others/Alma/reportAlmaImp.md new file mode 100644 index 0000000..a083411 --- /dev/null +++ b/others/Alma/reportAlmaImp.md @@ -0,0 +1,7 @@ +| Name | Interface break | Failed Testcases | | +|------|-----------------|--------------------------------------------------------------------------------|---------------------------------------| +| Alma | no | test_convert_addition (tests.test_romannumerals.TestRomanNumber) ... FAIL | AssertionError: '' != 'II' + II | +| Alma | no | test_convert_invalid (tests.test_romannumerals.TestRomanNumber) ... FAIL | AssertionError: ValueError not raised | +| Alma | no | test_convert_large_numbers (tests.test_romannumerals.TestRomanNumber) ... FAIL | AssertionError: '' != 'MI' + MI | +| Alma | no | test_convert_mixed (tests.test_romannumerals.TestRomanNumber) ... FAIL | AssertionError: '' != 'XIV' + XIV | +| Alma | no | test_convert_subtraction (tests.test_romannumerals.TestRomanNumber) ... FAIL | AssertionError: '' != 'IV' + IV | \ No newline at end of file diff --git a/others/Alma/reportAlmaTests.md b/others/Alma/reportAlmaTests.md new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_romannumerals.py b/tests/test_romannumerals.py index 2ea7d7c..578d302 100644 --- a/tests/test_romannumerals.py +++ b/tests/test_romannumerals.py @@ -52,22 +52,25 @@ from others.Orlando.OrlandoInterfaces import IRomanConverter import unittest from others.Dani.DaniRomanConverter import Converter, IConverter -''' + import unittest from others.Momo.MomoRomanConverter import convert +''' +import unittest +from others.Alma.AlmaRomanConverter import IRomanNumber, RomanNumber class TestRomanNumber(unittest.TestCase): def setUp(self): - self.converter: convert() + self.converter: IRomanNumber = RomanNumber() def test_convert_subtraction(self): - 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") + self.assertEqual(self.converter.convert(4), "IV") + self.assertEqual(self.converter.convert(9), "IX") + self.assertEqual(self.converter.convert(40), "XL") + self.assertEqual(self.converter.convert(90), "XC") + self.assertEqual(self.converter.convert(400), "CD") + self.assertEqual(self.converter.convert(900), "CM") def test_convert_addition(self): self.assertEqual(self.converter.convert(2), "II") -- GitLab