From 6a4c557c93a6abeac28c3642b2e1f4c57a037389 Mon Sep 17 00:00:00 2001
From: Muhamed <Muhamedalici@hotmail.de>
Date: Thu, 27 Mar 2025 22:32:10 +0100
Subject: [PATCH] Feature 7 custom delim

---
 String calculator | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/String calculator b/String calculator
index 6272dcf..f118540 100644
--- a/String calculator	
+++ b/String calculator	
@@ -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)
         
         
 
-- 
GitLab