41 lines
1.2 KiB
Haskell
41 lines
1.2 KiB
Haskell
|
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
||
|
|
||
|
-- | Test code and properties for "Codec.Compression.Zlib.Stream"
|
||
|
--
|
||
|
module Test.Codec.Compression.Zlib.Stream where
|
||
|
|
||
|
import Codec.Compression.Zlib.Internal
|
||
|
import Test.QuickCheck
|
||
|
|
||
|
|
||
|
instance Arbitrary Format where
|
||
|
-- GZipOrZlib omitted since it's not symmetric
|
||
|
arbitrary = elements [gzipFormat, zlibFormat, rawFormat]
|
||
|
|
||
|
|
||
|
instance Arbitrary Method where
|
||
|
arbitrary = return deflateMethod
|
||
|
|
||
|
|
||
|
instance Arbitrary CompressionLevel where
|
||
|
arbitrary = elements $ [defaultCompression, noCompression,
|
||
|
bestCompression, bestSpeed]
|
||
|
++ map compressionLevel [1..9]
|
||
|
|
||
|
|
||
|
instance Arbitrary WindowBits where
|
||
|
arbitrary = elements $ defaultWindowBits:map windowBits [9..15]
|
||
|
|
||
|
|
||
|
instance Arbitrary MemoryLevel where
|
||
|
arbitrary = elements $ [defaultMemoryLevel, minMemoryLevel, maxMemoryLevel]
|
||
|
++ [memoryLevel n | n <- [1..9]]
|
||
|
|
||
|
|
||
|
|
||
|
instance Arbitrary CompressionStrategy where
|
||
|
arbitrary = elements $ [defaultStrategy, filteredStrategy, huffmanOnlyStrategy]
|
||
|
-- These are disabled by default in the package
|
||
|
-- as they are only available with zlib >=1.2
|
||
|
-- ++ [RLE, Fixed]
|