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 = NULL ) override; 29 30 void TestHangulCompose(void); 31 void TestHangulDecomp(void); 32 void TestPrevious(void); 33 void TestDecomp(void); 34 void TestCompatDecomp(void); 35 void TestCanonCompose(void); 36 void TestCompatCompose(void); 37 void TestTibetan(void); 38 void TestCompositionExclusion(void); 39 void TestZeroIndex(void); 40 void TestVerisign(void); 41 void TestPreviousNext(void); 42 void TestNormalizerAPI(void); 43 void TestConcatenate(void); 44 void TestCompare(void); 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 UChar *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(UChar 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