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