Use vector/vectorOf from QuickCheck and simplify
This commit is contained in:
parent
6f67cefa3d
commit
7e5dbeb146
@ -2,7 +2,6 @@
|
|||||||
module Utils where
|
module Utils where
|
||||||
|
|
||||||
import Control.Applicative
|
import Control.Applicative
|
||||||
import Control.Monad (replicateM)
|
|
||||||
import Data.Char
|
import Data.Char
|
||||||
import Data.Word
|
import Data.Word
|
||||||
import Data.List
|
import Data.List
|
||||||
@ -28,13 +27,13 @@ newtype ChunkingLen = ChunkingLen [Int]
|
|||||||
deriving (Show,Eq)
|
deriving (Show,Eq)
|
||||||
|
|
||||||
instance Arbitrary ChunkingLen where
|
instance Arbitrary ChunkingLen where
|
||||||
arbitrary = ChunkingLen `fmap` replicateM 16 (choose (0,14))
|
arbitrary = ChunkingLen `fmap` vectorOf 16 (choose (0,14))
|
||||||
|
|
||||||
newtype ChunkingLen0_127 = ChunkingLen0_127 [Int]
|
newtype ChunkingLen0_127 = ChunkingLen0_127 [Int]
|
||||||
deriving (Show,Eq)
|
deriving (Show,Eq)
|
||||||
|
|
||||||
instance Arbitrary ChunkingLen0_127 where
|
instance Arbitrary ChunkingLen0_127 where
|
||||||
arbitrary = ChunkingLen0_127 `fmap` replicateM 16 (choose (0,127))
|
arbitrary = ChunkingLen0_127 `fmap` vectorOf 16 (choose (0,127))
|
||||||
|
|
||||||
|
|
||||||
newtype ArbitraryBS0_2901 = ArbitraryBS0_2901 ByteString
|
newtype ArbitraryBS0_2901 = ArbitraryBS0_2901 ByteString
|
||||||
@ -63,7 +62,7 @@ instance Arbitrary QAInteger where
|
|||||||
arbitrary = oneof
|
arbitrary = oneof
|
||||||
[ QAInteger . fromIntegral <$> (choose (0, 65536) :: Gen Int) -- small integer
|
[ QAInteger . fromIntegral <$> (choose (0, 65536) :: Gen Int) -- small integer
|
||||||
, larger <$> choose (0,4096) <*> choose (0, 65536) -- medium integer
|
, larger <$> choose (0,4096) <*> choose (0, 65536) -- medium integer
|
||||||
, QAInteger . os2ip . B.pack <$> (choose (0,32) >>= \n -> replicateM n arbitrary) -- [ 0 .. 2^32 ] sized integer
|
, QAInteger . os2ip <$> arbitraryBSof 0 32 -- [ 0 .. 2^32 ] sized integer
|
||||||
]
|
]
|
||||||
where
|
where
|
||||||
larger :: Int -> Int -> QAInteger
|
larger :: Int -> Int -> QAInteger
|
||||||
@ -73,10 +72,10 @@ instance Arbitrary QAInteger where
|
|||||||
somePrime = 18446744073709551557
|
somePrime = 18446744073709551557
|
||||||
|
|
||||||
arbitraryBS :: Int -> Gen ByteString
|
arbitraryBS :: Int -> Gen ByteString
|
||||||
arbitraryBS n = B.pack `fmap` replicateM n arbitrary
|
arbitraryBS = fmap B.pack . vector
|
||||||
|
|
||||||
arbitraryBSof :: Int -> Int -> Gen ByteString
|
arbitraryBSof :: Int -> Int -> Gen ByteString
|
||||||
arbitraryBSof minSize maxSize = choose (minSize, maxSize) >>= \n -> (B.pack `fmap` replicateM n arbitrary)
|
arbitraryBSof minSize maxSize = choose (minSize, maxSize) >>= arbitraryBS
|
||||||
|
|
||||||
chunkS :: ChunkingLen -> ByteString -> [ByteString]
|
chunkS :: ChunkingLen -> ByteString -> [ByteString]
|
||||||
chunkS (ChunkingLen originalChunks) = loop originalChunks
|
chunkS (ChunkingLen originalChunks) = loop originalChunks
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user