Someone on stack overflow just discovered that “check-random”—from Kathy Gray’s teaching language test framework—doesn’t work with TR. It looks like this is because no one bothered to implement it. I suggested that they change to rackunit, instead, and provided them with this quick hack version of check-random.
I guess my question is this: am I right in thinking that the only issue with using Kathy’s teaching language test framework is that no one bothered to provide a type for it? If so, is that something we should do? Link to SO post: http://stackoverflow.com/questions/43072656/typed-racket-error-with-check-random My suggestion to the OP: #lang typed/racket ; provides check-expect and others for testing (require typed/rackunit) ;; create a new prng, set the seed to the given number, run the thunk. (: run-with-seed (All (T) ((-> T) Positive-Integer -> T))) (define (run-with-seed thunk seed) (parameterize ([current-pseudo-random-generator (make-pseudo-random-generator)]) (random-seed seed) (thunk))) ;; run a check-equal where both sides get the same PRNG seed (define-syntax check-random-equal? (syntax-rules () [(_ a b) (let ([seed (add1 (random (sub1 (expt 2 31))))]) (check-equal? (run-with-seed (λ () a) seed) (run-with-seed (λ () b) seed)))])) (: bar (-> Positive-Integer Integer)) (define (bar x) (random x)) (check-random-equal? (bar 6) (random 6)) -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.