Imported Upstream version 58.1
[platform/upstream/icu.git] / source / test / intltest / canittst.h
1 // Copyright (C) 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /********************************************************************
4  * COPYRIGHT: 
5  * Copyright (c) 2002-2006, International Business Machines Corporation and
6  * others. All Rights Reserved.
7  ********************************************************************
8  *
9  * @author Mark E. Davis
10  * @author Vladimir Weinstein
11  */
12
13 /**
14  * Test Canonical Iterator
15  */
16
17 #ifndef _CANITTST
18 #define _CANITTST
19
20 #include "unicode/utypes.h"
21
22 #if !UCONFIG_NO_NORMALIZATION
23
24
25 U_NAMESPACE_BEGIN
26
27 class Transliterator;
28
29 U_NAMESPACE_END
30
31 #include "unicode/translit.h"
32 #include "unicode/caniter.h"
33 #include "intltest.h"
34 #include "hash.h"
35
36 class CanonicalIteratorTest : public IntlTest {
37 public:
38     CanonicalIteratorTest();
39     virtual ~CanonicalIteratorTest();
40
41     void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
42
43     void TestCanonicalIterator(void);
44     void TestExhaustive(void);
45     void TestBasic();
46     void TestAPI();
47     UnicodeString collectionToString(Hashtable *col);
48     //static UnicodeString collectionToString(Collection col);
49 private:
50     void expectEqual(const UnicodeString &message, const UnicodeString &item, const UnicodeString &a, const UnicodeString &b);
51     void characterTest(UnicodeString &s, UChar32 ch, CanonicalIterator &it);
52
53     Transliterator *nameTrans;
54     Transliterator *hexTrans;
55         
56     UnicodeString getReadable(const UnicodeString &obj);
57 };
58
59 #endif /* #if !UCONFIG_NO_NORMALIZATION */
60
61 #endif // _CANITTST