~ chicken-core (chicken-5) /tests/scrutiny-tests-2.scm
Trap1;;;; scrutiny-tests-2.scm
2
3
4(define-syntax predicate
5 (syntax-rules ()
6 ((_ pred (proto ...) (nonproto ...))
7 (begin
8 (assert (pred proto)) ...
9 (assert (not (pred nonproto))) ...))))
10
11
12;;;
13
14(let* ((p '(1 . 2))
15 (l (list))
16 (n '())
17 (i 123)
18 (f 12.3)
19 (u (+ i f)))
20 (predicate pair? (p) (l n i f))
21 (predicate list? (l n) (p i f))
22 (predicate null? (n l) (p i f))
23 (predicate fixnum? (i) (f u))
24 (predicate exact? (i) (f u))
25 (predicate flonum? (f u) (i))
26 (predicate inexact? (f u) (i))
27 (predicate number? (i f u) (n)))