module Main (main) where import Data.String.Transform import Test.Tasty import Test.Tasty.HUnit import Test.Tasty.SmallCheck main :: IO () main = defaultMain $ testGroup "all-tests" tests tests :: [TestTree] tests = [ testGroup "SmallCheck" smallCheckTest , testGroup "Unit tests" hunitTest ] smallCheckTest :: [TestTree] smallCheckTest = [ testProperty "toByteStringStrict" prop_toByteStringStrict_toString , testProperty "toByteStringLazy" prop_toByteStringLazy_toString , testProperty "toTextStrict" prop_toTextStrict_toString , testProperty "toTextLazy" prop_toTextLazy_toString ] hunitTest :: [TestTree] hunitTest = [ testCase "toByteStringStrict 日本語" case_japanese_toByteStrictStrict_toString ] prop_toByteStringStrict_toString :: String -> Bool prop_toByteStringStrict_toString string = string == toString (toByteStringStrict string) prop_toByteStringLazy_toString :: String -> Bool prop_toByteStringLazy_toString string = string == toString (toByteStringLazy string) prop_toTextStrict_toString :: String -> Bool prop_toTextStrict_toString string = string == toString (toTextStrict string) prop_toTextLazy_toString :: String -> Bool prop_toTextLazy_toString string = string == toString (toTextLazy string) case_japanese_toByteStrictStrict_toString :: Assertion case_japanese_toByteStrictStrict_toString = toString (toByteStringStrict "日本語") @?= "日本語"