diff --git a/test-cvar.rkt b/test-cvar.rkt index d2c43f4..67dfcb2 100644 --- a/test-cvar.rkt +++ b/test-cvar.rkt @@ -1,5 +1,8 @@ #lang racket +(provide cvar-tests) + +(require rackunit) (require "test-util.rkt") (require "cvar.rkt") @@ -7,33 +10,42 @@ (Return (Int 0))) (define seq-2 - (Seq (Assign (Var 'x) (Int 42)) - (Return (Int 42)))) + (Seq (Assign (Var 'x) (Int 3)) + (Return (Prim '- (list (Int 1) (Var 'x)))))) (define seq-3 (Seq (Assign (Var 'x) (Int 42)) - (Return (Prim '+ (list (Int 1) (Var 'x)))))) + (Return (Int 42)))) (define seq-4 + (Seq (Assign (Var 'x) (Int 42)) + (Return (Prim '+ (list (Int 1) (Var 'x)))))) + +(define seq-5 (Return (Prim 'read '()))) (define (make-start-seq seq) (CProgram '() `((start . ,seq)))) -(test-eq - (interp-CVar (make-start-seq seq-1)) - 0) - -(test-eq - (interp-CVar (make-start-seq seq-2)) - 42) - -(test-eq - (interp-CVar (make-start-seq seq-3)) - 43) - -(with-input-from-num-list '(21) - (lambda () - (test-eq - (interp-CVar (make-start-seq seq-4)) - 21))) +(define cvar-tests + (test-suite + "CVar tests" + (test-case + "CVar interpretation tests" + (check-equal? + (interp-CVar (make-start-seq seq-1)) + 0) + (check-equal? + (interp-CVar (make-start-seq seq-2)) + -2) + (check-equal? + (interp-CVar (make-start-seq seq-3)) + 42) + (check-equal? + (interp-CVar (make-start-seq seq-4)) + 43) + (with-input-from-num-list '(21) + (lambda () + (check-equal? + (interp-CVar (make-start-seq seq-5)) + 21))))))