Skip to content
Snippets Groups Projects
Commit bab625de authored by linopino's avatar linopino
Browse files

Momo Code + Tests

parent 3c7ba18e
No related branches found
No related tags found
2 merge requests!9Develop,!6Momo Code + Tests
#Test_Converter_Römische_Zahlen
'''
import unittest
def convert(n: int) -> str:
roman_numerals = {
1000: "M", 900: "CM", 500: "D", 400: "CD",
100: "C", 90: "XC", 50: "L", 40: "XL",
10: "X", 9: "IX", 5: "V", 4: "IV", 1: "I"
}
result = ""
for value in sorted(roman_numerals.keys(), reverse=True): #Schleife, die über die Schlüssel (die Dezimalzahlen) des roman_numerals-Dictionaries iteriert und in absteigender reienfolge zurück gibt durch value nimmt in jeder Iteration den Wert des nächsten sortierten Schlüssels an
while n >= value: #Dies startet eine while-Schleife, die so lange ausgeführt wird, wie der Wert von n größer oder gleich dem aktuellen value (der Dezimalzahl) ist
result += roman_numerals[value] #fügt die entsprechende römische Ziffer (den Wert aus dem roman_numerals-Dictionary) zur result-Zeichenkette hinzu.
n -= value # aktuelle value - n
return result
'''
import unittest
from src.romannumerals import RomanNumber
from src.interfaces import IRomanNumber
class TestRomanConverter(unittest.TestCase):
def test_1(self):
self.assertEqual(convert(1), "I") # Erwartet "I" für 1
def test_10(self):
self.assertEqual(convert(10), "X") # Erwartet "X" für 10
def test_21(self):
self.assertEqual(convert(21), "XXI") # Erwartet "XXI" für 21
def test_50(self):
self.assertEqual(convert(50), "L") # Erwartet "L" für 50
def test_100(self):
self.assertEqual(convert(100), "C") # Erwartet "C" für 100
def test_1000(self):
self.assertEqual(convert(1000), "M") # Erwartet "M" für 1000
def test_1999(self):
self.assertEqual(convert(1999), "MCMXCIX") #Erwartet "MCMXCIX" für 1999
if __name__ == "__main__":
unittest.main()
#python -m unittest others.Momo.MomoRomanConverter -v
\ No newline at end of file
| Name | Interface break | Failed Testcases | |
|------|-----------------|---------------------------------------------------------------------------------|-----------------------------------------------------------------------|
| Momo | no | test_convert_addition (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'converter' |
| Momo | no | test_convert_invalid (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'converter' |
| Momo | no | test_convert_large_numbers (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'converter' |
| Momo | no | test_convert_mixed (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'converter' |
| Momo | no | test_convert_subtraction (tests.test_romannumerals.TestRomanNumber) ... ERROR | AttributeError: 'TestRomanNumber' object has no attribute 'converter' |
\ No newline at end of file
| Name | Interface break | Failed Testcases | |
|------|-----------------|-------------------------------------------------------------------------|------------------------------------------|
| Momo | no | test_1 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined |
| Momo | no | test_10 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined |
| Momo | no | test_100 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined |
| Momo | no | test_1000 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined |
| Momo | no | test_1999 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined |
| Momo | no | test_21 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined |
| Momo | no | test_50 (others.Momo.MomoRomanConverter.TestRomanConverter) ... ERROR | NameError: name 'convert' is not defined |
\ No newline at end of file
......@@ -55,19 +55,19 @@ from others.Dani.DaniRomanConverter import Converter, IConverter
'''
import unittest
from others.Wasili.WasiliRomanConverter import RomanNumber, IRomanNumber
from others.Momo.MomoRomanConverter import convert
class TestRomanNumber(unittest.TestCase):
def setUp(self):
self.converter: IRomanNumber = RomanNumber
self.converter: convert()
def test_convert_subtraction(self):
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")
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")
def test_convert_addition(self):
self.assertEqual(self.converter.convert(2), "II")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment