You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
4.4 KiB
190 lines
4.4 KiB
// © 2016 and later: Unicode, Inc. and others.
|
|
// License & terms of use: http://www.unicode.org/copyright.html
|
|
/***********************************************************************
|
|
* COPYRIGHT:
|
|
* Copyright (c) 1997-2014, International Business Machines Corporation
|
|
* and others. All Rights Reserved.
|
|
***********************************************************************/
|
|
|
|
/**
|
|
* CollationAPITest is a third level test class. This test performs API
|
|
* related tests for the Collation framework.
|
|
*/
|
|
|
|
#ifndef _APICOLL
|
|
#define _APICOLL
|
|
|
|
#include "unicode/utypes.h"
|
|
|
|
#if !UCONFIG_NO_COLLATION
|
|
|
|
#include "unicode/tblcoll.h"
|
|
#include "tscoll.h"
|
|
|
|
class CollationAPITest: public IntlTestCollator {
|
|
public:
|
|
void runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par = NULL */);
|
|
void doAssert(UBool condition, const char *message);
|
|
|
|
/**
|
|
* This tests the properties of a collator object.
|
|
* - constructor/destructor
|
|
* - factory method createInstance
|
|
* - compare and getCollationKey
|
|
* - get/set decomposition mode and comparison level
|
|
* - displayable name in the desired locale
|
|
*/
|
|
void TestProperty(/* char* par */);
|
|
void TestKeywordValues();
|
|
|
|
/**
|
|
* This tests the RuleBasedCollator
|
|
* - constructor/destructor
|
|
* - getRules
|
|
*/
|
|
void TestRuleBasedColl(/* char* par */);
|
|
|
|
/**
|
|
* This tests the RuleBasedCollator
|
|
* - getRules
|
|
*/
|
|
void TestRules(/* char* par */);
|
|
|
|
/**
|
|
* Tests decomposition setting
|
|
*/
|
|
void TestDecomposition();
|
|
|
|
/**
|
|
* SafeClone test
|
|
*/
|
|
void TestSafeClone();
|
|
|
|
/**
|
|
* This tests the properties of a rule based collator object.
|
|
* - constructor/destructor
|
|
* - == and != operators
|
|
* - clone and copy
|
|
* - collation rules access
|
|
*/
|
|
void TestOperators(/* char* par */);
|
|
|
|
/**
|
|
* This tests the duplication of a collator object.
|
|
*/
|
|
void TestDuplicate(/* char* par */);
|
|
|
|
/**
|
|
* This tests the comparison convenience methods of a collator object.
|
|
* - greater than
|
|
* - greater than or equal to
|
|
* - equal to
|
|
*/
|
|
void TestCompare(/* char* par */);
|
|
|
|
/**
|
|
* This tests the hashCode method of a collator object.
|
|
*/
|
|
void TestHashCode(/* char* par */);
|
|
|
|
/**
|
|
* This tests the collation key related APIs.
|
|
* - constructor/destructor
|
|
* - Collator::getCollationKey
|
|
* - == and != operators
|
|
* - comparison between collation keys
|
|
* - creating collation key with a byte array and vice versa
|
|
*/
|
|
void TestCollationKey(/* char* par */);
|
|
|
|
/**
|
|
* This tests the CollationElementIterator related APIs.
|
|
* - creation of a CollationElementIterator object
|
|
* - == and != operators
|
|
* - iterating forward
|
|
* - reseting the iterator index
|
|
* - requesting the order properties(primary, secondary or tertiary)
|
|
*/
|
|
void TestElemIter(/* char* par */);
|
|
|
|
/**
|
|
* This tests the list the all available locales.
|
|
*/
|
|
void TestGetAll(/* char* par */);
|
|
|
|
/**
|
|
* This tests the sort keys generated by collator
|
|
*/
|
|
void TestSortKey();
|
|
void TestSortKeyOverflow();
|
|
|
|
/**
|
|
* This tests getMaxExpansion
|
|
*/
|
|
void TestMaxExpansion();
|
|
|
|
/**
|
|
* Tests the retrieval of names given a locale
|
|
*/
|
|
void TestDisplayName();
|
|
|
|
/**
|
|
* Tests the collator attributes
|
|
*/
|
|
void TestAttribute();
|
|
|
|
/**
|
|
* Tests the setters and getters of variable top
|
|
*/
|
|
void TestVariableTopSetting();
|
|
void TestMaxVariable();
|
|
|
|
/**
|
|
* Tests GetLocale for a Collator
|
|
*/
|
|
void TestGetLocale();
|
|
|
|
/**
|
|
* Tests bounds API
|
|
*/
|
|
void TestBounds();
|
|
|
|
/**
|
|
* Tests getTailoredSet API
|
|
*/
|
|
void TestGetTailoredSet();
|
|
|
|
/**
|
|
* Tests the subclassability
|
|
*/
|
|
void TestSubclass();
|
|
|
|
/**
|
|
* Tests the dynamic and static ids of collation classes
|
|
*/
|
|
void TestUClassID();
|
|
|
|
/**
|
|
* Test NULL
|
|
*/
|
|
void TestNULLCharTailoring();
|
|
|
|
void TestClone();
|
|
void TestCloneBinary();
|
|
void TestIterNumeric();
|
|
void TestBadKeywords();
|
|
void TestGapTooSmall();
|
|
|
|
private:
|
|
// If this is too small for the test data, just increase it.
|
|
// Just don't make it too large, otherwise the executable will get too big
|
|
enum EToken_Len { MAX_TOKEN_LEN = 16 };
|
|
|
|
void dump(UnicodeString msg, RuleBasedCollator* c, UErrorCode& status);
|
|
|
|
};
|
|
|
|
#endif /* #if !UCONFIG_NO_COLLATION */
|
|
|
|
#endif
|