Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;unit-testing.scm
- (define-syntax test
- (syntax-rules ()
- ((_expression expected-result)
- (list (quote expression) expected-result))))
- (define (run-test the-test)
- (let ((expression (car the-test)))
- (write expression)
- (let* ((result (eval expression (interaction-environment)))
- (status (equal? (cadr the-test) result)))
- (if status
- (display "ok")
- (display "fail"))
- (newline)
- (if (not status)
- (begin
- (display " Expected: ")
- (write (cadr the-test))
- (newline)
- (display "Returned: ")
- (write result)
- (newline)))
- status)))
- (define (run-tests the-tests)
- (define (and-fold x xs)
- (if (null? xs)
- x
- (and-fold (and x (car xs)) (cdr xs))))
- (and-fold #t (map run-test the-tests)))
- (define(signum x)
- (cond
- (( < x 0) -1)
- ((= x 0) 1)
- (else 1)))
- (define the-tests
- (list (test (signum -2) -1)
- (test (signum 0) 0)
- (test (signum 2) 1)))
- (run-tests the-tests)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement