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