Ejemplo n.º 1
0
 def test_step4_equal(self):
     self.assertEqual("true", step4_if_fn_do.rep("(= 0 0)"))
     self.assertEqual("true", step4_if_fn_do.rep("(= (list 1) (list 1))"))
     self.assertEqual("false", step4_if_fn_do.rep("(= (list 1) (list 1 2))"))
     self.assertEqual(
         "true",
         step4_if_fn_do.rep("(= (list (list 1) (list 2)) (list (list 1) (list 2)))"),
     )
     self.assertEqual("true", step4_if_fn_do.rep("(= nil nil)"))
Ejemplo n.º 2
0
 def test_step4_closures(self):
     self.assertEqual(
         "12", step4_if_fn_do.rep("(( (fn* (a) (fn* (b) (+ a b))) 5) 7)")
     )
     self.assertEqual(
         "#<function>",
         step4_if_fn_do.rep("(def! gen-plus5 (fn* () (fn* (b) (+ 5 b))))"),
     )
     self.assertEqual(
         "#<function>",
         step4_if_fn_do.rep("(def! gen-plus5 (fn* () (fn* (b) (+ 5 b))))"),
     )
     self.assertEqual("#<function>", step4_if_fn_do.rep("(def! plus5 (gen-plus5))"))
     self.assertEqual("12", step4_if_fn_do.rep("(plus5 7)"))
Ejemplo n.º 3
0
 def test_step4_more_equal(self):
     self.assertEqual("false", step4_if_fn_do.rep("(>= 1 2)"))
     self.assertEqual("true", step4_if_fn_do.rep("(>= 2 1)"))
     self.assertEqual("true", step4_if_fn_do.rep("(>= 1 1)"))
     try:
         step4_if_fn_do.rep("(>= 1 nil)")
         self.fail("Expected exception")
     except MalInvalidArgumentException:
         pass
     try:
         step4_if_fn_do.rep("(>= nil 1)")
         self.fail("Expected exception")
     except MalInvalidArgumentException:
         pass
Ejemplo n.º 4
0
 def test_step4_use_fn_func_param(self):
     self.assertEqual(
         "8", step4_if_fn_do.rep("((fn* (f x) (f x)) (fn* (a) (+ 1 a)) 7)")
     )
Ejemplo n.º 5
0
 def test_step4_use_fn_multiple_nested(self):
     self.assertEqual("10", step4_if_fn_do.rep("((fn* (a b) (+ a (+ b 1))) 4 5)"))
Ejemplo n.º 6
0
 def test_step4_use_fn_multiple(self):
     self.assertEqual("8", step4_if_fn_do.rep("((fn* (a b) a) 8 9)"))
Ejemplo n.º 7
0
 def test_step4_use_fn(self):
     self.assertEqual("7", step4_if_fn_do.rep("((fn* (a) a) 7)"))
Ejemplo n.º 8
0
 def test_step4_fn(self):
     self.assertEqual("#<function>", step4_if_fn_do.rep("(fn* (a) 0)"))
Ejemplo n.º 9
0
 def test_step4_count(self):
     self.assertEqual("0", step4_if_fn_do.rep("(count (list))"))
     self.assertEqual("2", step4_if_fn_do.rep("(count (list 1 2))"))
     self.assertEqual("0", step4_if_fn_do.rep("(count nil)"))
Ejemplo n.º 10
0
 def test_step4_listP(self):
     self.assertEqual("true", step4_if_fn_do.rep("(list? (list 1 2))"))
     self.assertEqual("false", step4_if_fn_do.rep("(list? 4)"))
Ejemplo n.º 11
0
 def test_step4_str(self):
     self.assertEqual('"(1 a 2 3)"', step4_if_fn_do.rep('(str (list 1 "a" 2 3))'))
Ejemplo n.º 12
0
 def test_step4_quoted_string(self):
     self.assertEqual('"\\""', step4_if_fn_do.rep('"\\""'))
Ejemplo n.º 13
0
 def test_step4_variadic_b(self):
     self.assertEqual("0", step4_if_fn_do.rep("((fn* (& more) (count more)))"))
Ejemplo n.º 14
0
 def test_step4_boolean(self):
     self.assertEqual("true", step4_if_fn_do.rep("true"))
     self.assertEqual("false", step4_if_fn_do.rep("false"))
Ejemplo n.º 15
0
 def test_step4_prn(self):
     self.assertEqual("nil", step4_if_fn_do.rep("(prn 4)"))
Ejemplo n.º 16
0
 def test_step4_equal_vector_list(self):
     self.assertEqual("true", step4_if_fn_do.rep("(=[] (list))"))
Ejemplo n.º 17
0
 def test_step4_list(self):
     self.assertEqual("(1 2 (3 4) 5)", step4_if_fn_do.rep("(list 1 2 (list 3 4) 5)"))
Ejemplo n.º 18
0
 def test_step4_do(self):
     self.assertEqual("44", step4_if_fn_do.rep("(do 1 2 3 44)"))
     self.assertEqual("21", step4_if_fn_do.rep("(do 21)"))
Ejemplo n.º 19
0
 def test_step4_empty(self):
     self.assertEqual("true", step4_if_fn_do.rep("(empty? (list))"))
Ejemplo n.º 20
0
 def test_step4_nil(self):
     self.assertEqual("nil", step4_if_fn_do.rep("nil"))