d2a68eaa18
X-SVN-Rev: 18070
60 lines
1.7 KiB
C++
60 lines
1.7 KiB
C++
/********************************************************************
|
|
* COPYRIGHT:
|
|
* Copyright (c) 2002-2005, International Business Machines Corporation and
|
|
* others. All Rights Reserved.
|
|
********************************************************************/
|
|
|
|
/**
|
|
* DataDrivenCollatorTest is a test class that uses data stored in resource
|
|
* bundles to perform testing. For more details on data structure, see
|
|
* source/test/testdata/DataDrivenCollationTest.txt
|
|
*/
|
|
|
|
#ifndef _INTLTESTDATADRIVENCOLLATOR
|
|
#define _INTLTESTDATADRIVENCOLLATOR
|
|
|
|
#include "unicode/utypes.h"
|
|
|
|
#if !UCONFIG_NO_COLLATION
|
|
|
|
#include "tscoll.h"
|
|
#include "uvector.h"
|
|
#include "unicode/coll.h"
|
|
#include "unicode/tblcoll.h"
|
|
#include "unicode/sortkey.h"
|
|
#include "unicode/schriter.h"
|
|
|
|
class TestDataModule;
|
|
class TestData;
|
|
|
|
class SeqElement {
|
|
public:
|
|
UnicodeString source;
|
|
Collator::EComparisonResult relation;
|
|
};
|
|
|
|
class DataDrivenCollatorTest: public IntlTestCollator {
|
|
void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par = NULL );
|
|
public:
|
|
DataDrivenCollatorTest();
|
|
virtual ~DataDrivenCollatorTest();
|
|
protected:
|
|
|
|
void DataDrivenTest(char *par);
|
|
void processSequence(Collator* col, const UnicodeString &sequence);
|
|
void processTest(TestData *testData);
|
|
void processArguments(Collator *col, const UChar *start, int32_t optLen);
|
|
UBool setTestSequence(const UnicodeString &setSequence, SeqElement &el);
|
|
UBool getNextInSequence(SeqElement &el);
|
|
private:
|
|
StringCharacterIterator seq;
|
|
TestDataModule *driver;
|
|
UErrorCode status;
|
|
UVector sequences;
|
|
RuleBasedCollator *UCA; // needed for opening collators from binary images
|
|
};
|
|
|
|
#endif /* #if !UCONFIG_NO_COLLATION */
|
|
|
|
#endif
|