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