packages feed

base64-string-0.1: Test.hs

module Main (main) where

import Codec.Binary.Base64.String

import Control.Monad
import System.Exit
import Test.HUnit

main :: IO ()
main = do counts <- runTestTT tests
          when ((errors counts, failures counts) /= (0, 0)) $
              exitWith (ExitFailure 1)

testData :: [(String, String)]
testData = [("",                "")
           ,("\0",              "AA==")
           ,("\255",            "/w==")
           ,("E",               "RQ==")
           ,("Ex",              "RXg=")
           ,("Exa",             "RXhh")
           ,("Exam",            "RXhhbQ==")
           ,("Examp",           "RXhhbXA=")
           ,("Exampl",          "RXhhbXBs")
           ,("Example",         "RXhhbXBsZQ==")
           ,("Ex\0am\255ple",   "RXgAYW3/cGxl")
           ]

tests :: Test
tests = TestList $ concat
      [ [ TestLabel ("encode " ++ show plain) (encoded_plain ~?= encoded),
          TestLabel ("decode " ++ show plain) (decoded_encoded ~?= plain) ]
      | (plain, encoded) <- testData,
        let encoded_plain = encode plain
            decoded_encoded = decode encoded
      ]