Skip to content
Snippets Groups Projects
Commit 67eafd01 authored by Muhamed's avatar Muhamed
Browse files

Feature 5 Delimiter

parent 4c99a46a
Branches Feature-5---Delimiter
No related tags found
No related merge requests found
......@@ -13,29 +13,42 @@
# eine negative zahl
# mehrere negative zahlen
# Delimiters:
# add numbers seperated by a custom delimiter
# Test with - Numbers
import unittest
import re
class StringCalculator:
def __init__(self):
self.called_count = 0
def add (self, numbers : str)-> int: #Erwartet Integer
if not numbers:
return 0
else:
numbers = numbers.replace('\n',',')
number_list = numbers.split(',')#aufteilung der strings
negative=[] #array für die negativen nummern
total_sum = 0
for number_str in number_list: #jedes element in der liste wird durch genommen
if number_str:
number = int(number_str)# summierung der integer
if number <0:
negative.append(number)
total_sum += number
if numbers.startswith("//"):
delimiter_end_index = numbers.index("\n")
delimiter = numbers[2:delimiter_end_index]
numbers = numbers[delimiter_end_index + 1:]
numbers = numbers.replace(delimiter,",")
numbers = numbers.replace("\n",",")
number_list = numbers.split(',')#aufteilung der strings
negative = [] #array für die negativen nummern
#total_sum = 0
for number_str in number_list: #jedes element in der liste wird durch genommen
#if number_str:
number = int(number_str)# summierung der integer
if number <0:
negative.append(number)
#total_sum += number
if negative:
print(f"Negative Zahlen:{negative} ")#ausgabe negative zahlen
raise ValueError(f"negatives not allowed: {','.join(map(str, negative))}")
if negative:
print(f"Negative Zahlen:{negative} ")#ausgabe negative zahlen
raise ValueError(f"negatives not allowed: {','.join(map(str, negative))}")
return total_sum
return sum(map(int,number_list))
class TestStingCalculator(unittest.TestCase):
......@@ -68,9 +81,17 @@ class TestStingCalculator(unittest.TestCase):
with self.assertRaises(ValueError) as e:
self.calculator.add("-1,-3,4")
self.assertEqual(str(e.exception),"negatives not allowed: -1,-3")
with self.assertRaises(ValueError) as e:
self.calculator.add("-1\n-3,4")
self.assertEqual(str(e.exception),"negatives not allowed: -1,-3")
def test_add_numbers_with_custom_delimiter(self):
self.assertEqual(self.calculator.add("//;\n1;2;3"),6)
self.assertEqual(self.calculator.add("//;\n1,2,3"),6)
with self.assertRaises(ValueError) as e:
self.calculator.add("//;\n-3,4")
self.assertEqual(str(e.exception),"negatives not allowed: -3")
if __name__=='__main__':
......
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