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