1 #ifndef INTERPRETER_SUITE_H_
2 #define INTERPRETER_SUITE_H_
5 #include "ebisp/builtins.h"
6 #include "ebisp/expr.h"
12 struct Expr nil1 = NIL(gc);
13 struct Expr nil2 = NIL(gc);
14 ASSERT_TRUE(equal(nil1, nil2), {
15 fprintf(stderr, "Expected: ");
16 print_expr_as_sexpr(stderr, nil1);
17 fprintf(stderr, "\n");
19 fprintf(stderr, "Actual: ");
20 print_expr_as_sexpr(stderr, nil2);
21 fprintf(stderr, "\n");
25 CONS(gc, SYMBOL(gc, "a"),
26 CONS(gc, SYMBOL(gc, "b"),
27 CONS(gc, SYMBOL(gc, "c"),
30 CONS(gc, SYMBOL(gc, "a"),
31 CONS(gc, SYMBOL(gc, "b"),
32 CONS(gc, SYMBOL(gc, "c"),
34 ASSERT_TRUE(equal(list1, list2), {
35 fprintf(stderr, "Expected: ");
36 print_expr_as_sexpr(stderr, list1);
37 fprintf(stderr, "\n");
39 fprintf(stderr, "Actual: ");
40 print_expr_as_sexpr(stderr, list2);
41 fprintf(stderr, "\n");
53 struct Expr nil = NIL(gc);
55 struct Expr a = SYMBOL(gc, "a");
56 struct Expr b = SYMBOL(gc, "b");
57 struct Expr c = SYMBOL(gc, "c");
59 struct Expr a_pair = CONS(gc, a, NUMBER(gc, 10.0f));
60 struct Expr b_pair = CONS(gc, b, NUMBER(gc, 20.0f));
61 struct Expr c_pair = CONS(gc, c, NUMBER(gc, 30.0f));
66 CONS(gc, c_pair, nil)));
68 struct Expr assoc_result = assoc(a, alist);
70 ASSERT_TRUE(equal(a_pair, assoc_result), {
71 fprintf(stderr, "Expected: ");
72 print_expr_as_sexpr(stderr, a_pair);
73 fprintf(stderr, "\n");
75 fprintf(stderr, "Actual: ");
76 print_expr_as_sexpr(stderr, assoc_result);
77 fprintf(stderr, "\n");
85 TEST_SUITE(interpreter_suite)
93 #endif // INTERPRETER_SUITE_H_