Add a trivial test for ‘MonadIO’ instance

This commit is contained in:
mrkkrp 2016-04-30 18:32:50 +07:00
parent 2eddd78f0f
commit 49303f18c4

View File

@ -103,6 +103,7 @@ tests = testGroup "Primitive parser combinators"
, testProperty "ParsecT monad laws: left identity" prop_monad_left_id
, testProperty "ParsecT monad laws: right identity" prop_monad_right_id
, testProperty "ParsecT monad laws: associativity" prop_monad_assoc
, testProperty "ParsecT monad io (liftIO)" prop_monad_io
, testProperty "ParsecT monad reader ask" prop_monad_reader_ask
, testProperty "ParsecT monad reader local" prop_monad_reader_local
, testProperty "ParsecT monad state get" prop_monad_state_get
@ -334,6 +335,12 @@ prop_monad_assoc a b c = ((m >>= f) >>= g) !=! (m >>= (\x -> f x >>= g))
f x = return $ x + b
g x = return $ x + c
-- MonadIO instance
prop_monad_io :: Integer -> Property
prop_monad_io n = ioProperty (liftM (=== Right n) (runParserT p "" ""))
where p = liftIO (return n) :: ParsecT Dec String IO Integer
-- MonadReader instance
prop_monad_reader_ask :: Integer -> Property