packages feed

flat-0.2: test/Test/Data/Arbitrary.hs

{-# LANGUAGE TemplateHaskell #-}
module Test.Data.Arbitrary where

import qualified Data.ByteString       as B
import qualified Data.ByteString.Lazy  as L
import qualified Data.ByteString.Short as SBS
import           Data.DeriveTH
import qualified Data.Text             as T
import           Test.Data
import           Test.Tasty.QuickCheck

-- xxx = generate (arbitrary :: Gen (Large (Int)))

instance Arbitrary SBS.ShortByteString where arbitrary   = fmap SBS.pack arbitrary

instance Arbitrary B.ByteString where arbitrary   = fmap B.pack arbitrary

instance Arbitrary L.ByteString where arbitrary   = fmap L.pack arbitrary

instance Arbitrary T.Text where arbitrary   = fmap T.pack arbitrary

-- instance Arbitrary a => Arbitrary (List a) where arbitrary = fmap l2L arbitrary

derive makeArbitrary ''N

derive makeArbitrary ''Tree

derive makeArbitrary ''List

derive makeArbitrary ''Unit

derive makeArbitrary ''Un

derive makeArbitrary ''A

derive makeArbitrary ''B

-- instance Arbitrary Word7 where arbitrary  = toEnum <$> choose (0, 127)
-- derive makeArbitrary ''ASCII