hex-text-0.1.0.4: test/test.hs
import Data.Foldable
import Data.Semigroup
import Data.String
import Numeric.Natural
import System.Exit
import Text.Hex
import qualified Data.ByteString as ByteString
import qualified Data.ByteString.Lazy as LazyByteString
import qualified Data.Text as Text
import qualified Data.Text.Lazy as LazyText
main = run tests
tests = encodeHexTests <> decodeHexTests <> lazilyEncodeHexTests
run [] = putStrLn "Okay"
run xs = die $ "Test failures: " <> show (xs :: [Natural])
infix 0 #
x # True = []
x # False = [x]
encodeHexTests = fold
[ 1 # (encodeHex . ByteString.singleton) 192
== fromString "c0"
, 2 # (encodeHex . ByteString.singleton) 168
== fromString "a8"
, 3 # (encodeHex . ByteString.pack) [192, 168, 1, 2]
== fromString "c0a80102"
]
decodeHexTests = fold
[ 4 # (fmap ByteString.unpack . decodeHex . Text.pack) "c0a80102"
== Just [192,168,1,2]
, 5 # (fmap ByteString.unpack . decodeHex . Text.pack) "c0a8010"
== Nothing
, 6 # (fmap ByteString.unpack . decodeHex . Text.pack) "x0a80102"
== Nothing
, 7 # (fmap ByteString.unpack . decodeHex . Text.pack) "C0A80102"
== Just [192,168,1,2]
]
lazilyEncodeHexTests = fold
[ 8 # (LazyText.take 8 . lazilyEncodeHex . LazyByteString.pack . cycle) [1, 2, 3]
== fromString "01020301"
]