44 lines
1012 B
Racket
44 lines
1012 B
Racket
#lang plai
|
|
|
|
(define-type WAE
|
|
[num (n number?)]
|
|
[id (s symbol?)])
|
|
|
|
(define (go)
|
|
(test (num 5) (id 'x))
|
|
|
|
(test 1 (+ 1 0))
|
|
(test 1 1)
|
|
(test 1 2)
|
|
(test (/ 1 0) 0)
|
|
(test (error "zamboni") 347)
|
|
|
|
(test 3.4 3.4000001)
|
|
(test +inf.0 +inf.0)
|
|
|
|
(test/pred 0 zero?)
|
|
(test/pred 1 zero?)
|
|
(test/pred 1 (error 'pred))
|
|
(test/pred 1 (lambda (n) (/ 1 0)))
|
|
(test/pred "a" string->number)
|
|
|
|
(test/exn (error "zamboni") "zamboni")
|
|
(test/exn (error "samboni") "zamboni")
|
|
(test/exn 5 "zamboni")
|
|
(test/exn (/ 1 0) "division")
|
|
|
|
(test/regexp (error "zamboni") "zam")
|
|
(test/regexp (error "samboni") "zam")
|
|
(test/regexp 5 "zam")
|
|
(test/regexp (/ 1 0) "divis")
|
|
)
|
|
|
|
(for ([catch? (in-list (list #t #f))])
|
|
(plai-catch-test-exn catch?)
|
|
(for ([errors? (in-list (list #t #f))])
|
|
(print-only-errors errors?)
|
|
(for ([abridged? (in-list (list #t #f))])
|
|
(abridged-test-output abridged?)
|
|
(with-handlers ([exn? (lambda (x) (printf "~S~n" x))])
|
|
(go))
|
|
(newline)))) |