1 /******************************************************************** 2 * COPYRIGHT: 3 * Copyright (c) 1997-2011, 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 */ 11 U_CFUNC void U_CALLCONV unicodeDataLineFn(void *context, 12 char *fields[][2], int32_t fieldCount, 13 UErrorCode *pErrorCode); 14 15 U_CFUNC void U_CALLCONV 16 derivedPropsLineFn(void *context, 17 char *fields[][2], int32_t fieldCount, 18 UErrorCode *pErrorCode); 19 20 U_NAMESPACE_BEGIN 21 22 class Hashtable; 23 24 U_NAMESPACE_END 25 26 /** 27 * Test API and functionality of class Unicode 28 **/ 29 class UnicodeTest: public IntlTest { 30 public: 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 41 private: 42 43 friend void U_CALLCONV unicodeDataLineFn(void *context, 44 char *fields[][2], int32_t fieldCount, 45 UErrorCode *pErrorCode); 46 47 friend void U_CALLCONV 48 derivedPropsLineFn(void *context, 49 char *fields[][2], int32_t fieldCount, 50 UErrorCode *pErrorCode); 51 52 UnicodeSet derivedProps[30]; 53 U_NAMESPACE_QUALIFIER Hashtable *unknownPropertyNames; 54 55 UBool compareUSets(const UnicodeSet &a, const UnicodeSet &b, 56 const char *a_name, const char *b_name, 57 UBool diffIsError); 58 }; 59