packages feed

describe-0.1.0.0: Test.hs

module Main where

import Test.QuickCheck
import Test.QuickCheck.Monadic
import Data.Word
import Data.Either
import qualified Data.ByteString as B
import Data.Serialize.Descriptor
import Data.Serialize.Descriptor.LE

data Test = Test { f1 :: Word8, f2 :: Word16, f3 :: Word32, f4 :: Word8 }
          deriving (Eq)

prop_identity :: Bool
prop_identity =
  either (const False) (== struct) $ deserialize (serialize struct desc) desc
  where
    struct = Test 42 63 78 31
    desc = Test <$> w8 f1 <*> w16 f2 <*> w32 f3 <*> w8 f4 

main :: IO ()
main = do
  quickCheck prop_identity