Advertisement
Guest User

Untitled

a guest
Oct 9th, 2015
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 1.06 KB | None | 0 0
  1. ;unit-testing.scm
  2. (define-syntax test
  3.   (syntax-rules ()
  4.     ((_expression expected-result)
  5.      (list (quote expression) expected-result))))
  6. (define (run-test the-test)
  7.   (let ((expression (car the-test)))
  8.     (write expression)
  9.     (let* ((result (eval expression (interaction-environment)))
  10.            (status (equal? (cadr the-test) result)))
  11.       (if status
  12.           (display "ok")
  13.           (display "fail"))
  14.       (newline)
  15.       (if (not status)
  16.           (begin
  17.             (display " Expected: ")
  18.             (write (cadr the-test))
  19.             (newline)
  20.             (display "Returned: ")
  21.             (write result)
  22.             (newline)))
  23.       status)))
  24. (define (run-tests the-tests)
  25.   (define (and-fold x xs)
  26.     (if (null? xs)
  27.         x
  28.         (and-fold (and x (car xs)) (cdr xs))))
  29.   (and-fold #t (map run-test the-tests)))
  30. (define(signum x)
  31.   (cond
  32.     (( < x 0) -1)
  33.     ((= x 0) 1)
  34.     (else 1)))
  35. (define the-tests
  36.   (list (test (signum -2) -1)
  37.         (test (signum 0) 0)
  38.         (test (signum 2) 1)))
  39. (run-tests the-tests)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement