1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /********************************************************************
5 * Copyright (c) 1997-2010, International Business Machines Corporation and
6 * others. All Rights Reserved.
7 ********************************************************************/
10 * Normalizer basic tests
16 #include "unicode/utypes.h"
18 #if !UCONFIG_NO_NORMALIZATION
20 #include "unicode/normlzr.h"
23 class BasicNormalizerTest
: public IntlTest
{
25 BasicNormalizerTest();
26 virtual ~BasicNormalizerTest();
28 void runIndexedTest( int32_t index
, UBool exec
, const char* &name
, char* par
= NULL
);
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();
47 void TestCustomComp();
49 void TestFilteredNormalizer2Coverage();
50 void TestNormalizeUTF8WithEdits();
51 void TestLowMappingToEmpty_D();
52 void TestLowMappingToEmpty_FCD();
53 void TestNormalizeIllFormedText();
54 void TestComposeJamoTBase();
55 void TestComposeBoundaryAfter();
58 UnicodeString canonTests
[24][3];
59 UnicodeString compatTests
[11][3];
60 UnicodeString hangulCanon
[2][3];
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
,
68 UNormalizationMode mode
,
71 int32_t countFoldFCDExceptions(uint32_t foldingOptions
);
73 //------------------------------------------------------------------------
76 void backAndForth(Normalizer
* iter
, const UnicodeString
& input
);
78 void staticTest(UNormalizationMode mode
, int options
,
79 UnicodeString tests
[][3], int length
, int outCol
);
81 void iterateTest(Normalizer
* iter
, UnicodeString tests
[][3], int length
, int outCol
);
83 void assertEqual(const UnicodeString
& input
,
84 const UnicodeString
& expected
,
86 const UnicodeString
& errPrefix
);
88 static UnicodeString
hex(UChar ch
);
89 static UnicodeString
hex(const UnicodeString
& str
);
91 void checkLowMappingToEmpty(const Normalizer2
&n2
);
94 #endif /* #if !UCONFIG_NO_NORMALIZATION */