Skip to content
Snippets Groups Projects
Commit 551079f1 authored by Daniel Rafeh's avatar Daniel Rafeh
Browse files

8 errors detected

parent 9e44d2d0
No related tags found
No related merge requests found
......@@ -29,7 +29,8 @@ import unittest
from abc import ABC, abstractmethod
#from other.AliciMuhamed.Test_Converter_Römische_Zahlen import ConverterMomo as MomoCalc
#from other.BerishaAlma.test2converter import RomanNumber as AlmaCalc
from other.GotsisWasilios.TDD_Converter import WasiliRomanNumber as WasiliCalc
#from other.GotsisWasilios.TDD_Converter import WasiliRomanNumber as WasiliCalc
from other.PikkemaatLasse.romannumerals import RomanNumerals as LasseCalc
class IConverter(ABC):
@abstractmethod
......@@ -72,8 +73,8 @@ class DanisConverter(IConverter):
class TestConverter(unittest.TestCase):
def setUp(self):
self.c = WasiliCalc()
self.c.convert = self.c.convert_int_to_str
self.c = LasseCalc()
self.c.convert = self.c.to_roman
def test_convertOne(self):
......
File added
#Test1: Addition 2 positiver Zaheln (2+5) erwartetes Ergebnis 8
#Test2: Addition negativer und positiver Zahl (-1+1) erwartetes Ergebnis 0
#Test3: Addition (0+0), erwartetes Ergebnis 0
#Test4: Addition von 2 Dezimalzahlen (2,5+3,5), erwartetes Ergebnis 6
from abc import ABC, abstractmethod
class ICalculator(ABC):
@abstractmethod
def add(self, a: float, b: float) -> float:
pass
class Calculator(ICalculator):
def add(self, a: float, b: float) -> float:
return a + b
class TestCalculator:
def __init__(self, calculator: ICalculator):
self.calculator = calculator
def test_add(self):
assert self.calculator.add(2,3) == 5, "Fehler falls nicht 5"
assert self.calculator.add(-1,1) == 0, "Fegler falls nich 0"
assert self.calculator.add(0,0) == 0, "Fehler falls nicht 0"
assert self.calculator.add(2.5,3.5) == 6, "Fehler falls nicht 5"
print("Test erfolgreich")
if __name__ == "__main__":
calc = Calculator()
tester = TestCalculator(calc)
tester.test_add()
#Bei Eingabe des Strings "Decker" liefert die Funktion 3
#Bei Eingabe eines leeren Stings soll 0 augegeben werden
#Bei Eingabe des Strings "Hallo" ohne E und D soll 0 ausgegeben werden
#Bei Eingabe von dem String "Der Esel" soll Groß-Kleinschreibung (Caseinsensitive) gezählt werden. das Ergebnis ist 4
#Bei Eingabe des Buchstaben D oder E soll 1 ausgegeben werden
from abc import ABC,abstractmethod
import unittest
class ICounter (ABC):
@abstractmethod
def count_ED(self,s):
pass
class Counter (ICounter):
def count_ED(self, s):
s=s.upper()
return s.count("D")+s.count("E")
class TestCounter (unittest.TestCase):
def setUp(self):
self.c=Counter()
def test_count_ED_regular (self):
res=self.c.count_ED ("Decker")
self.assertEqual(res,3)
def test_count_ED_empty (self):
res=self.c.count_ED ("")
self.assertEqual(res,0)
def test_count_ED_wo (self):
'''Testet einen String ohne E und D'''
res=self.c.count_ED ("Hallo")
self.assertEqual(res,0)
def test_count_ED_case_insensitive (self):
'''Testet verschiedene Groß- und Kleinschreibungen'''
res=self.c.count_ED ("Der Esel")
self.assertEqual(res,4)
def test_count_ED_single_letetr (self):
'''Testet Eingaben mit nur einem Buchstaben'''
res=self.c.count_ED ('D')
self.assertEqual(res,1)
res=self.c.count_ED ('E')
self.assertEqual (res,1)
res=self.c.count_ED ('d')
self.assertEqual(res,1)
res=self.c.count_ED ('e')
self.assertEqual (res,1)
if __name__=="__main__":
unittest.main()
\ No newline at end of file
from abc import ABC, abstractmethod
class IRomanNumerals(ABC):
@abstractmethod
def to_roman(self, num):
pass
\ No newline at end of file
from abc import ABC, abstractmethod
class IRomanNumerals(ABC):
@abstractmethod
def to_roman(self, num):
pass
class RomanNumerals(IRomanNumerals):
def to_roman(self, num):
if not isinstance(num, int):
raise ValueError("Eingabe muss eine ganze Zahl sein")
if num <= 0 or num >= 4000:
raise ValueError("Zahl muss zwischen 1 und 3999 liegen")
val = [
(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, numeral) in val:
while num >= value:
result += numeral
num -= value
return result
import unittest
class TestRomanNumerals(unittest.TestCase):
def setUp(self):
self.converter = RomanNumerals()
def test_to_roman_basic(self):
self.assertEqual(self.converter.to_roman(1), "I")
self.assertEqual(self.converter.to_roman(5), "V")
self.assertEqual(self.converter.to_roman(10), "X")
self.assertEqual(self.converter.to_roman(50), "L")
self.assertEqual(self.converter.to_roman(100), "C")
self.assertEqual(self.converter.to_roman(500), "D")
self.assertEqual(self.converter.to_roman(1000), "M")
def test_to_roman_subtraction(self):
self.assertEqual(self.converter.to_roman(4), "IV")
self.assertEqual(self.converter.to_roman(9), "IX")
self.assertEqual(self.converter.to_roman(40), "XL")
self.assertEqual(self.converter.to_roman(90), "XC")
self.assertEqual(self.converter.to_roman(400), "CD")
self.assertEqual(self.converter.to_roman(900), "CM")
def test_to_roman_addition(self):
self.assertEqual(self.converter.to_roman(2), "II")
self.assertEqual(self.converter.to_roman(3), "III")
self.assertEqual(self.converter.to_roman(6), "VI")
self.assertEqual(self.converter.to_roman(8), "VIII")
self.assertEqual(self.converter.to_roman(30), "XXX")
self.assertEqual(self.converter.to_roman(80), "LXXX")
def test_to_roman_mixed(self):
self.assertEqual(self.converter.to_roman(14), "XIV")
self.assertEqual(self.converter.to_roman(19), "XIX")
self.assertEqual(self.converter.to_roman(29), "XXIX")
self.assertEqual(self.converter.to_roman(44), "XLIV")
self.assertEqual(self.converter.to_roman(99), "XCIX")
self.assertEqual(self.converter.to_roman(444), "CDXLIV")
self.assertEqual(self.converter.to_roman(999), "CMXCIX")
def test_to_roman_large_numbers(self):
self.assertEqual(self.converter.to_roman(1001), "MI")
self.assertEqual(self.converter.to_roman(1987), "MCMLXXXVII")
self.assertEqual(self.converter.to_roman(2023), "MMXXIII")
self.assertEqual(self.converter.to_roman(3999), "MMMCMXCIX")
def test_to_roman_invalid(self):
with self.assertRaises(ValueError):
self.converter.to_roman(0)
with self.assertRaises(ValueError):
self.converter.to_roman(-1)
with self.assertRaises(ValueError):
self.converter.to_roman(4000)
with self.assertRaises(ValueError):
self.converter.to_roman("ABC")
with self.assertRaises(ValueError):
self.converter.to_roman(None)
with self.assertRaises(ValueError):
self.converter.to_roman(3.14)
if __name__ == "__main__":
unittest.main()
\ No newline at end of file
......@@ -3,7 +3,7 @@
| AliciMuhamed | yes (4) | test_convertFloat test_convertNegative test_convertZero |
| BerishaAlma | no | all except one (test_convertThree) |
| GotsisWasilios | no | 23/26 failed (test_convertTwenty, test_convertSixty, test_convertSeventy successful) |
| | | |
| PikkemaatLasse | yes (8) | none |
| | | |
| | | |
| | | |
\ No newline at end of file
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