hscdio-0.1.0.0: test/Foreign/Libcdio/CdText/Test/Classes.hs
{-|
Description:
Copyright: (c) 2019 Sam May
License: GPL-3.0-or-later
Maintainer: ag@eitilt.life
Stability: experimental
Portability: portable
-}
module Foreign.Libcdio.CdText.Test.Classes
( laws
, genGenre
, genLanguage
) where
import qualified Hedgehog as H
import qualified Hedgehog.Gen as H.G
import qualified Hedgehog.Classes as H.C
import Test.Libcdio.Property.Common
import Foreign.Libcdio.CdText
laws :: [LawsGroup]
laws =
[ ("Field", map (\f -> f genField)
[ H.C.eqLaws
, ordLaws'
, H.C.showLaws
, H.C.showReadLaws
, H.C.boundedEnumLaws
]
), ("Genre", map (\f -> f genGenre)
[ H.C.eqLaws
, ordLaws'
, H.C.showLaws
, H.C.showReadLaws
, H.C.boundedEnumLaws
]
), ("Language", map (\f -> f genLanguage)
[ H.C.eqLaws
, ordLaws'
, H.C.showLaws
, H.C.showReadLaws
, H.C.boundedEnumLaws
]
)]
genField :: H.Gen Field
genField = H.G.enumBounded
genGenre :: H.Gen Genre
genGenre = H.G.enumBounded
genLanguage :: H.Gen Language
genLanguage = enumSparse