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