| /******************************************************************** |
| * COPYRIGHT: |
| * Copyright (c) 2002-2009, 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 && !UCONFIG_NO_FILE_IO |
| |
| #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 |