diff options
Diffstat (limited to 'lambda-calcul/haskell/test/Minilang/REPLSpec.hs')
| -rw-r--r-- | lambda-calcul/haskell/test/Minilang/REPLSpec.hs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/lambda-calcul/haskell/test/Minilang/REPLSpec.hs b/lambda-calcul/haskell/test/Minilang/REPLSpec.hs index 851706c..74f6c29 100644 --- a/lambda-calcul/haskell/test/Minilang/REPLSpec.hs +++ b/lambda-calcul/haskell/test/Minilang/REPLSpec.hs @@ -92,8 +92,12 @@ spec = parallel $ it "can load 'bool-prog.lisp'" $ do boolProg <- readFile "bool-prog.lisp" - let PurerEnv{outputs} = runProgram (loadProgramInEnv boolProg) - outputs `shouldBe` [] + let PurerEnv {outputs} = runProgram (loadProgramInEnv boolProg) + outputs + `shouldBe` [ Evaluated (Abs ["f", "t"] (Sym "t")) (Lam "f" (Lam "t" (Var "t"))) (TyVar "<?>"), + Evaluated (Abs ["f", "t"] (Sym "f")) (Lam "f" (Lam "t" (Var "f"))) (TyVar "<?>"), + Evaluated (Abs ["f", "t"] (Sym "f")) (Lam "f" (Lam "t" (Var "f"))) (TyVar "<?>") + ] it "can load 'bool.lisp'" $ do boolProg <- readFile "bool.lisp" @@ -105,6 +109,16 @@ spec = parallel $ (TyVar "<?>") ] + it "can load 'fac.lisp'" $ do + boolProg <- readFile "fac.lisp" + let PurerEnv {outputs} = runProgram (loadProgramInEnv boolProg) + outputs + `shouldBe` [ Evaluated + (Abs ["f", "t"] (Sym "t")) + (Lam "f" (Lam "t" (Var "t"))) + (TyVar "<?>") + ] + around withTempFile $ it "evaluates single MiniLang term read from IO" $ \fileName -> do let outputFileName = fileName <> ".out" |
