{-| Description: Copyright: (c) 2019-2021 Sam May License: GPL-3.0-or-later Maintainer: ag@eitilt.life Stability: experimental Portability: portable -} module Foreign.Libcdio.Track.Test.Classes ( laws , genTrack , genTrackNum , genTrackFormat ) where import qualified Hedgehog as H import qualified Hedgehog.Gen as H.G import qualified Hedgehog.Classes as H.C import Foreign.Libcdio.Track import Test.Libcdio.Property.Common laws :: [LawsGroup] laws = [ ("Track", map (\f -> f genTrack) [ H.C.eqLaws , ordLaws' , H.C.showLaws , H.C.showReadLaws , H.C.boundedEnumLaws , storableLaws' ] ), ("TrackNum", map (\f -> f genTrackNum) [ H.C.eqLaws , ordLaws' , H.C.showLaws , H.C.showReadLaws ] ), ("TrackFormat", map (\f -> f genTrackFormat) [ H.C.eqLaws , ordLaws' , H.C.showLaws , H.C.showReadLaws , H.C.boundedEnumLaws ] )] genTrack :: H.Gen Track genTrack = H.G.enumBounded genTrackNum :: H.Gen TrackNum genTrackNum = do Track t <- H.G.enum minTrack maxTrack return t genTrackFormat :: H.Gen TrackFormat genTrackFormat = H.G.enumBounded