diff --git a/rint.rkt b/rint.rkt index d91bdaf..8ebd440 100644 --- a/rint.rkt +++ b/rint.rkt @@ -21,6 +21,7 @@ [(Int n) n] [(Prim 'read '()) (read-fixnum)] [(Prim '- (list e)) (fx- 0 (interp-exp e))] + [(Prim '- (list e1 e2)) (fx- (interp-exp e1) (interp-exp e2))] [(Prim '+ (list e1 e2)) (fx+ (interp-exp e1) (interp-exp e2))])) (define (interp-RInt p) diff --git a/test-rint.rkt b/test-rint.rkt index 94e8a1b..794fe73 100644 --- a/test-rint.rkt +++ b/test-rint.rkt @@ -15,11 +15,16 @@ (define test-rint-tests (test-suite "RInt interpretation tests" - (test-case + (test-case "program with input" (check-equal? -5 (with-input-from-num-list '(3) - (lambda () (interp-RInt program))))))) + (lambda () (interp-RInt program))))) + (test-case + "simple difference" + (check-equal? + -3 + (interp-RInt (Program '() (Prim '- (list (Int 5) (Int 8)))))))))