packages feed

text-icu-normalized-0.3.0: Tests/TestNormalization.hs

{-# OPTIONS_GHC -Wno-orphans #-}

{-|
Module:             TestUTF8
Description:        Test normalizing various cases of non-normalized UTF8.
Copyright:          © 2016 All rights reserved.
License:            GPL-3
Maintainer:         Evan Cofsky <>
Stability:          experimental
Portability:        POSIX
-}

module TestNormalization where

import Test.HUnit
import qualified Data.Map as M
import Control.Lens hiding (strict)
import ParseNormalizationTest
import Data.Text.ICU.Normalized.NFC
import Data.Text.Lens (unpacked)
import qualified Data.Text as T
import Test.Framework.Providers.HUnit

normalizationTests = do
    (Right tcs) ← loadTestCodePoints
    return
        $ concatMapOf traversed (\p → over traversed (testNormalization p) (p ^. pTestCodePoints)) tcs


testNormalization part tcp =
    testCase ((T.unwords [(part ^. pPartComment),
                          (tcp ^. tcComment)]) ^. unpacked)
    ((tcp ^. tcNFC) @?= (tcp ^. tcSource ^.re normalized ^. normalized))