From 079adc39711b28af31703828d569e6d87afcc26c Mon Sep 17 00:00:00 2001 From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de> Date: Sat, 5 Apr 2025 01:35:50 +0200 Subject: [PATCH 1/4] Meine Implementierung converter.py --- Other/GotsisWasili_1/converter.py | 49 +++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Other/GotsisWasili_1/converter.py diff --git a/Other/GotsisWasili_1/converter.py b/Other/GotsisWasili_1/converter.py new file mode 100644 index 0000000..0ef9bd0 --- /dev/null +++ b/Other/GotsisWasili_1/converter.py @@ -0,0 +1,49 @@ +#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() -- GitLab From e177c9e7a627a70a290e2b85eb367643e04df4e9 Mon Sep 17 00:00:00 2001 From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de> Date: Sat, 5 Apr 2025 01:39:30 +0200 Subject: [PATCH 2/4] =?UTF-8?q?Implementierung=20von=20GotsisWasili=20mit?= =?UTF-8?q?=20meinen=20Testf=C3=A4llen=20getestet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Other/GotsisWasili_1/TDD_Converter.py | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Other/GotsisWasili_1/TDD_Converter.py diff --git a/Other/GotsisWasili_1/TDD_Converter.py b/Other/GotsisWasili_1/TDD_Converter.py new file mode 100644 index 0000000..36a0518 --- /dev/null +++ b/Other/GotsisWasili_1/TDD_Converter.py @@ -0,0 +1,51 @@ +import unittest +from abc import ABC, abstractmethod + +#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_int_to_str(1), "I") + + def test_convert_21(self): + self.assertEqual(self.r.convert_int_to_str(21), "XXI") + + def test_convert_empty(self): + self.assertEqual(self.r.convert_int_to_str(None), "Fehler: Bitte Zahl eingeben") + + def test_convert_string(self): + self.assertEqual(self.r.convert_int_to_str("Hello"), "Fehler: Bitte Zahl eingeben") + + def test_convert_downzero(self): + self.assertEqual(self.r.convert_int_to_str(-5), "Integer muss größer als 0 sein") + + def test_convert_downzero(self): + self.assertEqual(self.r.convert_int_to_str(1000), "M") + +if __name__ == "__main__": + unittest.main() + -- GitLab From d019162e4e2e66783eaf16324d40a34a70033a95 Mon Sep 17 00:00:00 2001 From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de> Date: Sat, 5 Apr 2025 01:41:50 +0200 Subject: [PATCH 3/4] =?UTF-8?q?Implementierung=20von=20GotsisWasili=20mit?= =?UTF-8?q?=20meinen=20Testf=C3=A4llen=20getestet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Other/GotsisWasili_1/my_converter.py | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Other/GotsisWasili_1/my_converter.py diff --git a/Other/GotsisWasili_1/my_converter.py b/Other/GotsisWasili_1/my_converter.py new file mode 100644 index 0000000..05dd7ba --- /dev/null +++ b/Other/GotsisWasili_1/my_converter.py @@ -0,0 +1,35 @@ +#Umsetzungen von GotsisWasili auf meine Testfälle + +import unittest + +from TDD_Converter import RomanNumber as RomanNumber +from TDD_Converter import RomanNumber as IRomanNumber + +class TestRomanConverter(unittest.TestCase): + def setUp(self): + self.converter = RomanNumber() + + def test_implements_interface(self): + self.assertIsInstance(self.converter, IRomanNumber) + + 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() -- GitLab From 66469dcc40b1deb92d08e8852aef4f161851353f Mon Sep 17 00:00:00 2001 From: Hatice Yildirim <Hatice.Yildirim@student.reutlingen-university.de> Date: Sat, 5 Apr 2025 01:43:20 +0200 Subject: [PATCH 4/4] =?UTF-8?q?Meine=20Implementierung=20mit=20GotsisWasil?= =?UTF-8?q?i=20Testf=C3=A4llen=20getestet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Other/GotsisWasili_1/your_converter.py | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Other/GotsisWasili_1/your_converter.py diff --git a/Other/GotsisWasili_1/your_converter.py b/Other/GotsisWasili_1/your_converter.py new file mode 100644 index 0000000..270b4d0 --- /dev/null +++ b/Other/GotsisWasili_1/your_converter.py @@ -0,0 +1,34 @@ +import unittest +from converter import RomanNumber as RomanNumber +from converter import IRomanNumber + + +# Testklasse (TestConverter) +class TestRomanNumber (unittest.TestCase): + def setUp(self): + self.r = RomanNumber() + + def test_implements_interface(self): + self.assertIsInstance(self.r, IRomanNumber) + + def test_convert_1(self): + self.assertEqual(self.r.convert_int_to_str(1), "I") + + def test_convert_21(self): + self.assertEqual(self.r.convert_int_to_str(21), "XXI") + + def test_convert_empty(self): + self.assertEqual(self.r.convert_int_to_str(None), "Fehler: Bitte Zahl eingeben") + + def test_convert_string(self): + self.assertEqual(self.r.convert_int_to_str("Hello"), "Fehler: Bitte Zahl eingeben") + + def test_convert_downzero(self): + self.assertEqual(self.r.convert_int_to_str(-5), "Integer muss größer als 0 sein") + + def test_convert_downzero(self): + self.assertEqual(self.r.convert_int_to_str(1000), "M") + +if __name__ == "__main__": + unittest.main() + -- GitLab