racket/collects/tests/stepper/language-level-model.rkt
2010-04-27 16:50:15 -06:00

65 lines
1.7 KiB
Racket

#lang scheme/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 teachpack-specs render-settings show-lambdas-as-lambdas? enable-testing?))
;; the built-in ll-models:
(define mz
(make-ll-model 'mzscheme `() fake-mz-render-settings #t #f))
(define beginner
(make-ll-model `(lib "htdp-beginner.ss" "lang") `() fake-beginner-render-settings #f #t))
(define beginner-wla
(make-ll-model `(lib "htdp-beginner-abbr.ss" "lang") `() fake-beginner-wla-render-settings #f #t))
(define intermediate
(make-ll-model `(lib "htdp-intermediate.ss" "lang") `() fake-intermediate-render-settings #f #t))
(define intermediate-lambda
(make-ll-model `(lib "htdp-intermediate-lambda.ss" "lang") `() fake-intermediate/lambda-render-settings #t #t))
(define advanced
(make-ll-model `(lib "htdp-advanced.ss" "lang") `() fake-advanced-render-settings #t #t))
(define lazy
(make-ll-model `(lib "lazy.ss" "lazy") `() fake-mz-render-settings #f #f))
;; unsure about the render-settings, here:
(define dmda-a
(make-ll-model `(lib "DMdA-beginner.ss" "deinprogramm") '() fake-beginner-render-settings #f #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))