aboutsummaryrefslogtreecommitdiffstats
path: root/test/Spec.hs
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2022-09-27 15:10:00 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2022-12-05 14:21:53 +0200
commit0a56af62ffa95360587728b82c947a2936743a4c (patch)
tree1083bbc78dc961382d0062c44ad9d251b11b5fd7 /test/Spec.hs
parent2952ecc005466775c9ac70a702da1bbad17a28e5 (diff)
Add src position to data structures
Diffstat (limited to 'test/Spec.hs')
-rw-r--r--test/Spec.hs24
1 files changed, 15 insertions, 9 deletions
diff --git a/test/Spec.hs b/test/Spec.hs
index 458cc35..6e9104e 100644
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -11,25 +11,31 @@ import Utils
import TestUtils
tokenizeTests = testGroup "tokenize" [
- do got <- expectSuccessL $ tokenize "(+ 1 (- 10 5))"
+ do got <- expectSuccessL $ tokenize "<test>" "(+ 1 (- 10 5))"
let expected = ["(", "+", "1", "(", "-", "10", "5", ")", ")"]
- assertEqual "" got expected
+ assertEqual "" (map tokenContent got) expected
]
parseTests = testGroup "parse" [
- do got <- expectSuccessL $ parse ["(", "+", "1", "2", ")"]
- let expected = [ASTFunctionCall [ASTSymbol "+", ASTInteger 1, ASTInteger 2]]
+ do got <- expectSuccessL $ parse (map makeNonsenseToken ["(", "+", "1", "2", ")"])
+ let expected = [wrapAST $ ASTFunctionCall
+ [ wrapAST $ ASTSymbol "+",
+ wrapAST $ ASTInteger 1,
+ wrapAST $ ASTInteger 2 ]]
assertEqual "" got expected
- , do got <- expectErrorL $ parse ["(", "+", "1", "2"]
+ , do got <- expectErrorL $ parse (map makeNonsenseToken ["(", "+", "1", "2"])
let expected = "unbalanced function call"
assertEqual "" got expected
]
evaluateTests = testGroup "evaluate" [
do let env = M.fromList [builtinAdd2] :: Env
- (gotEnv, gotAST) <- expectSuccessL $ evaluate env (ASTFunctionCall [ASTSymbol "+", ASTInteger 1, ASTInteger 2])
- let expectedAST = ASTInteger 3
+ (gotEnv, gotAST) <- expectSuccessL $ evaluate env (wrapAST $ ASTFunctionCall
+ [wrapAST $ ASTSymbol "+",
+ wrapAST $ ASTInteger 1,
+ wrapAST $ ASTInteger 2])
+ let expectedAST = wrapAST $ ASTInteger 3
assertEqual "" gotAST expectedAST
assertEqual "" (M.keys gotEnv) (M.keys env)
]
@@ -37,10 +43,10 @@ evaluateTests = testGroup "evaluate" [
e2eTests = testGroup "e2e" [
do let env = M.fromList [builtinSubtract2] :: Env
let script1 = "(let sub2 (\\[a b] (- a b)))\n(sub2 3 2)"
- (gotEnv, gotASTs) <- expectSuccessL $ runInlineScript env script1
+ (gotEnv, gotASTs) <- expectSuccessL $ runInlineScript "<test>" env script1
let expectedEnvKeys = ["-", "sub2"]
assertEqual "" (M.keys gotEnv) expectedEnvKeys
- assertEqual "" (last gotASTs) (ASTInteger 1)
+ assertEqual "" (last gotASTs) (wrapAST $ ASTInteger 1)
]
testGroup label xs = TestLabel label $ TestList $ map TestCase xs