X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fscheme%2Ftiny-test%2Fao_scheme_tiny_test.scheme;fp=src%2Fscheme%2Ftiny-test%2Fao_scheme_tiny_test.scheme;h=94c90ffef21ecd5ba7007f6fb6f7530ac276c623;hp=0000000000000000000000000000000000000000;hb=283553f0f118cef1dbcfbf5e86a43575a610d27f;hpb=48d164e3d4b2ef27fae20fae63b8014803a7b178 diff --git a/src/scheme/tiny-test/ao_scheme_tiny_test.scheme b/src/scheme/tiny-test/ao_scheme_tiny_test.scheme new file mode 100644 index 00000000..94c90ffe --- /dev/null +++ b/src/scheme/tiny-test/ao_scheme_tiny_test.scheme @@ -0,0 +1,56 @@ + ; Basic syntax tests + +(define _assert-eq_ + (macro (a b) + (list cond + (list (list eq? a b) + ) + (list 'else + (list display "failed: ") + (list write (list quote a)) + (list newline) + (list exit 1) + ) + ) + ) + ) + +(define _assert-equal_ + (macro (a b) + (list cond + (list (list equal? a b) + ) + (list 'else + (list display "failed: ") + (list write (list quote a)) + (list newline) + (list exit 1) + ) + ) + ) + ) + +(_assert-eq_ (or #f #t) #t) +(_assert-eq_ (and #t #f) #f) +(_assert-eq_ (if (> 3 2) 'yes) 'yes) +(_assert-eq_ (if (> 3 2) 'yes 'no) 'yes) +(_assert-eq_ (if (> 2 3) 'no 'yes) 'yes) +(_assert-eq_ (if (> 2 3) 'no) #f) + +(_assert-eq_ (letrec ((a 1) (b a)) (+ a b)) 2) + +(_assert-eq_ (equal? '(a b c) '(a b c)) #t) +(_assert-eq_ (equal? '(a b c) '(a b b)) #f) + +(_assert-equal_ (member '(2) '((1) (2) (3))) '((2) (3))) +(_assert-equal_ (member '(4) '((1) (2) (3))) #f) + +(_assert-equal_ (memq 2 '(1 2 3)) '(2 3)) +(_assert-equal_ (memq 4 '(1 2 3)) #f) +(_assert-equal_ (memq '(2) '((1) (2) (3))) #f) + +(_assert-equal_ (assq 'a '((a 1) (b 2) (c 3))) '(a 1)) +(_assert-equal_ (assoc '(c) '((a 1) (b 2) ((c) 3))) '((c) 3)) + +(_assert-equal_ (map cadr '((a b) (d e) (g h))) '(b e h)) +