1 // Copyright (C) 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 ); 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 51 private: 52 UnicodeString canonTests[24][3]; 53 UnicodeString compatTests[11][3]; 54 UnicodeString hangulCanon[2][3]; 55 56 void 57 TestPreviousNext(const UChar *src, int32_t srcLength, 58 const UChar32 *expext, int32_t expectLength, 59 const int32_t *expectIndex, // its length=expectLength+1 60 int32_t srcMiddle, int32_t expectMiddle, 61 const char *moves, 62 UNormalizationMode mode, 63 const char *name); 64 65 int32_t countFoldFCDExceptions(uint32_t foldingOptions); 66 67 //------------------------------------------------------------------------ 68 // Internal utilities 69 // 70 void backAndForth(Normalizer* iter, const UnicodeString& input); 71 72 void staticTest(UNormalizationMode mode, int options, 73 UnicodeString tests[][3], int length, int outCol); 74 75 void iterateTest(Normalizer* iter, UnicodeString tests[][3], int length, int outCol); 76 77 void assertEqual(const UnicodeString& input, 78 const UnicodeString& expected, 79 Normalizer* result, 80 const UnicodeString& errPrefix); 81 82 static UnicodeString hex(UChar ch); 83 static UnicodeString hex(const UnicodeString& str); 84 85 }; 86 87 #endif /* #if !UCONFIG_NO_NORMALIZATION */ 88 89 #endif // _TSTNORM 90