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