{-# 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))