(import checks) (import scheme (chicken base) (chicken condition) simple-tests) (define-tester (checkers? checkit (checker 'foo integer? positive?) checkme (checker integer? positive?)) (checker? checkit) #t (checker? checkme) #t (checker? string?) #f (checkit 5) 5 (checkme 5) 5 (condition-case (checkme -1) ((exn) #f)) #f (condition-case ((checker 'bar string?) 5) ((exn) #f)) #f) (define-tester (checks? x 5) (assert* 'x (integer? x)) #t (assert* 'x (integer? x) (odd? x)) #t (condition-case (assert* 'x (integer? x) (even? x)) ((exn assert) #f)) #f x 5 (>> x) 5 (<< x) 5 (>> x integer? odd?) 5 (>>% 'x x integer? odd?) 5 (<< x integer? odd?) 5 (<<% 'x x integer? odd?) 5 (<<< 'loc x integer? odd?) 5 (>>> 'loc x integer? odd?) 5 (<<<% 'loc 'x x integer? odd?) 5 (>>>% 'loc 'x x integer? odd?) 5 (condition-case (<<% 'x x integer? even?) ((exn argument) #f)) #f (condition-case (<<<% 'loc 'x x integer? even?) ((exn argument) #f)) #f (condition-case (>> x integer? even?) ((exn result) #f)) #f (<< ((lambda () #f)) boolean?) #f ((named-lambda (! n) (if (zero? n) 1 (* n (! (- n 1))))) 5) 120) (test-all CHECKS checkers? checks? )