packages feed

bytestring-strict-builder-0.4.5.7: tests/Main.hs

module Main where

import qualified ByteString.StrictBuilder as B
import qualified Data.ByteString as A
import Test.QuickCheck.Instances ()
import Test.Tasty
import Test.Tasty.QuickCheck
import Prelude

main :: IO ()
main =
  defaultMain
    $ testGroup "All tests"
    $ [ testProperty "Packing a list of bytes is isomorphic to appending a list of builders"
          $ \byteList ->
            A.pack byteList
              === B.builderBytes (foldMap B.word8 byteList),
        testProperty "Concatting a list of bytestrings is isomorphic to fold-mapping with builders"
          $ \bytesList ->
            mconcat bytesList
              === B.builderBytes (foldMap B.bytes bytesList),
        testProperty "Concatting a list of bytestrings is isomorphic to concatting a list of builders"
          $ \bytesList ->
            mconcat bytesList
              === B.builderBytes (mconcat (map B.bytes bytesList))
      ]