genvalidity-sydtest-1.0.0.0: test/Test/Syd/Validity/FunctorSpec.hs
{-# LANGUAGE TypeApplications #-}
module Test.Syd.Validity.FunctorSpec where
import Data.GenValidity
import Test.Syd
import Test.Syd.Validity.Functor
spec :: Spec
spec = do
functorSpec @[]
functorSpec @Maybe
functorSpec @(Either Int)
functorSpec @((,) Int)
functorSpecOnArbitrary @[]
functorSpecOnArbitrary @Maybe
functorSpecOnGens
@[]
@Int
(pure 4)
"four"
(genListOf $ pure 5)
"list of fives"
((+) <$> genValid)
"increments"
((*) <$> genValid)
"scalings"
functorSpecOnGens
@Maybe
@String
(pure "ABC")
"ABC"
(Just <$> pure "ABC")
"Just an ABC"
((++) <$> genValid)
"prepends"
(flip (++) <$> genValid)
"appends"