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