lish/src-test/Main.hs

42 lines
862 B
Haskell
Raw Normal View History

2017-02-18 16:57:37 +00:00
import Test.Tasty
import Test.Tasty.HUnit
import Test.Tasty.SmallCheck
2017-02-27 07:54:54 +00:00
import Lish.Test.Parser
2017-02-18 16:57:37 +00:00
main :: IO ()
main = defaultMain $ testGroup "all-tests" tests
2019-09-07 12:13:04 +00:00
inc = (+1)
2017-02-18 16:57:37 +00:00
tests :: [TestTree]
tests =
[ testGroup "SmallCheck" scTests
, testGroup "Unit tests" huTests
2019-09-07 12:13:04 +00:00
, parseTests
2017-02-18 16:57:37 +00:00
]
scTests :: [TestTree]
scTests =
[ testProperty "inc == succ" prop_succ
, testProperty "inc . negate == negate . pred" prop_pred
]
huTests :: [TestTree]
huTests =
[ testCase "Increment below TheAnswer" case_inc_below
, testCase "Decrement above TheAnswer" case_dec_above
]
prop_succ :: Int -> Bool
prop_succ n = inc n == succ n
prop_pred :: Int -> Bool
prop_pred n = inc (negate n) == negate (pred n)
case_inc_below :: Assertion
case_inc_below = inc 41 @?= (42 :: Int)
case_dec_above :: Assertion
case_dec_above = negate (inc (negate 43)) @?= (42 :: Int)