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