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 void TestBidiPairedBracketType(); 42 43 private: 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