diff --git a/others/Wasili/WasiliRomanConverter.py b/others/Wasili/WasiliRomanConverter.py new file mode 100644 index 0000000000000000000000000000000000000000..54a708e256634d98ab8eec26e893fd45f00fe309 --- /dev/null +++ b/others/Wasili/WasiliRomanConverter.py @@ -0,0 +1,54 @@ +import unittest +from abc import ABC, abstractmethod +from src.romannumerals import RomanNumber +from src.interfaces import IRomanNumber +''' +#Interface für Counter +class IRomanNumber(ABC): + @abstractmethod + def convert_int_to_str(self, n: int) -> str: + pass + +# Implementierung Converter Klasse +class RomanNumber(IRomanNumber): + def convert_int_to_str(self, n: int) -> str: + + #Eingabe anders als int + if not isinstance(n, int): + return "Fehler: Bitte Zahl eingeben" + + #Int Eingabe kleiner gleich 0 + if n <= 0: + return "Integer muss größer als 0 sein" + + # Bekannte Werte umwandeln + roman_convert = {1: "I", 21: "XXI", 1000: "M"} + return roman_convert.get(n) +''' +# Testklasse (TestConverter) +class TestRomanNumber (unittest.TestCase): + def setUp(self): + self.r = RomanNumber() + + def test_convert_1(self): + self.assertEqual(self.r.convert(1), "I") + + def test_convert_21(self): + self.assertEqual(self.r.convert(21), "XXI") + + def test_convert_empty(self): + self.assertEqual(self.r.convert(None), "Fehler: Bitte Zahl eingeben") + + def test_convert_string(self): + self.assertEqual(self.r.convert("Hello"), "Fehler: Bitte Zahl eingeben") + + def test_convert_downzero(self): + self.assertEqual(self.r.convert(-5), "Integer muss größer als 0 sein") + + def test_convert_downzero(self): + self.assertEqual(self.r.convert(1000), "M") + +if __name__ == "__main__": + unittest.main() + +# python -m unittest others.Wasili.WasiliRomanConverter -v \ No newline at end of file diff --git a/others/Wasili/reportWasiliImp.md b/others/Wasili/reportWasiliImp.md new file mode 100644 index 0000000000000000000000000000000000000000..6e16b760ac5c53ccb2da6813c9d3081f1ca93ee3 --- /dev/null +++ b/others/Wasili/reportWasiliImp.md @@ -0,0 +1,7 @@ +| Name | Interface break | Failed Testcases | | +|--------|-----------------|---------------------------------------------------------------------------------|---------------------------------------------------------------| +| Wasili | no | test_convert_addition (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'r' | +| Wasili | no | test_convert_invalid (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'r' | +| Wasili | no | test_convert_large_numbers (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'r' | +| Wasili | no | test_convert_mixed (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'r' | +| Wasili | no | test_convert_subtraction (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'r' | \ No newline at end of file diff --git a/others/Wasili/reportWasiliTests.md b/others/Wasili/reportWasiliTests.md new file mode 100644 index 0000000000000000000000000000000000000000..62478d1aeb716cc446f917e933d7be1e1a87a109 --- /dev/null +++ b/others/Wasili/reportWasiliTests.md @@ -0,0 +1,4 @@ +| Name | Interface break | Failed Testcases | | +|--------|-----------------|------------------------------------------------------------------------------------|-----------------------------------| +| Wasili | no | test_convert_empty (others.Wasili.WasiliRomanConverter.TestRomanNumber) ... ERROR | Eingabe muss eine ganze Zahl sein | +| Wasili | no | test_convert_string (others.Wasili.WasiliRomanConverter.TestRomanNumber) ... ERROR | Eingabe muss eine ganze Zahl sein | \ No newline at end of file diff --git a/tests/test_romannumerals.py b/tests/test_romannumerals.py index 0dc43195ac02aab1e674fc46b5e7266608dd3eec..d0a09bfe8a87bfb8ebcc75fd8bf873fef085e46c 100644 --- a/tests/test_romannumerals.py +++ b/tests/test_romannumerals.py @@ -48,22 +48,26 @@ from src.interfaces import IRomanNumber import unittest from others.Orlando.OrlandoRomanConverter import RomanConverter from others.Orlando.OrlandoInterfaces import IRomanConverter -''' + import unittest from others.Dani.DaniRomanConverter import Converter, IConverter +''' + +import unittest +from others.Wasili.WasiliRomanConverter import RomanNumber, IRomanNumber class TestRomanNumber(unittest.TestCase): def setUp(self): - self.converter: IConverter = Converter + self.converter: IRomanNumber = RomanNumber def test_convert_subtraction(self): - 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") + self.assertEqual(self.converter.convert_int_to_str(4), "IV") + self.assertEqual(self.converter.convert_int_to_str(9), "IX") + self.assertEqual(self.converter.convert_int_to_str(40), "XL") + self.assertEqual(self.converter.convert_int_to_str(90), "XC") + self.assertEqual(self.converter.convert_int_to_str(400), "CD") + self.assertEqual(self.converter.convert_int_to_str(900), "CM") def test_convert_addition(self): self.assertEqual(self.converter.convert(2), "II")