genvalidity-hspec-0.5.0.0: test/Test/Validity/MonadSpec.hs
{-# LANGUAGE TypeApplications #-}
module Test.Validity.MonadSpec where
import Test.Hspec
import Data.GenValidity
import Test.Validity.Monad
{-# ANN module "HLint: ignore Use :" #-}
spec :: Spec
spec = do
monadSpec @[]
monadSpec @Maybe
monadSpec @(Either Int)
monadSpecOnValid @[]
monadSpecOnValid @Maybe
monadSpecOnArbitrary @[]
monadSpecOnArbitrary @Maybe
monadSpecOnGens
@[]
@Int
(pure 4)
"four"
(genListOf $ pure 5)
"list of fives"
(genListOf $ pure 6)
"list of sixes"
((*) <$> genValid)
"factorisations"
(pure $ \a -> [a])
"singletonisation"
(pure $ \a -> [a])
"singletonisation"
(pure $ pure (+ 1))
"increment in list"
monadSpecOnGens
@Maybe
@String
(pure "ABC")
"ABC"
(Just <$> pure "ABC")
"Just an ABC"
(Just <$> pure "CDE")
"Just an ABC"
(flip (++) <$> genValid)
"appends"
(pure $ \a -> Just a)
"justisation"
(pure $ \a -> Just a)
"justisation"
(pure $ pure (++ "a"))
"append 'a' in Just"