packages feed

haskus-binary-1.5: src/tests/Haskus/Tests/Format/Binary/GetPut.hs

module Haskus.Tests.Format.Binary.GetPut
   ( testsGetPut
   )
where

import Test.Tasty
import Test.Tasty.QuickCheck as QC

import Haskus.Tests.Common

import Haskus.Binary.Get
import Haskus.Binary.Buffer

testsGetPut :: TestTree
testsGetPut = testGroup "Get/Put" $
   [ testGroup "getBufferNul"
      [ testProperty "Read two successives strings" getBufferNul_basic
      ]
   ]


getBufferNul_basic :: ArbitraryBufferNoNul -> ArbitraryBufferNoNul -> Bool
getBufferNul_basic (ArbitraryBufferNoNul s1) (ArbitraryBufferNoNul s2) = runGetOrFail getter str
   where
      str    = (s1 `bufferSnoc` 0) `bufferAppend` s2
      getter = do
         a <- getBufferNul
         b <- getBufferNul
         return (a == s1 && b == s2)