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)
|