Download from: http://web.mit.edu/~axch/www/test_manager.html
API documentation: http://web.mit.edu/~axch/www/testing-1.2.html
Example:
Exercise 1.3. Define a procedure that takes three numbers as arguments and returns the sum of the squares of the two larger numbers.
(load "test-manager/load.scm")
(in-test-group
ex13-test
(define-test (order-trap)
;; a>b>c, b>c>a, c>a>b
;; a<b<c, b<c<a, c<a<b
(assert= 13 (ex13 3 2 1))
(assert= 13 (ex13 1 3 2))
(assert= 13 (ex13 2 1 3))
(assert= 13 (ex13 1 2 3))
(assert= 13 (ex13 3 1 2))
(assert= 13 (ex13 2 3 1)))
(define-test (equal-trap)
;; a=b=c
;; a=b>c, b=c>a, c=a>b
;; a=b<c, b=c<a, c=a<b
(assert= 0 (ex13 0 0 0))
(assert= 2 (ex13 0 1 1))
(assert= 2 (ex13 1 0 1))
(assert= 2 (ex13 1 1 0))
(assert= 1 (ex13 1 0 0))
(assert= 1 (ex13 0 1 0))
(assert= 1 (ex13 0 0 1))))
Wrong version
(cond ((and (> a b) (> c b)) (sum-of-squares a c))
((and (> a c) (> b c)) (sum-of-squares a b))
(else (sum-of-squares b c))))
(run-test '(ex13-test))
.F
1) Failure (#[continuation 16]):
(ex13-test equal-trap):
<1> expected to be = to
<0>.
2 tests, 1 failures, 0 errors.
;Value: 1
Correct version
(define (ex13 a b c)
(cond ((and (>= a b) (>= c b)) (sum-of-squares a c))
((and (>= a c) (>= b c)) (sum-of-squares a b))
(else (sum-of-squares b c))))
(run-test '(ex13-test))
..
2 tests, 0 failures, 0 errors.
;Value: 0
kimotsi
엌 나 이거 귀찮아서 직점 맨들어 썼었는데
저도 걍 있나 궁금해서 찾아본 정도임