commit 90eaef4ab925dff9a98e6727ec531071456e5f0c
parent dcdb9ea1b8303e13fcd96a5218c0bd0984f6c9dc
Author: Ed van Bruggen <edvb@uw.edu>
Date: Fri, 18 Jan 2019 15:57:34 -0800
Add arithmetic function tests
Diffstat:
test.c | | | 80 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------- |
1 file changed, 65 insertions(+), 15 deletions(-)
diff --git a/test.c b/test.c
@@ -161,23 +161,73 @@ char *tests[][2] = {
{ "(add2 2)", "4" },
{ "lambda", NULL },
- { "((lambda (x) x) 3)", "3" },
- { "((lambda (x) x) (+ 1 2))", "3" },
- { "((lambda (x) (+ x 1)) 8)", "9" },
- { "((lambda (a b) (+ a b)) 2 2)", "4" },
- { "((lambda () 5))", "5" },
+ { "((lambda (x) x) 3)", "3" },
+ { "((lambda (x) x) (+ 1 2))", "3" },
+ { "((lambda (x) (+ x 1)) 8)", "9" },
+ { "((lambda (a b) (+ a b)) 2 2)", "4" },
+ { "((lambda () 5))", "5" },
- { "add", NULL },
- { "(+ 1 1)", "2" },
- { "(+ 1 (+ 1 2))", "4" },
- { "(+ 1029 283)", "1312" },
+ { "add", NULL },
+ { "(+ 1 1)", "2" },
+ { "(+ 1 (+ 1 2))", "4" },
+ { "(+ 1029 283)", "1312" },
+ { "(+ 204 8.3)", "212.3" },
+ { "(+ 33 3/4)", "135/4" },
+ { "(+ 1/3 5)", "16/3" },
+ { "(+ 7/4 pi)", "4.89159265358979" },
+ { "(+ 2/5 3/2)", "19/10" },
+ { "(+ 2.1 2)", "4.1" },
+ { "(+ 8.6 5.3)", "13.9" },
+ { "(+ 3.7 1/8)", "3.825" },
- { "sub", NULL },
- { "(- 3)", "-3" },
- { "(- +3)", "-3" },
- { "(- -289)", "289" },
- { "(- 5 4)", "1" },
- { "(- 53 88)", "-35" },
+ { "subtract", NULL },
+ { "(- 3)", "-3" },
+ { "(- +3)", "-3" },
+ { "(- -289)", "289" },
+ { "(- 7/8)", "-7/8" },
+ { "(- -6.412E2)", "641.2" },
+ { "(- 5 4)", "1" },
+ { "(- 53 88)", "-35" },
+ { "(- 204 8.3)", "195.7" },
+ { "(- 33 3/4)", "129/4" },
+ { "(- 1/3 5)", "-14/3" },
+ { "(- 7/4 pi)", "-1.39159265358979" },
+ { "(- 2/5 3/2)", "-11/10" },
+ { "(- 2.1 2)", "0.1" },
+ { "(- 8.6 5.3)", "3.3" },
+ { "(- 3.7 1/8)", "3.575" },
+
+ { "multiply", NULL },
+ { "(* 3 2)", "6" },
+ { "(* -2 8.89)", "-17.78" },
+ { "(* 6 3/4)", "9/2" },
+ { "(* 1.004 8)", "8.032" },
+ { "(* 1.34e3 .0012)", "1.608" },
+ { "(* e -5/2)", "-6.79570457114761" },
+ { "(* 1/3 6)", "2" },
+ { "(* 5/2 14.221)", "35.5525" },
+ { "(* 6/8 8/7)", "6/7" },
+
+ { "divide", NULL },
+ { "(/ 1 2)", "1/2" },
+ { "(/ 8 4)", "2" },
+ { "(/ 6 2.1)", "2.85714285714286" },
+ { "(/ 4 4/3)", "3" },
+ { "(/ 10.42 5)", "2.084" },
+ { "(/ 1.34e-2 4.3332)", "0.0030924028431644" },
+ { "(/ 1.04 -15/4)", "-0.277333333333333" },
+ { "(/ 4/3 7)", "4/21" },
+ { "(/ 5/4 3.2)", "0.390625" },
+ { "(/ 1/3 5/4)", "4/15" },
+
+ { "mod", NULL },
+ { "(mod 10 3)", "1" },
+ { "(mod -11 3)", "-2" },
+ { "(mod 10 -3)", "1" },
+ { "(mod -10 -3)", "-1" },
+ { "(mod 10 5)", "0" },
+ { "(mod 7 2)", "1" },
+ { "(mod 8 5)", "3" },
{ "compare", NULL },
{ "(< 2 3)", "t" },