(import simple-tests) (import (only (chicken base) parameterize print case-lambda)) (newline) (define-test (bar n) (positive? n) (even? n)) (bar 5) (define-test (foo x y) (< x y) "COMMENT" (bar 4) (odd? 3) (positive? 3)) (foo 1 2) (define-test (++) (= (+ 1 2) 3) (= (+ 1 2 3) 6)) (++) (define-test (**) (= (* 1 2) 2) (= (* 1 2 3) 6)) (**) (define-test (arithmetic) (++) (**)) (arithmetic) (define-test (baz) (and? #t #t #t) (and?) (not (and? #t #f #t))) (baz) '(compound-test (OLD) (bar 5) (foo 1 2) (++) (**) (arithmetic) (baz)) (newline) (do-checks (bar? verbose? n 5) (positive? n) #t (even? n) #f) (bar?) (define-checks (+? verbose?) (+ 1 2) 3 (+ 1 2 3) 6) (+?) (define-checks (*? verbose?) (* 1 2) 2 (* 1 2 3) 6) (*?) (define-checks (arithmetic? verbose?) (+? #f) #t (*? #f) #t) (arithmetic?) (do-checks (baz? verbose?) (and? #t #t #t) #t (and?) #t (and? #t #f #t) #f) (baz?) (define-checks (qux? verbose?) ((== "x") "y") #f ((== "x") "x") #t ((== baz?) baz?) #t ((== baz?) bar?) #f ((== '()) '()) #t ((== 'x) 'y) #f ((== 'x) 'x) #t ((== #(0 1 2)) #(0 1 2)) #t ((== #(0 1 2)) '(0 1 2)) #f) (qux?) (define counter (let ((n 0)) (case-lambda (() (set! n (add1 n)) n) ((k) (set! n k) n)))) (define-checks (counter? verbose?) (counter 0) 0 (counter) 1 (counter) 2 (counter) 3 (counter) 4) (counter?) '(check-all NEW (bar?) (*?) (+?) (arithmetic?) (baz?) (qux?) (counter?)) (define-tester (Bar? n 5) (positive? n) #t (even? n) #f) (define-tester (Plus?) (+ 1 2) 3 (+ 1 2 3) 6) (define-tester (Times?) (* 1 2) 2 (* 1 2 3) 6) (define-tester (Arithmetic?) (parameterize ((verbose? #f)) (Plus?)) #t (parameterize ((verbose? #f)) (Times?)) #t) (define Counter (let ((n 0)) (case-lambda (() (set! n (add1 n)) n) ((k) (set! n k) n)))) (define-tester (Counter?) (Counter 0) 0 (Counter) 1 (Counter) 2 (Counter) 3 (Counter) 4 (Counter 0) 0) '(test-all SIMPLE-TESTS Bar? Times? Plus? Arithmetic? Counter?) (test-all SIMPLE-TESTS Bar? Plus? Times? Arithmetic? Counter? )