From 3666d3b9334286a2242c8da20cac446dd9ee17e9 Mon Sep 17 00:00:00 2001 From: Oskari Timperi Date: Wed, 14 May 2014 23:44:46 +0300 Subject: eval: more tests --- eval.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'eval.c') 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 */ -- cgit v1.2.3