hbs2/miscellaneous/saltine/tests/UtilProperties.hs

29 lines
740 B
Haskell

{-# LANGUAGE OverloadedStrings #-}
module UtilProperties (
testUtils
) where
import Test.Framework.Providers.QuickCheck2
import Test.Framework
import Test.QuickCheck
import Util
import qualified Crypto.Saltine.Internal.Util as U
-- | Testing the comparison of keys
keyEquality :: ByteString32 -> Property
keyEquality k@(ByteString32 bs1) = k === k .&. U.compare bs1 bs1
keyInequality :: ByteString32 -> ByteString32 -> Property
keyInequality k1@(ByteString32 bs1) k2@(ByteString32 bs2) =
k1 /= k2 ==> not $ U.compare bs1 bs2
testUtils :: Test
testUtils = buildTest $ do
return $ testGroup "...Utils" [
testProperty "ByteString equality" keyEquality,
testProperty "ByteString inequality" keyInequality
]