Index: icu46/source/test/intltest/usettest.h |
=================================================================== |
--- icu46/source/test/intltest/usettest.h (revision 0) |
+++ icu46/source/test/intltest/usettest.h (revision 0) |
@@ -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 |
Property changes on: icu46/source/test/intltest/usettest.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |