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

Erstellung der Klassen und Methoden, Unterscheidung von Calculator, Interface und Tests

parent 97042e0e
No related branches found
No related tags found
1 merge request!7Develop into main
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
from abc import ABC, abstractmethod
class IStringCalculator(ABC):
@abstractmethod
def add(self, numbers: str) -> int:
pass
\ No newline at end of file
from src.interfaces import IStringCalculator
class StringCalculator(IStringCalculator):
def add(self, numbers: str) -> int:
if not numbers:
return 0
return sum(map(int, numbers.split(',')))
\ No newline at end of file
...@@ -2,4 +2,27 @@ ...@@ -2,4 +2,27 @@
# Bei Eingabe keiner Zahl soll eine 0 ausgegeben werden # Bei Eingabe keiner Zahl soll eine 0 ausgegeben werden
# Bei Eingabe einer 1 soll 1 ausgegeben werden # Bei Eingabe einer 1 soll 1 ausgegeben werden
# Bei Eingabe einer 3,4 soll 7 ausgegeben werden # Bei Eingabe einer 3,4 soll 7 ausgegeben werden
# Bei Eingabe einer 10,20 soll 30 ausgegeben werden # Bei Eingabe einer 10,20 soll 30 ausgegeben werden
\ No newline at end of file
import unittest
from src.interfaces import IStringCalculator
from src.stringcalculator import StringCalculator
class TestStringCalculator(unittest.TestCase):
def setUp(self):
self.calculator: IStringCalculator = StringCalculator() # Zugriff über das Interface
def test_add_empty_string(self):
self.assertEqual(self.calculator.add(""), 0)
def test_add_single_number(self):
self.assertEqual(self.calculator.add("1"), 1)
def test_add_two_numbers(self):
self.assertEqual(self.calculator.add("10,20"), 30)
if __name__ == "__main__":
unittest.main()
# python -m unittest tests.test_stringcalculator
# python -m unittest discover -s tests
\ 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