1 module FuncTorrent.TestInstances where
3 import qualified Data.ByteString as B
8 instance Arbitrary B.ByteString where
9 arbitrary = B.pack <$> arbitrary
11 instance Arbitrary BVal where
12 arbitrary = sized bval
14 bval :: Int -> Gen BVal
15 bval 0 = oneof [ Bint <$> arbitrary
17 bval n = oneof [ Bint <$> arbitrary
19 , Blist <$> vectorOf n (bval (n `div` 4))
20 , do keys <- vectorOf n arbitrary
21 vals <- vectorOf n (bval (n `div` 4))
22 return $ Bdict $ fromList $ zip keys vals ]