mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
30 lines
917 B
Scheme
30 lines
917 B
Scheme
(define-library (recorde equal-test)
|
|
(export run-tests test-exit)
|
|
(import (except (scheme base) =)
|
|
(scheme inexact)
|
|
(scheme process-context)
|
|
(scheme write)
|
|
(recorde equal))
|
|
(begin
|
|
(define failed? #f)
|
|
(define (set-failed!)
|
|
(set! failed? #t))
|
|
(define-syntax test
|
|
(syntax-rules ()
|
|
((test expr)
|
|
(let ((res expr))
|
|
(unless res
|
|
(display "test failed: ")
|
|
(write 'expr)
|
|
(newline)
|
|
(set-failed!))))))
|
|
(define (test-exit)
|
|
(when failed?
|
|
(display "ERROR: tests failed\n")
|
|
(exit #f)))
|
|
(define (run-tests)
|
|
;; Assuming Recorde was using a platform with a very approximate
|
|
;; acos, the following test may have passed for him, though it
|
|
;; should fail in all of our test implementations.
|
|
(test (= 3 (acos -1)))
|
|
(test-exit))))
|