country-0.2: test/Spec.hs
import Country (Country)
import Data.Proxy (Proxy(..))
import Test.Tasty (defaultMain,testGroup,TestTree)
import qualified Test.QuickCheck.Classes as QCC
import qualified Test.QuickCheck.Classes.IsList as QCCL
import qualified Test.Tasty.QuickCheck as TQC
import qualified Test.QuickCheck as QC
main :: IO ()
main = defaultMain
$ testGroup "Country"
$ map lawsToTest
$ map ($ proxy)
$ [ QCC.boundedEnumLaws
, QCC.eqLaws
, QCC.ordLaws
, QCC.primLaws
, QCC.showLaws
, QCC.storableLaws
]
proxy :: Proxy Country
proxy = Proxy
lawsToTest :: QCC.Laws -> TestTree
lawsToTest (QCC.Laws name pairs) = testGroup name (map (uncurry TQC.testProperty) pairs)
instance QC.Arbitrary Country where
arbitrary = QC.arbitraryBoundedEnum