1module HPACK.IntegerSpec where 2 3import Network.HPACK.HeaderBlock.Integer 4import Test.Hspec 5import Test.Hspec.QuickCheck 6import qualified Data.ByteString as BS 7 8dual :: Int -> Int -> Expectation 9dual n i = do 10 let x = abs i 11 bs <- encodeInteger n x 12 let Just (w, ws) = BS.uncons bs 13 x' <- decodeInteger n w ws 14 x `shouldBe` x' 15 16spec :: Spec 17spec = do 18 describe "encode and decode" $ do 19 prop "duality" $ dual 1 20 prop "duality" $ dual 2 21 prop "duality" $ dual 3 22 prop "duality" $ dual 4 23 prop "duality" $ dual 5 24 prop "duality" $ dual 6 25 prop "duality" $ dual 7 26 prop "duality" $ dual 8 27