 
 (deftest parameter3-tests
   (testing "Testing parameter3"
-  
+    ;Grammar won't change since 03 and P aren't in the sentence
     (let [currGrammar (parameter3 [0,0,0,1,0,1,1,0,0,0,0,0,0]  ["611", "DEC", ["Adv", "S", "Aux", "Never", "Verb"]])]
          (assert (= 13 (count currGrammar)))
          (assert (= nil (some #(< 1 %) currGrammar)))
-         (assert (= currGrammar [0,0,0,1,0,1,1,0,0,0,0,0,0])))))
+         (assert (= currGrammar [0,0,0,1,0,1,1,0,0,0,0,0,0])))
+
+    ;The grammar will change since 03 and P appear sequentially
+    ;in the sentence
+    (let [currGrammar (parameter3 [0,0,0,1,0,1,1,0,0,0,0,0,0]  ["611", "DEC", ["Adv", "03", "P", "Aux", "Never", "Verb"]])]
+         (assert (= 13 (count currGrammar)))
+         (assert (= nil (some #(< 1 %) currGrammar)))
+         (assert (= currGrammar [0,1,0,1,0,1,1,0,0,0,0,0,0])))
+
+    ;The grammar won't change since 03 and P don't appear
+    ;sequentially in the sentence
+    (let [currGrammar (parameter3 [0,0,0,1,0,1,1,0,0,0,0,0,0]  ["611", "DEC", ["Adv", "03", "Aux", "P", "Never", "Verb"]])]
+         (assert (= 13 (count currGrammar)))
+         (assert (= nil (some #(< 1 %) currGrammar)))
+         (assert (= currGrammar [0,0,0,1,0,1,1,0,0,0,0,0,0])))
+
+    ;The grammar won't change since 01 and Verb don't appear
+    ;sequentially in the sentence
+    (let [currGrammar (parameter3 [0,0,0,1,0,1,1,0,0,0,0,0,0]  ["611", "IMP", ["Adv", "01", "Aux", "P", "Never", "Verb"]])]
+         (assert (= 13 (count currGrammar)))
+         (assert (= nil (some #(< 1 %) currGrammar)))
+         (assert (= currGrammar [0,0,0,1,0,1,1,0,0,0,0,0,0])))
+
+    ;The grammar will change since 01 and Verb appear
+    ;sequentially in the sentence
+    (let [currGrammar (parameter3 [0,0,0,1,0,1,1,0,0,0,0,0,0]  ["611", "IMP", ["Adv", "01", "Verb", "Aux", "P", "Never"]])]
+         (assert (= 13 (count currGrammar)))
+         (assert (= nil (some #(< 1 %) currGrammar)))
+         (assert (= currGrammar [0,1,0,1,0,1,1,0,0,0,0,0,0])))))
 
 
 (deftest parameter4-tests


(deftest parameter1-tests
  (testing "Testing parameter1"
    ;Test sentence

    (let [currGrammar (parameter1 [0,0,0,1,0,1,1,0,0,0,0,0,0]  ["611", "DEC", ["Adv", "S", "Aux", "Never", "Verb"]])]
         (assert (= 13 (count currGrammar)))
         (assert (= nil (some #(< 1 %) currGrammar)))
         (assert (= currGrammar [0,0,0,1,0,1,1,0,0,0,0,0,0])))
    (let [currGrammar (parameter1 [0,0,0,1,0,1,1,0,0,0,0,0,0]  ["611", "DEC", ["Adv", "01", "P", "S", "Aux", "Never", "Verb"]])]
         (assert (= 13 (count currGrammar)))
         (assert (= nil (some #(< 1 %) currGrammar)))
         (assert (= currGrammar [1,0,0,1,0,1,1,0,0,0,0,0,0])))
    (let [currGrammar (parameter1 [0,0,0,1,0,1,1,0,0,0,0,0,0]  ["611", "DEC", ["01", "P", "S", "Aux", "Never", "Verb"]])]
         (assert (= 13 (count currGrammar)))
         (assert (= nil (some #(< 1 %) currGrammar)))


(deftest parameter2-tests
  (testing "Testing parameter2"
    ;The grammar won't change since 03 and P don't appear
    ;in the sentence
    (let [currGrammar (parameter2 [0,0,0,1,0,1,1,0,0,0,0,0,0]  ["611", "DEC", ["Adv", "S", "Aux", "Never", "Verb"]])]
      (assert (= 13 (count currGrammar)))
      (assert (= nil (some #(< 1 %) currGrammar)))
      (assert (= [0,0,0,1,0,1,1,0,0,0,0,0,0] currGrammar)))

    ;The grammar will change since 03 and P appear in the sentence
    ;and the index of 03 is greater than zero
    (let [currGrammar (parameter2 [0,0,0,1,0,1,1,0,0,0,0,0,0] ["611", "DEC", ["Adv", "03", "P", "S"]])] 
      (assert (= 13 (count currGrammar)))
      (assert (= nil (some #(< 1 %) currGrammar)))
