// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: * Copyright (c) 1997-2010, International Business Machines Corporation and * others. All Rights Reserved. ********************************************************************/ /** * Normalizer basic tests */ #ifndef _TSTNORM #define _TSTNORM #include "unicode/utypes.h" #if !UCONFIG_NO_NORMALIZATION #include "unicode/normlzr.h" #include "intltest.h" class BasicNormalizerTest : public IntlTest { public: BasicNormalizerTest(); virtual ~BasicNormalizerTest(); void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); void TestHangulCompose(void); void TestHangulDecomp(void); void TestPrevious(void); void TestDecomp(void); void TestCompatDecomp(void); void TestCanonCompose(void); void TestCompatCompose(void); void TestTibetan(void); void TestCompositionExclusion(void); void TestZeroIndex(void); void TestVerisign(void); void TestPreviousNext(void); void TestNormalizerAPI(void); void TestConcatenate(void); void TestCompare(void); void FindFoldFCDExceptions(); void TestSkippable(); void TestCustomComp(); void TestCustomFCC(); void TestFilteredNormalizer2Coverage(); void TestNormalizeUTF8WithEdits(); void TestLowMappingToEmpty_D(); void TestLowMappingToEmpty_FCD(); void TestNormalizeIllFormedText(); void TestComposeJamoTBase(); void TestComposeBoundaryAfter(); private: UnicodeString canonTests[24][3]; UnicodeString compatTests[11][3]; UnicodeString hangulCanon[2][3]; void TestPreviousNext(const UChar *src, int32_t srcLength, const UChar32 *expext, int32_t expectLength, const int32_t *expectIndex, // its length=expectLength+1 int32_t srcMiddle, int32_t expectMiddle, const char *moves, UNormalizationMode mode, const char *name); int32_t countFoldFCDExceptions(uint32_t foldingOptions); //------------------------------------------------------------------------ // Internal utilities // void backAndForth(Normalizer* iter, const UnicodeString& input); void staticTest(UNormalizationMode mode, int options, UnicodeString tests[][3], int length, int outCol); void iterateTest(Normalizer* iter, UnicodeString tests[][3], int length, int outCol); void assertEqual(const UnicodeString& input, const UnicodeString& expected, Normalizer* result, const UnicodeString& errPrefix); static UnicodeString hex(UChar ch); static UnicodeString hex(const UnicodeString& str); void checkLowMappingToEmpty(const Normalizer2 &n2); }; #endif /* #if !UCONFIG_NO_NORMALIZATION */ #endif // _TSTNORM