{-| Description: Copyright: (c) 2020 Samuel May License: MPL-2.0 Maintainer: ag.eitilt@gmail.com Stability: experimental Portability: portable -} module Test.Willow.Unit.Encoding.Big5 ( tests ) where import qualified Data.Word as W import qualified Test.HUnit as U import Test.HUnit ( (~:) ) import Web.Willow.Common.Encoding import Test.Willow.Unit.Encoding.Common tests :: U.Test tests = "Big5" ~: U.TestList [ "decode" ~: U.TestList [ "ASCII" ~: U.TestList $ map (decodeAscii Big5) ['\NUL'..'\DEL'] , decodeBig5 "0xFF" [0xFF] $ Nothing , decodeBig5 "1133" [0x88, 0x62] $ Just "Ê\x0304" , decodeBig5 "1135" [0x88, 0x64] $ Just "Ê\x030C" , decodeBig5 "1164" [0x88, 0xA3] $ Just "ê\x0304" , decodeBig5 "1166" [0x88, 0xA5] $ Just "ê\x030C" ] , "encode" ~: U.TestList [ "ASCII" ~: U.TestList $ map (encodeAscii Big5) ['\NUL'..'\DEL'] , encodeBig5 '\x2550' $ Just [0xF9, 0xF9] , encodeBig5 '\x255E' $ Just [0xF9, 0xE9] , encodeBig5 '\x2561' $ Just [0xF9, 0xEB] , encodeBig5 '\x256A' $ Just [0xF9, 0xEA] , encodeBig5 '\x5341' $ Just [0xA4, 0x51] , encodeBig5 '\x5345' $ Just [0xA4, 0xCA] ] ] decodeBig5 :: String -> [W.Word8] -> Maybe String -> U.Test decodeBig5 = decodeTest Big5 encodeBig5 :: Char -> Maybe [W.Word8] -> U.Test encodeBig5 c = encodeTest Big5 [c] [c]