AtlatestRepositorysigil-r7rs

sigil-r7rs / tree / testtest-scheme-cxr.sgl

1;;; Tests for (scheme cxr) — R7RS-compliant 3- and 4-level car/cdr accessors.
2
3(import (sigil test)
4 (scheme cxr))
5
6(test-group "scheme-cxr 3-level"
7 (test "caaar" (assert-equal 1 (caaar '(((1)) 2))))
8 (test "caadr" (assert-equal 2 (caadr '(1 (2 3) 4))))
9 (test "cadar" (assert-equal 2 (cadar '((1 2 3) other))))
10 (test "caddr" (assert-equal 3 (caddr '(1 2 3 4))))
11 (test "cdaar" (assert-equal '(2 3) (cdaar '(((1 2 3)) other))))
12 (test "cdadr" (assert-equal '(3 4) (cdadr '(1 (2 3 4) other))))
13 (test "cddar" (assert-equal '(3) (cddar '((1 2 3) other))))
14 (test "cdddr" (assert-equal '(4) (cdddr '(1 2 3 4)))))
16(test-group "scheme-cxr 4-level"
17 (test "caaaar" (assert-equal 'deep (caaaar '((((deep)))))))
18 (test "caaadr" (assert-equal 'deep (caaadr '(x ((deep)) y))))
19 (test "caadar" (assert-equal 'deep (caadar '((x (deep) y) other))))
20 (test "caaddr" (assert-equal 'deep (caaddr '(x y (deep) z))))
21 (test "cadaar" (assert-equal 'b (cadaar '(((a b c)) other))))
22 (test "cadadr" (assert-equal 'b (cadadr '(x (a b c) other))))
23 (test "caddar" (assert-equal 'c (caddar '((a b c) other))))
24 (test "cadddr" (assert-equal 4 (cadddr '(1 2 3 4 5))))
25 (test "cdaaar" (assert-equal '(2) (cdaaar '((((1 2))) other))))
26 (test "cdaadr" (assert-equal '(2) (cdaadr '(x ((1 2)) y))))
27 (test "cdadar" (assert-equal '(2) (cdadar '((x (1 2) y) other))))
28 (test "cdaddr" (assert-equal '(b c) (cdaddr '(x y (a b c) z))))
29 (test "cddaar" (assert-equal '(3) (cddaar '(((1 2 3)) other))))
30 (test "cddadr" (assert-equal '(3) (cddadr '(x (1 2 3) other))))
31 (test "cdddar" (assert-equal '(4) (cdddar '((1 2 3 4) other))))
32 (test "cddddr" (assert-equal '(5 6) (cddddr '(1 2 3 4 5 6)))))