• 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 (c) 1997-2016, International Business Machines Corporation and
5  * others. All Rights Reserved.
6  ********************************************************************/
7 
8 #include "unicode/uniset.h"
9 #include "intltest.h"
10 
11 /** Helper function for TestUnicodeData */
12 U_CFUNC void U_CALLCONV unicodeDataLineFn(void *context,
13                               char *fields[][2], int32_t fieldCount,
14                               UErrorCode *pErrorCode);
15 
16 U_CFUNC void U_CALLCONV
17 derivedPropsLineFn(void *context,
18                    char *fields[][2], int32_t fieldCount,
19                    UErrorCode *pErrorCode);
20 
21 U_NAMESPACE_BEGIN
22 
23 class Hashtable;
24 
25 U_NAMESPACE_END
26 
27 /**
28  * Test API and functionality of class Unicode
29  **/
30 class UnicodeTest: public IntlTest {
31 public:
32     UnicodeTest();
33     virtual ~UnicodeTest();
34 
35     void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
36 
37     void TestAdditionalProperties();
38     void TestBinaryValues();
39     void TestConsistency();
40     void TestPatternProperties();
41     void TestScriptMetadata();
42     void TestBidiPairedBracketType();
43     void TestEmojiProperties();
44     void TestIndicPositionalCategory();
45     void TestIndicSyllabicCategory();
46     void TestVerticalOrientation();
47     void TestDefaultScriptExtensions();
48     void TestInvalidCodePointFolding();
49     void TestBinaryCharacterProperties();
50     void TestIntCharacterProperties();
51 
52 private:
53 
54     friend void U_CALLCONV unicodeDataLineFn(void *context,
55                               char *fields[][2], int32_t fieldCount,
56                               UErrorCode *pErrorCode);
57 
58     friend void U_CALLCONV
59     derivedPropsLineFn(void *context,
60                            char *fields[][2], int32_t fieldCount,
61                            UErrorCode *pErrorCode);
62 
63     UnicodeSet derivedProps[30];
64     U_NAMESPACE_QUALIFIER Hashtable *unknownPropertyNames;
65 
66     UBool compareUSets(const UnicodeSet &a, const UnicodeSet &b,
67                        const char *a_name, const char *b_name,
68                        UBool diffIsError);
69 };
70