Home | History | Annotate | Download | only in intltest
      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