From 79b8b3a76d8eda7372bb4dedae0ec7aebdaebc12 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Wed, 10 Aug 2011 12:03:08 +0000 Subject: icu 4.8.1 git-svn-id: svn://tug.org/texlive/trunk@23480 c570f23f-e606-0410-a88d-b1316a301751 --- .../libs/icu/icu-4.8.1/test/intltest/itercoll.h | 119 +++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 Build/source/libs/icu/icu-4.8.1/test/intltest/itercoll.h (limited to 'Build/source/libs/icu/icu-4.8.1/test/intltest/itercoll.h') diff --git a/Build/source/libs/icu/icu-4.8.1/test/intltest/itercoll.h b/Build/source/libs/icu/icu-4.8.1/test/intltest/itercoll.h new file mode 100644 index 00000000000..747f80f6689 --- /dev/null +++ b/Build/source/libs/icu/icu-4.8.1/test/intltest/itercoll.h @@ -0,0 +1,119 @@ +/******************************************************************** + * COPYRIGHT: + * Copyright (c) 1997-2001, International Business Machines Corporation and + * others. All Rights Reserved. + ********************************************************************/ + +/** + * Collation Iterator tests. + * (Let me reiterate my position...) + */ + +#ifndef _ITERCOLL +#define _ITERCOLL + +#include "unicode/utypes.h" + +#if !UCONFIG_NO_COLLATION + +#include "unicode/tblcoll.h" +#include "unicode/coleitr.h" +#include "tscoll.h" + +class CollationIteratorTest: public IntlTestCollator +{ +public: + + // 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 }; + + CollationIteratorTest(); + virtual ~CollationIteratorTest(); + + void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par = NULL); + + /** + * Test that results from CollationElementIterator.next is equivalent to + * the reversed results from CollationElementIterator.previous, for the set + * of BMP characters. + */ + void TestUnicodeChar(); + + /** + * 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 */); + + /** + * Testing the assignment operator + */ + void TestAssignment(); + + /** + * Testing the constructors + */ + void TestConstructors(); + + /** + * Testing the strength order functionality + */ + void TestStrengthOrder(); + + //------------------------------------------------------------------------ + // Internal utilities + // + +private: + + 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 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; + const UnicodeString test1; + const UnicodeString test2; + +}; + +#endif /* #if !UCONFIG_NO_COLLATION */ + +#endif -- cgit v1.2.3