Skip to content
Snippets Groups Projects
Commit 6a4c557c authored by Muhamed's avatar Muhamed
Browse files

Feature 7 custom delim

parent 8a09d7e2
No related branches found
No related tags found
No related merge requests found
......@@ -21,6 +21,10 @@
#1001 + 2 should return 2
#1001 -2 should return negatives not allowed
#custom delimiters
#input "//[***]\n1***2***3"
#output 6
import unittest
import re
......@@ -33,13 +37,16 @@ class StringCalculator:
if numbers.startswith("//"):
delimiter_end_index = numbers.index("\n")
delimiter = numbers[2:delimiter_end_index]
delimiter_section = numbers[2:delimiter_end_index]
numbers = numbers[delimiter_end_index +1:]
if delimiter.startswith("[")and delimiter.endswith("]"):
delimiter = delimiter[1:-1]
if delimiter_section.startswith("[")and delimiter_section.endswith("]"):
delimiters = re.findall(r'\[([^\]]+)\]',delimiter_section)
else:
delimiters= [delimiter_section]
numbers = numbers[delimiter_end_index + 1:]
numbers = numbers.replace(delimiter,",")
for delimiters in delimiters:
numbers = numbers.replace(delimiters,",")
numbers = numbers.replace("\n",",")
......@@ -116,6 +123,8 @@ class TestStingCalculator(unittest.TestCase):
with self.assertRaises(ValueError) as e:
self.calculator.add("//;\n-3,4;1001")
self.assertEqual(str(e.exception),"negatives not allowed: -3")
def test_custom_delimiter(self):
self.assertEqual(self.calculator.add("//[***]\n1***2***3"),6)
......
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