aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2014-05-14 23:44:46 +0300
committerOskari Timperi <oskari.timperi@iki.fi>2014-05-14 23:44:46 +0300
commit3666d3b9334286a2242c8da20cac446dd9ee17e9 (patch)
treeb6c25341cfe896acef113b6dda0e03da2fc172d4
parent671e454c7c2d4080e3737efd9132ac9a63d808db (diff)
downloadlispish-3666d3b9334286a2242c8da20cac446dd9ee17e9.tar.gz
lispish-3666d3b9334286a2242c8da20cac446dd9ee17e9.zip
eval: more tests
-rw-r--r--eval.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 249ab1c..5c8d314 100644
--- a/eval.c
+++ b/eval.c
@@ -311,4 +311,27 @@ TEST(eval)
#undef EVAL
}
+TEST(nested_expression)
+{
+ struct list *result = eval_str("(eq #f (> (- (+ 1 3) (* 2 (mod 7 4))) 4))");
+ ASSERT_TRUE(result != NULL);
+ ASSERT_TRUE(IS_TRUE(result));
+}
+
+TEST(basic_if)
+{
+ struct list *result = eval_str("(if #t 42 1000)");
+ ASSERT_TRUE(result != NULL);
+ ASSERT_EQ(ATOM_INT, ATOM_TYPE(result));
+ ASSERT_EQ(42, LIST_GET_ATOM(result)->l);
+}
+
+TEST(if_with_sub_expressions)
+{
+ struct list *result = eval_str("(if (> 1 2) (- 1000 1) (+ 40 (- 3 1)))");
+ ASSERT_TRUE(result != NULL);
+ ASSERT_EQ(ATOM_INT, ATOM_TYPE(result));
+ ASSERT_EQ(42, LIST_GET_ATOM(result)->l);
+}
+
#endif /* BUILD_TEST */