1 // © 2016 and later: Unicode, Inc. and others. 2 // License & terms of use: http://www.unicode.org/copyright.html 3 /******************************************************************** 4 * COPYRIGHT: 5 * Copyright (c) 1997-2010, International Business Machines Corporation and 6 * others. All Rights Reserved. 7 ********************************************************************/ 8 9 /** 10 * Normalizer basic tests 11 */ 12 13 #ifndef _TSTNORM 14 #define _TSTNORM 15 16 #include "unicode/utypes.h" 17 18 #if !UCONFIG_NO_NORMALIZATION 19 20 #include "unicode/normlzr.h" 21 #include "intltest.h" 22 23 class BasicNormalizerTest : public IntlTest { 24 public: 25 BasicNormalizerTest(); 26 virtual ~BasicNormalizerTest(); 27 28 void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = nullptr ) override; 29 30 void TestHangulCompose(); 31 void TestHangulDecomp(); 32 void TestPrevious(); 33 void TestDecomp(); 34 void TestCompatDecomp(); 35 void TestCanonCompose(); 36 void TestCompatCompose(); 37 void TestTibetan(); 38 void TestCompositionExclusion(); 39 void TestZeroIndex(); 40 void TestVerisign(); 41 void TestPreviousNext(); 42 void TestNormalizerAPI(); 43 void TestConcatenate(); 44 void TestCompare(); 45 void FindFoldFCDExceptions(); 46 void TestSkippable(); 47 void TestCustomComp(); 48 void TestCustomFCC(); 49 void TestFilteredNormalizer2Coverage(); 50 void TestComposeUTF8WithEdits(); 51 void TestDecomposeUTF8WithEdits(); 52 void TestLowMappingToEmpty_D(); 53 void TestLowMappingToEmpty_FCD(); 54 void TestNormalizeIllFormedText(); 55 void TestComposeJamoTBase(); 56 void TestComposeBoundaryAfter(); 57 58 private: 59 UnicodeString canonTests[24][3]; 60 UnicodeString compatTests[11][3]; 61 UnicodeString hangulCanon[2][3]; 62 63 void 64 TestPreviousNext(const char16_t *src, int32_t srcLength, 65 const UChar32 *expext, int32_t expectLength, 66 const int32_t *expectIndex, // its length=expectLength+1 67 int32_t srcMiddle, int32_t expectMiddle, 68 const char *moves, 69 UNormalizationMode mode, 70 const char *name); 71 72 int32_t countFoldFCDExceptions(uint32_t foldingOptions); 73 74 //------------------------------------------------------------------------ 75 // Internal utilities 76 // 77 void backAndForth(Normalizer* iter, const UnicodeString& input); 78 79 void staticTest(UNormalizationMode mode, int options, 80 UnicodeString tests[][3], int length, int outCol); 81 82 void iterateTest(Normalizer* iter, UnicodeString tests[][3], int length, int outCol); 83 84 void assertEqual(const UnicodeString& input, 85 const UnicodeString& expected, 86 Normalizer* result, 87 const UnicodeString& errPrefix); 88 89 static UnicodeString hex(char16_t ch); 90 static UnicodeString hex(const UnicodeString& str); 91 92 void checkLowMappingToEmpty(const Normalizer2 &n2); 93 }; 94 95 #endif /* #if !UCONFIG_NO_NORMALIZATION */ 96 97 #endif // _TSTNORM 98