packages feed

quicklz-1.5.0.4: tests/Properties.hs

{-# LANGUAGE ViewPatterns #-}
module Main (main) where

import qualified Data.ByteString as S
import Codec.Compression.QuickLZ

import Test.Framework (defaultMain, testGroup)
import Test.Framework.Providers.QuickCheck2 (testProperty)

main :: IO ()
main = defaultMain [ testGroup "simple" [
                       testProperty "compression identity" prop_compression_id
                     , testProperty "decompress is pure" prop_decompress_pure
                     , testProperty "compress is pure" prop_compress_pure
                     ]
                   ]

prop_compression_id (S.pack -> xs) =
  xs == (decompress . compress) xs

prop_decompress_pure (S.pack -> xs) =
  let z  = compress xs
  in (decompress z) == (decompress z)

prop_compress_pure (S.pack -> xs) =
  (compress xs) == (compress xs)