Skip to content
Snippets Groups Projects
Commit a22c61d5 authored by Lasse Pikkemaat's avatar Lasse Pikkemaat
Browse files

Merge branch 'feature3' into 'develop'

Feature3

See merge request !3
parents c3bc8a60 759998e4
2 merge requests!7Develop into main,!3Feature3
......@@ -7,7 +7,18 @@ class StringCalculator(IStringCalculator):
if not numbers:
return 0
# Erlaubt Kommas und Zeilenumbrüche als Trennzeichen
tokens = re.split(r"[,\n]", numbers)
# Prüfe auf das ungültige Format "1,\n"
if ",\n" in numbers:
raise ValueError("Ungültiges Zahlenformat: ',\\n' ist nicht erlaubt")
return sum(map(int, tokens))
\ No newline at end of file
# Trenne Zahlen anhand von Komma oder Zeilenumbruch
tokens = re.split(r",|\n", numbers)
# Konvertiere zu Integern und finde negative Zahlen
numbers_list = list(map(int, tokens))
negative_numbers = [num for num in numbers_list if num < 0]
if negative_numbers:
raise ValueError(f"Negative nicht erlaubt: {negative_numbers}")
return sum(numbers_list)
\ No newline at end of file
......@@ -9,6 +9,9 @@
#Feature2 Neues Trennzeichen neben dem Komma
# Bei Eingabe von 1\n2,3 soll 6 ausgegeben werden
# Bei Eingabe von 10\n20\n30 soll 60 ausgegeben werden
#Feature3 Negative Zahlen ausschließen
# Bei Eingabe von 1, -2, 3 soll ein Error erscheinen "Negative nicht erlaubt: [-2]
# Bei Eingabe von -10\n -20, -30 soll ein Error erscheinen "Negative nicht erlaubt: [-10,-20,30]
import unittest
from src.interfaces import IStringCalculator
......@@ -35,8 +38,20 @@ class TestStringCalculator(unittest.TestCase):
self.assertEqual(self.calculator.add("1\n2,3"), 6)
self.assertEqual(self.calculator.add("10\n20\n30"), 60)
def test_add_single_negative_number(self):
with self.assertRaises(ValueError) as context:
self.calculator.add("1,-2,3")
print(str(context.exception))
self.assertEqual(str(context.exception), "Negative nicht erlaubt: [-2]")
def test_add_multiple_negative_numbers(self):
with self.assertRaises(ValueError) as context:
self.calculator.add("-10\n-20,-30")
print(str(context.exception))
self.assertEqual(str(context.exception), "Negative nicht erlaubt: [-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
# python -m unittest discover -s tests -v
\ 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