summaryrefslogtreecommitdiff
path: root/lambda-calcul/haskell/test/Minilang
diff options
context:
space:
mode:
Diffstat (limited to 'lambda-calcul/haskell/test/Minilang')
-rw-r--r--lambda-calcul/haskell/test/Minilang/REPLSpec.hs18
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"