#lang typed/racket ;; TODO: Warning: this file may be deprecated or out of date. (require "typed-untyped.rkt") (define-typed/untyped-modules #:no-test ;; Using check-equal? on some values result in the following error message: ;; Attempted to use a higher-order value passed as `Any` in untyped code ;; check-equal? and check-not-equal? are replaced by versions that work with ;; “higher-order values” below. (require (except-in (only-meta-in 0 typed/rackunit) ;; Above: typed/racket risks complaining that it can't do ;; for-meta in all-from-out if we don't use `only-meta-in` check-equal? check-not-equal?)) (provide (all-from-out typed/rackunit) check-equal? check-not-equal? check-eval-equal? check-eval-string-equal? check-eval-string-equal?/ns) (require "eval-get-values.rkt") (require syntax/parse/define) (define-simple-macro (check-equal? x y . message) (check-true (equal? x y) . message)) (define-simple-macro (check-not-equal? x y . message) (check-true (not (equal? x y)) . message)) (define-simple-macro (check-eval-equal? to-eval y . message) (check-true (equal? (eval-get-values to-eval (variable-reference->namespace (#%variable-reference))) y) . message)) (define-simple-macro (check-eval-string-equal? to-eval y . message) (check-true (equal? (eval-get-values (read (open-input-string to-eval)) (variable-reference->namespace (#%variable-reference))) y) . message)) (define-simple-macro (check-eval-string-equal?/ns ns-anchor to-eval y . message) (check-true (equal? (eval-get-values (read (open-input-string to-eval)) (namespace-anchor->namespace ns-anchor)) y) . message)) (define-syntax-rule (test-module body ...) (module* test typed/racket (require (submod "..")) body ...)))