Reorganize tests
This commit is contained in:
parent
28f43d4282
commit
e6c4b50adf
22
c2.scm
22
c2.scm
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
(require racket/fixnum)
|
(require racket/fixnum)
|
||||||
|
|
||||||
|
(provide interp-R1 interp-exp env-head-value env-head-symbol eval-symbol add-binding)
|
||||||
|
|
||||||
(define (interp-R1 env)
|
(define (interp-R1 env)
|
||||||
(lambda (p)
|
(lambda (p)
|
||||||
|
|
@ -40,24 +41,3 @@
|
||||||
[(equal? env `()) (error "Symbol " s " not found")]
|
[(equal? env `()) (error "Symbol " s " not found")]
|
||||||
[(equal? (env-head-symbol env) s) (env-head-value env)]
|
[(equal? (env-head-symbol env) s) (env-head-value env)]
|
||||||
[else (eval-symbol (cdr env) s)]))
|
[else (eval-symbol (cdr env) s)]))
|
||||||
|
|
||||||
|
|
||||||
(define (test-eq a b)
|
|
||||||
(if (equal? a b) #t (error "assert failed: " a " != " b)))
|
|
||||||
|
|
||||||
(define (ppexp exp) (begin (print (exp)) (newline)))
|
|
||||||
|
|
||||||
(test-eq (env-head-value `((a 1))) 1)
|
|
||||||
(test-eq (env-head-symbol `((a 1))) `a)
|
|
||||||
(test-eq (eval-symbol `((a 1)) `a) 1)
|
|
||||||
(test-eq
|
|
||||||
(let ([env `((a 1) (b 2))])
|
|
||||||
((interp-exp env) `(+ a (- b))))
|
|
||||||
-1)
|
|
||||||
(test-eq
|
|
||||||
((interp-exp `()) `(let ([a (+ 1 2)]) (+ a 3)))
|
|
||||||
6)
|
|
||||||
|
|
||||||
(test-eq
|
|
||||||
((interp-R1 `()) `(program `() (let ([a (+ 1 2)]) (+ a 3))))
|
|
||||||
6)
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
#lang racket
|
||||||
|
|
||||||
|
(require "test-util.scm")
|
||||||
|
(require "c2.scm")
|
||||||
|
|
||||||
|
(test-eq (env-head-value `((a 1))) 1)
|
||||||
|
(test-eq (env-head-symbol `((a 1))) `a)
|
||||||
|
(test-eq (eval-symbol `((a 1)) `a) 1)
|
||||||
|
(test-eq
|
||||||
|
(let ([env `((a 1) (b 2))])
|
||||||
|
((interp-exp env) `(+ a (- b))))
|
||||||
|
-1)
|
||||||
|
(test-eq
|
||||||
|
((interp-exp `()) `(let ([a (+ 1 2)]) (+ a 3)))
|
||||||
|
6)
|
||||||
|
|
||||||
|
(test-eq
|
||||||
|
((interp-R1 `()) `(program `() (let ([a (+ 1 2)]) (+ a 3))))
|
||||||
|
6)
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
#lang racket
|
||||||
|
|
||||||
|
(provide test-eq ppexp)
|
||||||
|
|
||||||
|
(define (test-eq a b)
|
||||||
|
(if (equal? a b) #t (error "assert failed: " a " != " b)))
|
||||||
|
|
||||||
|
(define (ppexp exp) (begin (print exp) (newline)))
|
||||||
Loading…
Reference in New Issue