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
Branches feature7
No related tags found
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