home *** CD-ROM | disk | FTP | other *** search
- /*
- *****************************************************************************************
- * *
- * COPYRIGHT: *
- * (C) Copyright Taligent, Inc., 1997 *
- * (C) Copyright International Business Machines Corporation, 1997-1998 *
- * Licensed Material - Program-Property of IBM - All Rights Reserved. *
- * US Government Users Restricted Rights - Use, duplication, or disclosure *
- * restricted by GSA ADP Schedule Contract with IBM Corp. *
- * *
- *****************************************************************************************
- */
-
- /**
- * Collation Iterator tests.
- * (Let me reiterate my position...)
- */
-
- #ifndef _ITERCOLL
- #define _ITERCOLL
-
- #ifndef _UTYPES
- #include "utypes.h"
- #endif
-
- #ifndef _COLL
- #include "coll.h"
- #endif
-
- #ifndef _TBLCOLL
- #include "tblcoll.h"
- #endif
-
- #ifndef _COLEITR
- #include "coleitr.h"
- #endif
-
- #ifndef _INTLTEST
- #include "intltest.h"
- #endif
-
- #ifndef _UNISTR
- #include "unistr.h"
- #endif
-
- class CollationIteratorTest: public IntlTest
- {
- public:
-
- enum EToken_Len { MAX_TOKEN_LEN = 128 };
-
- CollationIteratorTest();
- ~CollationIteratorTest();
-
- void runIndexedTest(int32_t index, bool_t exec, char* &name, char* par = NULL);
-
- /**
- * Test for CollationElementIterator.previous()
- *
- * @bug 4108758 - Make sure it works with contracting characters
- *
- */
- void TestPrevious(char *par);
-
- /**
- * Test for getOffset() and setOffset()
- */
- void TestOffset(char *par);
-
- /**
- * Test for setText()
- */
- void TestSetText(char *par);
-
- /** @bug 4108762
- * Test for getMaxExpansion()
- */
- void TestMaxExpansion(char *par);
-
- /*
- * @bug 4157299
- */
- void TestClearBuffers(char *par);
-
- //------------------------------------------------------------------------
- // Internal utilities
- //
-
- private:
- void backAndForth(CollationElementIterator &iter);
-
- struct ExpansionRecord
- {
- UChar character;
- int32_t count;
- };
-
- /**
- * Verify that getMaxExpansion works on a given set of collation rules
- */
- void verifyExpansion(UnicodeString rules, ExpansionRecord tests[], int32_t testCount);
-
- /**
- * Return an integer array containing all of the collation orders
- * returned by calls to next on the specified iterator
- */
- int32_t *getOrders(CollationElementIterator &iter, int32_t &orderLength);
-
- /**
- * Return a string containing all of the collation orders
- * returned by calls to next on the specified iterator
- */
- UnicodeString &orderString(CollationElementIterator &iter, UnicodeString &target);
-
- void assertEqual(CollationElementIterator &i1, CollationElementIterator &i2);
-
- RuleBasedCollator *en_us;
- static const UnicodeString test1;
- static const UnicodeString test2;
-
- };
-
- #endif
-