bytestring-arbitrary-0.0.1: tests/test.hs
import qualified Data.ByteString as BS
import Data.ByteString ( ByteString )
import Test.QuickCheck.Monadic
import Test.QuickCheck
import Data.ByteString.Arbitrary ( fastRandBs, slowRandBs )
main :: IO ()
main = do
quickCheck $ lengths fastRandBs
quickCheck $ lengths (\i -> slowRandBs $ min i 10240)
where
lengths :: (Int -> Gen ByteString) -> Int -> Property
lengths genFn len =
let gen = genFn len
in monadicIO $ do
samples <- run $ sample' gen
return $ all (==len) $ map BS.length samples