hscdio-0.1.0.0: test/Foreign/Libcdio/Track/Test/Classes.hs
{-|
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