diff --git a/src/code_.py b/src/code_.py
index 2cf99b4b78e2749fa728af3c48da4ec3072e8a8b..cb7b985702091c2b28920853bdd6a5cdeac5526b 100644
--- a/src/code_.py
+++ b/src/code_.py
@@ -62,16 +62,17 @@ class Code:
         pattern = r"(def)? *(\w+) *\= *([^?\n]+) *\? *([^:\n]+) *\: *([^\n]+)\n"
         to_replace = []
         for match in re.finditer(pattern, code):
-            try:
+            def_variable = ""
+            if(match.group(1)!=None):
                 def_variable = match.group(1)
-            except:
-                def_variable = ""
+            
+                
             variable = match.group(2)
             condition = match.group(3).strip()
             exp1, exp2 = match.group(4).strip(), match.group(5).strip()
             old = match.group(0)
             new = f"if ({condition}) {{\n{def_variable} {variable} = {exp1}\n}}\n" 
-            new += f"if (!({condition})) {{\n{def_variable} {variable} = {exp2}\n}}\n\n" 
+            new += f"else {{\n{def_variable} {variable} = {exp2}\n}}\n\n" 
             #else {{\n{variable} = {exp2}\n}}\n"
             #Here we check that it's worked correctly -> that we have done a good parsing
             if(get_parenthese_count(condition)==0 and get_parenthese_count(exp1)==0 and get_parenthese_count(exp2)==0 and get_curly_count(condition)==0 and get_curly_count(exp1)==0 and get_curly_count(exp2)==0):
diff --git a/tests/test_conditions_extraction.py b/tests/test_conditions_extraction.py
new file mode 100644
index 0000000000000000000000000000000000000000..05330cafba856b82eefe496518a5e140679b07c3
--- /dev/null
+++ b/tests/test_conditions_extraction.py
@@ -0,0 +1,31 @@
+import os
+import unittest
+from src.outils import extract_conditions
+
+class TestExtractConditions(unittest.TestCase):
+
+    #TODO -> finish this
+
+    def test_1(self):
+        test = """
+        if ((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == true)) {error "ERROR: please specify methylation context for analysis"}
+else if ((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == false)) {context = "--noCpG --CHG "}
+else if ((params.noCpG == true) && (params.noCHH == false) && (params.noCHG == true)) {context = "--noCpG --CHH "}
+else if ((params.noCpG == true) && (params.noCHH == false) && (params.noCHG == false)) {context = "--noCpG --CHH --CHG "}
+else if ((params.noCpG == false) && (params.noCHH == true) && (params.noCHG == true)) {context = " "}
+else if ((params.noCpG == false) && (params.noCHH == true) && (params.noCHG == false)) {context = "--CHG "}
+else if ((params.noCpG == false) && (params.noCHH == false) && (params.noCHG == true)) {context = "--CHH "}
+else {context = "--CHH --CHG "}
+"""
+        dico = extract_conditions(test)
+        results = {'(params.noCpG == true) && (params.noCHH == true) && (params.noCHG == true)$$__$$0': (90, 152), '!((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == true)) && (params.noCpG == true) && (params.noCHH == true) && (params.noCHG == false)$$__$$1': (241, 267), '!((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == true)) && !((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == false)) && (params.noCpG == true) && (params.noCHH == false) && (params.noCHG == true)$$__$$2': (356, 382), '!((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == true)) && !((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == false)) && !((params.noCpG == true) && (params.noCHH == false) && (params.noCHG == true)) && (params.noCpG == true) && (params.noCHH == false) && (params.noCHG == false)$$__$$3': (472, 504), '!((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == true)) && !((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == false)) && !((params.noCpG == true) && (params.noCHH == false) && (params.noCHG == true)) && !((params.noCpG == true) && (params.noCHH == false) && (params.noCHG == false)) && (params.noCpG == false) && (params.noCHH == true) && (params.noCHG == true)$$__$$4': (593, 606), '!((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == true)) && !((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == false)) && !((params.noCpG == true) && (params.noCHH == false) && (params.noCHG == true)) && !((params.noCpG == true) && (params.noCHH == false) && (params.noCHG == false)) && !((params.noCpG == false) && (params.noCHH == true) && (params.noCHG == true)) && (params.noCpG == false) && (params.noCHH == true) && (params.noCHG == false)$$__$$5': (696, 714), '!((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == true)) && !((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == false)) && !((params.noCpG == true) && (params.noCHH == false) && (params.noCHG == true)) && !((params.noCpG == true) && (params.noCHH == false) && (params.noCHG == false)) && !((params.noCpG == false) && (params.noCHH == true) && (params.noCHG == true)) && !((params.noCpG == false) && (params.noCHH == true) && (params.noCHG == false)) && (params.noCpG == false) && (params.noCHH == false) && (params.noCHG == true)$$__$$6': (804, 822), '!((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == true)) && !((params.noCpG == true) && (params.noCHH == true) && (params.noCHG == false)) && !((params.noCpG == true) && (params.noCHH == false) && (params.noCHG == true)) && !((params.noCpG == true) && (params.noCHH == false) && (params.noCHG == false)) && !((params.noCpG == false) && (params.noCHH == true) && (params.noCHG == true)) && !((params.noCpG == false) && (params.noCHH == true) && (params.noCHG == false)) && !((params.noCpG == false) && (params.noCHH == false) && (params.noCHG == true))$$__$$7': (830, 854)}
+        #print(dico)
+        #for condition in dico:
+        #    print(condition)
+        #    start, end = dico[condition]
+        #    print(test[start:end])
+        #    print()
+        #print()
+        self.assertEqual(results, dico)
+
+