summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-xetex/test/intltest/usettest.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu/icu-xetex/test/intltest/usettest.h')
-rw-r--r--Build/source/libs/icu/icu-xetex/test/intltest/usettest.h190
1 files changed, 190 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-xetex/test/intltest/usettest.h b/Build/source/libs/icu/icu-xetex/test/intltest/usettest.h
new file mode 100644
index 00000000000..94083406764
--- /dev/null
+++ b/Build/source/libs/icu/icu-xetex/test/intltest/usettest.h
@@ -0,0 +1,190 @@
+
+/********************************************************************
+ * COPYRIGHT:
+ * Copyright (c) 1997-2007, International Business Machines Corporation and
+ * others. All Rights Reserved.
+ ********************************************************************
+**********************************************************************
+* Date Name Description
+* 10/20/99 alan Creation.
+* 03/22/2000 Madhu Added additional tests
+**********************************************************************
+*/
+
+#ifndef _TESTUNISET
+#define _TESTUNISET
+
+#include "unicode/unistr.h"
+#include "unicode/uniset.h"
+#include "unicode/ucnv_err.h"
+#include "intltest.h"
+
+class UnicodeSetWithStrings;
+
+/**
+ * UnicodeSet test
+ */
+class UnicodeSetTest: public IntlTest {
+public:
+ UnicodeSetTest();
+ ~UnicodeSetTest();
+
+private:
+ void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par=NULL);
+
+ void Testj2268();
+
+ /**
+ * Test that toPattern() round trips with syntax characters and
+ * whitespace.
+ */
+ void TestToPattern();
+
+ void TestPatterns(void);
+ void TestCategories(void);
+ void TestAddRemove(void);
+ void TestCloneEqualHash(void);
+
+ /**
+ * Make sure minimal representation is maintained.
+ */
+ void TestMinimalRep(void);
+
+ void TestAPI(void);
+
+ void TestIteration(void);
+
+ void TestStrings(void);
+
+ void TestScriptSet(void);
+
+ /**
+ * Test the [:Latin:] syntax.
+ */
+ void TestPropertySet(void);
+
+ void TestClone(void);
+
+ void TestIndexOf(void);
+
+ void TestExhaustive(void);
+
+ void TestCloseOver(void);
+
+ void TestEscapePattern(void);
+
+ void TestInvalidCodePoint(void);
+
+ void TestSymbolTable(void);
+
+ void TestSurrogate();
+
+ void TestPosixClasses();
+
+ void TestFreezable();
+
+ void TestSpan();
+
+ void TestStringSpan();
+
+private:
+
+ UBool toPatternAux(UChar32 start, UChar32 end);
+
+ UBool checkPat(const UnicodeString& source,
+ const UnicodeSet& testSet);
+
+ UBool checkPat(const UnicodeString& source, const UnicodeSet& testSet, const UnicodeString& pat);
+
+ void _testComplement(int32_t a, UnicodeSet&, UnicodeSet&);
+
+ void _testAdd(int32_t a, int32_t b, UnicodeSet&, UnicodeSet&, UnicodeSet&);
+
+ void _testRetain(int32_t a, int32_t b, UnicodeSet&, UnicodeSet&, UnicodeSet&);
+
+ void _testRemove(int32_t a, int32_t b, UnicodeSet&, UnicodeSet&, UnicodeSet&);
+
+ void _testXor(int32_t a, int32_t b, UnicodeSet&, UnicodeSet&, UnicodeSet&);
+
+ /**
+ * Check that ranges are monotonically increasing and non-
+ * overlapping.
+ */
+ void checkCanonicalRep(const UnicodeSet& set, const UnicodeString& msg);
+
+ /**
+ * Convert a bitmask to a UnicodeSet.
+ */
+ static UnicodeSet& bitsToSet(int32_t a, UnicodeSet&);
+
+ /**
+ * Convert a UnicodeSet to a bitmask. Only the characters
+ * U+0000 to U+0020 are represented in the bitmask.
+ */
+ static int32_t setToBits(const UnicodeSet& x);
+
+ /**
+ * Return the representation of an inversion list based UnicodeSet
+ * as a pairs list. Ranges are listed in ascending Unicode order.
+ * For example, the set [a-zA-M3] is represented as "33AMaz".
+ */
+ static UnicodeString getPairs(const UnicodeSet& set);
+
+ /**
+ * Basic consistency check for a few items.
+ * That the iterator works, and that we can create a pattern and
+ * get the same thing back
+ */
+ void checkRoundTrip(const UnicodeSet& s);
+
+ void copyWithIterator(UnicodeSet& t, const UnicodeSet& s, UBool withRange);
+
+ UBool checkEqual(const UnicodeSet& s, const UnicodeSet& t, const char* message);
+
+ void expectContainment(const UnicodeString& pat,
+ const UnicodeString& charsIn,
+ const UnicodeString& charsOut);
+ void expectContainment(const UnicodeSet& set,
+ const UnicodeString& charsIn,
+ const UnicodeString& charsOut);
+ void expectContainment(const UnicodeSet& set,
+ const UnicodeString& setName,
+ const UnicodeString& charsIn,
+ const UnicodeString& charsOut);
+ void expectPattern(UnicodeSet& set,
+ const UnicodeString& pattern,
+ const UnicodeString& expectedPairs);
+ void expectPairs(const UnicodeSet& set,
+ const UnicodeString& expectedPairs);
+ void expectToPattern(const UnicodeSet& set,
+ const UnicodeString& expPat,
+ const char** expStrings);
+ void expectRange(const UnicodeString& label,
+ const UnicodeSet& set,
+ UChar32 start, UChar32 end);
+ void doAssert(UBool, const char*);
+
+ void testSpan(const UnicodeSetWithStrings *sets[4], const void *s, int32_t length, UBool isUTF16,
+ uint32_t whichSpans,
+ int32_t expectLimits[], int32_t &expectCount,
+ const char *testName, int32_t index);
+ void testSpan(const UnicodeSetWithStrings *sets[4], const void *s, int32_t length, UBool isUTF16,
+ uint32_t whichSpans,
+ const char *testName, int32_t index);
+ void testSpanBothUTFs(const UnicodeSetWithStrings *sets[4],
+ const UChar *s16, int32_t length16,
+ uint32_t whichSpans,
+ const char *testName, int32_t index);
+ void testSpanContents(const UnicodeSetWithStrings *sets[4], uint32_t whichSpans, const char *testName);
+ void testSpanUTF16String(const UnicodeSetWithStrings *sets[4], uint32_t whichSpans, const char *testName);
+ void testSpanUTF8String(const UnicodeSetWithStrings *sets[4], uint32_t whichSpans, const char *testName);
+
+ UConverter *openUTF8Converter();
+
+ UConverter *utf8Cnv;
+
+public:
+ static UnicodeString escape(const UnicodeString& s);
+};
+
+#endif