added tests for b64

This commit is contained in:
Stefan Friese 2024-05-19 15:22:13 +02:00
parent 252c5e5c68
commit d44cef3060
2 changed files with 55 additions and 0 deletions

View File

@ -71,3 +71,13 @@ executable based
-- base64-bytestring, -- base64-bytestring,
-- hs-source-dirs: -- hs-source-dirs:
default-language: Haskell2010 default-language: Haskell2010
test-suite based-test
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
build-depends:
base,
based,
HUnit
default-language: Haskell2010

45
test/Main.hs Normal file
View File

@ -0,0 +1,45 @@
module Main where
import Test.HUnit
import Encoding.Base64 (enc64, dec64)
import System.Exit (exitFailure, exitSuccess)
-- Test cases for enc64 function
testEnc64 :: Test
testEnc64 = TestCase $ do
assertEqual "for (enc64 \"hello\")," "aGVsbG8=" (enc64 "hello")
assertEqual "for (enc64 \"Haskell\")," "SGFza2VsbA==" (enc64 "Haskell")
assertEqual "for (enc64 \"\x00\x01\x02\")," "AAEC" (enc64 "\x00\x01\x02")
assertEqual "for (enc64 \"😂\")," "8J+Ygg==" (enc64 "😂")
-- Test cases for dec64 function
testDec64 :: Test
testDec64 = TestCase $ do
assertEqual "for (dec64 \"aGVsbG8=\")," "hello" (dec64 "aGVsbG8=")
assertEqual "for (dec64 \"SGFza2VsbA==\")," "Haskell" (dec64 "SGFza2VsbA==")
assertEqual "for (dec64 \"AAEC\")," "\x00\x01\x02" (dec64 "AAEC")
assertEqual "for (dec64 \"8J+Ygg==\")," "😂" (dec64 "😂")
tests :: Test
tests = TestList [TestLabel "Test enc64" testEnc64,
TestLabel "Test dec64" testDec64]
-- main :: IO Counts
-- main = runTestTT tests >>= \counts -> print counts >> runTestTTAndExit tests
-- runAndPrint :: Test -> IO Counts
-- runAndPrint t = do
-- counts <- runTestTT t
-- let label = case t of
-- TestLabel l _ -> l
-- _ -> "Unnamed test."
-- putStrLn $ label ++ ": " ++ if errors counts + failures counts == 0 then "[OK]" else "[FAIL]"
-- return counts
main :: IO ()
main = do
counts <- runTestTT tests
print counts
if errors counts + failures counts == 0
then exitSuccess
else exitFailure