{-# LANGUAGE CPP #-} module Test.Cardano.Base.Bytes ( genByteArray, genByteString, genLazyByteString, genShortByteString, ) where import Data.Array.Byte (ByteArray) import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as BSL #if MIN_VERSION_bytestring(0,11,1) import qualified Data.ByteString.Short as SBS #else import qualified Data.ByteString.Short.Internal as SBS #endif import Data.MemPack.Buffer (byteArrayFromShortByteString) #if MIN_VERSION_random(1,3,0) import System.Random.Stateful ( runStateGen_, uniformByteStringM, uniformShortByteStringM, ) #else import System.Random.Stateful ( StatefulGen (..), runStateGen_, uniformByteStringM, ) #endif import Test.QuickCheck import Test.QuickCheck.Gen (Gen (MkGen)) genByteArray :: Int -> Gen ByteArray genByteArray :: Int -> Gen ByteArray genByteArray Int n = ShortByteString -> ByteArray byteArrayFromShortByteString (ShortByteString -> ByteArray) -> Gen ShortByteString -> Gen ByteArray forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Int -> Gen ShortByteString genShortByteString Int n genByteString :: Int -> Gen BS.ByteString genByteString :: Int -> Gen ByteString genByteString Int n = (QCGen -> Int -> ByteString) -> Gen ByteString forall a. (QCGen -> Int -> a) -> Gen a MkGen ((QCGen -> Int -> ByteString) -> Gen ByteString) -> (QCGen -> Int -> ByteString) -> Gen ByteString forall a b. (a -> b) -> a -> b $ \QCGen r Int _ -> QCGen -> (StateGenM QCGen -> State QCGen ByteString) -> ByteString forall g a. RandomGen g => g -> (StateGenM g -> State g a) -> a runStateGen_ QCGen r ((StateGenM QCGen -> State QCGen ByteString) -> ByteString) -> (StateGenM QCGen -> State QCGen ByteString) -> ByteString forall a b. (a -> b) -> a -> b $ Int -> StateGenM QCGen -> State QCGen ByteString forall g (m :: * -> *). StatefulGen g m => Int -> g -> m ByteString uniformByteStringM Int n genLazyByteString :: Int -> Gen BSL.ByteString genLazyByteString :: Int -> Gen ByteString genLazyByteString Int n = ByteString -> ByteString BSL.fromStrict (ByteString -> ByteString) -> Gen ByteString -> Gen ByteString forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Int -> Gen ByteString genByteString Int n genShortByteString :: Int -> Gen SBS.ShortByteString #if MIN_VERSION_random(1,3,0) genShortByteString :: Int -> Gen ShortByteString genShortByteString Int n = (QCGen -> Int -> ShortByteString) -> Gen ShortByteString forall a. (QCGen -> Int -> a) -> Gen a MkGen ((QCGen -> Int -> ShortByteString) -> Gen ShortByteString) -> (QCGen -> Int -> ShortByteString) -> Gen ShortByteString forall a b. (a -> b) -> a -> b $ \QCGen r Int _ -> QCGen -> (StateGenM QCGen -> State QCGen ShortByteString) -> ShortByteString forall g a. RandomGen g => g -> (StateGenM g -> State g a) -> a runStateGen_ QCGen r ((StateGenM QCGen -> State QCGen ShortByteString) -> ShortByteString) -> (StateGenM QCGen -> State QCGen ShortByteString) -> ShortByteString forall a b. (a -> b) -> a -> b $ Int -> StateGenM QCGen -> State QCGen ShortByteString forall g (m :: * -> *). StatefulGen g m => Int -> g -> m ShortByteString uniformShortByteStringM Int n #else genShortByteString n = MkGen $ \r _ -> runStateGen_ r $ uniformShortByteString n #endif