packages feed

binrep-1.0.0: test/Binrep/TypesSpec.hs

{-# LANGUAGE OverloadedStrings #-}

module Binrep.TypesSpec where

import Test.Hspec
import Test.Hspec.QuickCheck
import Test.QuickCheck.Instances.ByteString()

import Binrep
import Data.ByteString qualified as B

spec :: Spec
spec = do
    prop "put is identity on ByteString" $ do
      \(bs :: B.ByteString) -> runPut bs  `shouldBe` bs
    prop "parse-print roundtrip isomorphism (ByteString)" $ do
      \(bs :: B.ByteString) ->
        runGet (runPut bs) `shouldSatisfy`
          (\case Right (bs', "") -> bs == bs'; _ -> False)