Skip to content

Commit 898e696

Browse files
committed
Tweak QC instances
The shrink support was not useful. Also reduce the data size to make the tests run a bit quicker.
1 parent d213daf commit 898e696

File tree

4 files changed

+7
-29
lines changed

4 files changed

+7
-29
lines changed

test/Test.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ prop_gziporzlib2 :: CompressParams
7777
-> DecompressParams
7878
-> Property
7979
prop_gziporzlib2 cp dp =
80+
decompressWindowBits dp >= compressWindowBits cp &&
8081
decompressBufferSize dp > 0 && compressBufferSize cp > 0 ==>
8182
liftM2 (==) (decompress gzipOrZlibFormat dp . compress gzipFormat cp) id
8283

test/Test/Codec/Compression/Zlib/Internal.hs

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import Codec.Compression.Zlib.Internal
99
import Test.Codec.Compression.Zlib.Stream ()
1010
import Test.QuickCheck
1111

12-
import Control.Monad (ap, msum)
12+
import Control.Monad (ap)
1313

1414

1515
deriving instance Show CompressParams
@@ -20,24 +20,6 @@ instance Arbitrary CompressParams where
2020
`ap` arbitrary `ap` arbitraryBufferSize
2121
`ap` return Nothing
2222

23-
-- this definition (and the equivalent in DecompressParams below) could be
24-
-- made nicer using Data.Accessor, but it's probably not worth the
25-
-- dependency
26-
shrink cp = msum [
27-
return (\lv -> cp { compressLevel = lv }) `ap`
28-
shrink (compressLevel cp),
29-
return (\mt -> cp { compressMethod = mt }) `ap`
30-
shrink (compressMethod cp),
31-
return (\wb -> cp { compressWindowBits = wb }) `ap`
32-
shrink (compressWindowBits cp),
33-
return (\ml -> cp { compressMemoryLevel = ml }) `ap`
34-
shrink (compressMemoryLevel cp),
35-
return (\st -> cp { compressStrategy = st }) `ap`
36-
shrink (compressStrategy cp),
37-
return (\bs -> cp { compressBufferSize = bs }) `ap`
38-
shrink (compressBufferSize cp)
39-
]
40-
4123
arbitraryBufferSize :: Gen Int
4224
arbitraryBufferSize = frequency $ [(10, return n) | n <- [1..1024]] ++
4325
[(20, return n) | n <- [1025..8192]] ++
@@ -48,10 +30,7 @@ arbitraryBufferSize = frequency $ [(10, return n) | n <- [1..1024]] ++
4830
deriving instance Show DecompressParams
4931

5032
instance Arbitrary DecompressParams where
51-
arbitrary = return DecompressParams `ap` arbitrary `ap` arbitraryBufferSize `ap` return Nothing
52-
shrink dp = msum [
53-
return (\wb -> dp { decompressWindowBits = wb }) `ap`
54-
shrink (decompressWindowBits dp),
55-
return (\bs -> dp { decompressBufferSize = bs }) `ap`
56-
shrink (decompressBufferSize dp)
57-
]
33+
arbitrary = return DecompressParams `ap` arbitrary
34+
`ap` arbitraryBufferSize
35+
`ap` return Nothing
36+

test/Test/Codec/Compression/Zlib/Stream.hs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ instance Arbitrary CompressionLevel where
2727
deriving instance Ord WindowBits
2828
instance Arbitrary WindowBits where
2929
arbitrary = elements $ defaultWindowBits:map windowBits [8..15]
30-
shrink DefaultWindowBits = []
31-
shrink (WindowBits n) = defaultWindowBits:map windowBits [n+1..15]
3230

3331

3432
instance Arbitrary MemoryLevel where

test/Utils.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import Test.QuickCheck
1010
-- QuickCheck Utils
1111

1212
maxStrSize :: Double
13-
maxStrSize = 5000
13+
maxStrSize = 500
1414

1515
-- convert a QC size parameter into one for generating long lists,
1616
-- growing inverse exponentially up to maxStrSize

0 commit comments

Comments
 (0)