module TypeCheck ( tcTests
) where
import Language.Dickinson.File
import Test.Tasty
import Test.Tasty.HUnit
tcTests :: TestTree
tcTests = testGroup "Typecheck test"
[ testCase "Works on :match" testMatchTc
, testCase "Currying" testCurry
, testCase "See ADTs" testAdtTc
, testCase "Currying (prelude functions)" testCurryPrelude
, testCase "Works with :choice branches" testChoice
, testCase "Checks ADTs and matches" testAdtMatch
]
testChoice :: Assertion
testChoice = tcPlain "test/data/tyChoice.dck"
testCurry :: Assertion
testCurry = tcPlain "test/data/quoteify.dck"
testMatchTc :: Assertion
testMatchTc = tcPlain "test/eval/match.dck"
testAdtMatch :: Assertion
testAdtMatch = tcPlain "test/eval/matchSex.dck"
testAdtTc :: Assertion
testAdtTc = tcPlain "test/data/adt.dck"
testCurryPrelude :: Assertion
testCurryPrelude = tcPlain "prelude/curry.dck"
tcPlain :: FilePath -> Assertion
tcPlain = tcFile []