diff --git a/others/Alma/AlmaRomanConverter.py b/others/Alma/AlmaRomanConverter.py new file mode 100644 index 0000000000000000000000000000000000000000..e5a434ccd14da412b21990f51d63638b546144c4 --- /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 0000000000000000000000000000000000000000..a0834113bfec267ecd2aafd92579aa8ef2944746 --- /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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/test_romannumerals.py b/tests/test_romannumerals.py index 2ea7d7cec2447355acb497e5d1dae007a2c0fcca..578d3020a8a87d1bf6482fd1cefc99feb77114dc 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")