racket/collects/redex/private/bitmap-test.ss
2008-08-15 04:11:31 +00:00

54 lines
1.2 KiB
Scheme

#lang scheme
(require "bitmap-test-util.ss"
"../main.ss")
;; tests:
;; - language,
;; - multi-line non-terminals, single-line non-terminals
(define-language lang
(e (e e)
x
(λ (x) e)
number)
(v number (λ (x) e))
((x y) variable-not-otherwise-mentioned))
(test (render-language lang) "language.png")
(test (render-language lang #:nts '(e v)) "language-nox.png")
(define-extended-language lang++ lang
(e .... number (+ e e))
(v .... number))
(test (render-language lang++) "extended-language.png")
(define red
(reduction-relation
lang
(--> ((λ (x) e) v) (S x v e))))
;; tests: reduction-relation
(test (render-reduction-relation red)
"reduction-relation.png")
(test (render-reduction-relation
(extend-reduction-relation red lang (--> 1 2)))
"extended-reduction-relation.png")
(define-metafunction lang
[(S x v e) e])
(test (render-metafunction S)
"metafunction.png")
;; in this test, teh `x' is italic and the 'z' is sf, since 'x' is in the grammar, and 'z' is not.
(test (render-lw
lang
(to-lw ((λ (x) (x x))
(λ (z) (z z)))))
"lw.png")
(printf "bitmap-test.ss: ")
(done)