{-# LANGUAGE DeriveGeneric #-} module Spec.Binary (testBinary) where import Hedgehog import Hedgehog.Classes import qualified Hedgehog.Gen as Gen import qualified Hedgehog.Range as Range import Data.Binary import GHC.Generics (Generic(..)) testBinary :: [(String, [Laws])] testBinary = [ ("Person", listPerson) ] data Person = Person { name :: String, age :: Int } deriving (Eq, Show, Generic) instance Binary Person where listPerson :: [Laws] listPerson = [binaryLaws genPerson] genPerson :: Gen Person genPerson = Person <$> (Gen.string (Range.linear 3 7) Gen.alpha) <*> (Gen.int (Range.linear 0 65))