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