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 */ 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 void TestScriptMetadata(); 41 42 private: 43 44 friend void U_CALLCONV unicodeDataLineFn(void *context, 45 char *fields[][2], int32_t fieldCount, 46 UErrorCode *pErrorCode); 47 48 friend void U_CALLCONV 49 derivedPropsLineFn(void *context, 50 char *fields[][2], int32_t fieldCount, 51 UErrorCode *pErrorCode); 52 53 UnicodeSet derivedProps[30]; 54 U_NAMESPACE_QUALIFIER Hashtable *unknownPropertyNames; 55 56 UBool compareUSets(const UnicodeSet &a, const UnicodeSet &b, 57 const char *a_name, const char *b_name, 58 UBool diffIsError); 59 }; 60