racket/collects/tests/r6rs/r5rs.ss
Matthew Flatt 20055ac00e r6rs tests and repairs
svn: r8913
2008-03-07 03:18:06 +00:00

64 lines
1.3 KiB
Scheme

#!r6rs
(library (tests r6rs r5rs)
(export run-r5rs-tests)
(import (rnrs)
(rnrs r5rs)
(tests r6rs test))
;; ----------------------------------------
(define a-stream
(letrec ((next
(lambda (n)
(cons n (delay (next (+ n 1)))))))
(next 0)))
(define head car)
(define tail
(lambda (stream) (force (cdr stream))))
(define count 0)
(define p
(delay (begin (set! count (+ count 1))
(if (> count x)
count
(force p)))))
(define x 5)
;; ----------------------------------------
(define (run-r5rs-tests)
(test (modulo 13 4) 1)
(test (remainder 13 4) 1)
(test (modulo -13 4) 3)
(test (remainder -13 4) -1)
(test (modulo 13 -4) -3)
(test (remainder 13 -4) 1)
(test (modulo -13 -4) -1)
(test (remainder -13 -4) -1)
(test (remainder -13 -4.0) -1.0)
(test (force (delay (+ 1 2))) 3)
(test (let ((p (delay (+ 1 2))))
(list (force p) (force p)))
'(3 3))
(test (head (tail (tail a-stream))) 2)
(test/unspec p)
(test (force p) 6)
(test/unspec p)
(test (begin (set! x 10)
(force p))
6)
;;
))