// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/********************************************************************
* Copyright (c) 1997-2016, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
#include "unicode/uniset.h"
#include "intltest.h"
/** Helper function for TestUnicodeData */
U_CFUNC void U_CALLCONV unicodeDataLineFn(void *context,
char *fields[][2], int32_t fieldCount,
UErrorCode *pErrorCode);
U_CFUNC void U_CALLCONV
derivedPropsLineFn(void *context,
char *fields[][2], int32_t fieldCount,
UErrorCode *pErrorCode);
U_NAMESPACE_BEGIN
class Hashtable;
U_NAMESPACE_END
/**
* Test API and functionality of class Unicode
**/
class UnicodeTest: public IntlTest {
public:
UnicodeTest();
virtual ~UnicodeTest();
void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
void TestAdditionalProperties();
void TestBinaryValues();
void TestConsistency();
void TestPatternProperties();
void TestScriptMetadata();
void TestBidiPairedBracketType();
void TestEmojiProperties();
void TestIndicPositionalCategory();
void TestIndicSyllabicCategory();
void TestVerticalOrientation();
void TestDefaultScriptExtensions();
void TestInvalidCodePointFolding();
void TestBinaryCharacterProperties();
void TestIntCharacterProperties();
private:
friend void U_CALLCONV unicodeDataLineFn(void *context,
char *fields[][2], int32_t fieldCount,
UErrorCode *pErrorCode);
friend void U_CALLCONV
derivedPropsLineFn(void *context,
char *fields[][2], int32_t fieldCount,
UErrorCode *pErrorCode);
UnicodeSet derivedProps[30];
U_NAMESPACE_QUALIFIER Hashtable *unknownPropertyNames;
UBool compareUSets(const UnicodeSet &a, const UnicodeSet &b,
const char *a_name, const char *b_name,
UBool diffIsError);
};