{-| Description: Copyright: (c) 2019-2020 Sam May License: GPL-3.0-or-later Maintainer: ag@eitilt.life Stability: experimental Portability: portable -} module Foreign.Libcdio.Util.Test.Classes ( laws , genBcd ) where import qualified Hedgehog as H import qualified Hedgehog.Gen as H.G import qualified Hedgehog.Classes as H.C import Foreign.Libcdio.Types import Test.Libcdio.Property.Common laws :: [LawsGroup] laws = [ ("Bcd", map (\f -> f genBcd) [ H.C.eqLaws , ordLaws' , H.C.showLaws , H.C.showReadLaws , H.C.boundedEnumLaws , storableLaws' ] ), ("Integral Bcd", [H.C.integralLaws $ nonZero genBcd] )] genBcd :: H.Gen Bcd genBcd = H.G.enumBounded