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