picoparsec-0.1: tests/TestFastSet.hs
module Main (main) where
import Data.Word (Word8)
import qualified Data.Picoparsec.FastSet as F
import System.Random (Random(..), RandomGen)
import Test.QuickCheck
integralRandomR :: (Integral a, RandomGen g) => (a, a) -> g -> (a, g)
integralRandomR (a,b) g = case randomR (fromIntegral a :: Int,
fromIntegral b :: Int) g
of (x,g') -> (fromIntegral x, g')
instance Random Word8 where
randomR = integralRandomR
random = randomR (minBound,maxBound)
instance Arbitrary Word8 where
arbitrary = choose (minBound, maxBound)
prop_AllMembers s =
let set = F.fromList s
in all (`F.memberWord8` set) s
main = do
quickCheck prop_AllMembers