cjk-0.1.0.0: tests/Tests.hs
module Main where
import Control.Monad
import Data.Maybe
import System.Exit
import qualified CJK.Data.Unihan.DictionaryLikeData as DictionaryLikeData
import qualified CJK.Data.Unihan.NumericValues as NumericValues
import qualified CJK.Data.Unihan.RadicalStrokeCounts as RadicalStrokeCounts
import qualified CJK.Data.Unihan.Readings as Readings
import qualified CJK.Data.Unihan.Variants as Variants
import qualified CJK.Data.CEDICT as CEDICT
-- Just check a single data point from each module. As long as the data parses
-- successfully there is a 90% chance everything is working
main :: IO ()
main = do
checkNot "DictionaryLikeData" $ isNothing $ DictionaryLikeData.cangjie '好'
checkNot "NumericValues" $ isNothing $ NumericValues.numericValue '十'
checkNot "RadicalStrokeCounts" $ length (RadicalStrokeCounts.unicode '好') == 0
checkNot "Readings" $ length (Readings.mandarinBestEffort '好') == 0
checkNot "Variants" $ length (Variants.traditionalVariants '电') == 0
checkNot "CEDICT" $ length CEDICT.entries == 0
checkNot :: String -> Bool -> IO ()
checkNot msg p = do
putStr (msg ++ ": ")
if p then putStrLn "failure" >> exitWith (ExitFailure 1)
else putStrLn "success"