racket/collects/tests/stepper/language-level-model.rkt
2010-12-08 16:37:15 -08:00

65 lines
1.6 KiB
Racket

#lang racket/base
(require stepper/private/model-settings)
(provide (all-defined-out))
;; DEFINING A LANGUAGE FOR THE PURPOSES OF TESTING
;; ll-model : a representation of the behavior of a language level w.r.t. the stepper
(define-struct ll-model (namespace-spec render-settings enable-testing?))
;; the built-in ll-models:
(define mz
(make-ll-model 'mzscheme fake-mz-render-settings #f))
(define beginner
(make-ll-model `(lib "htdp-beginner.ss" "lang") fake-beginner-render-settings #t))
(define beginner-wla
(make-ll-model `(lib "htdp-beginner-abbr.ss" "lang") fake-beginner-wla-render-settings #t))
(define intermediate
(make-ll-model `(lib "htdp-intermediate.ss" "lang") fake-intermediate-render-settings #t))
(define intermediate-lambda
(make-ll-model `(lib "htdp-intermediate-lambda.ss" "lang") fake-intermediate/lambda-render-settings #t))
(define advanced
(make-ll-model `(lib "htdp-advanced.ss" "lang") fake-advanced-render-settings #t))
(define lazy
(make-ll-model `(lib "lazy.ss" "lazy") fake-lazy-render-settings #f))
;; unsure about the render-settings, here:
(define dmda-a
(make-ll-model `(lib "DMdA-beginner.ss" "deinprogramm") fake-beginner-render-settings #t))
;; SUPPORT FOR TESTING A BUNCH OF LANGUAGES AT ONCE:
;; built-in multi-language bundles:
(define upto-int/lam
(list beginner
beginner-wla
intermediate
intermediate-lambda))
(define upto-int
(list beginner
beginner-wla
intermediate))
(define bwla-to-int/lam
(list beginner-wla
intermediate
intermediate-lambda))
(define both-intermediates
(list intermediate
intermediate-lambda))