http2-4.0.0: test/HPACK/IntegerSpec.hs
module HPACK.IntegerSpec where
import qualified Data.ByteString as BS
import Data.Maybe (fromMaybe)
import Network.HPACK.Internal
import Test.Hspec
import Test.Hspec.QuickCheck
dual :: Int -> Int -> Expectation
dual n i = do
let x = abs i
bs <- encodeInteger n x
let (w, ws) = fromMaybe (error "dual") $ BS.uncons bs
x' <- decodeInteger n w ws
x `shouldBe` x'
spec :: Spec
spec = do
describe "encode and decode" $ do
prop "duality" $ dual 1
prop "duality" $ dual 2
prop "duality" $ dual 3
prop "duality" $ dual 4
prop "duality" $ dual 5
prop "duality" $ dual 6
prop "duality" $ dual 7
prop "duality" $ dual 8