OLD | NEW |
(Empty) | |
| 1 |
| 2 /******************************************************************** |
| 3 * COPYRIGHT: |
| 4 * Copyright (c) 1997-2007, International Business Machines Corporation and |
| 5 * others. All Rights Reserved. |
| 6 ******************************************************************** |
| 7 ********************************************************************** |
| 8 * Date Name Description |
| 9 * 10/20/99 alan Creation. |
| 10 * 03/22/2000 Madhu Added additional tests |
| 11 ********************************************************************** |
| 12 */ |
| 13 |
| 14 #ifndef _TESTUNISET |
| 15 #define _TESTUNISET |
| 16 |
| 17 #include "unicode/unistr.h" |
| 18 #include "unicode/uniset.h" |
| 19 #include "unicode/ucnv_err.h" |
| 20 #include "intltest.h" |
| 21 |
| 22 class UnicodeSetWithStrings; |
| 23 |
| 24 /** |
| 25 * UnicodeSet test |
| 26 */ |
| 27 class UnicodeSetTest: public IntlTest { |
| 28 public: |
| 29 UnicodeSetTest(); |
| 30 ~UnicodeSetTest(); |
| 31 |
| 32 private: |
| 33 void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par=
NULL); |
| 34 |
| 35 void Testj2268(); |
| 36 |
| 37 /** |
| 38 * Test that toPattern() round trips with syntax characters and |
| 39 * whitespace. |
| 40 */ |
| 41 void TestToPattern(); |
| 42 |
| 43 void TestPatterns(void); |
| 44 void TestCategories(void); |
| 45 void TestAddRemove(void); |
| 46 void TestCloneEqualHash(void); |
| 47 |
| 48 /** |
| 49 * Make sure minimal representation is maintained. |
| 50 */ |
| 51 void TestMinimalRep(void); |
| 52 |
| 53 void TestAPI(void); |
| 54 |
| 55 void TestIteration(void); |
| 56 |
| 57 void TestStrings(void); |
| 58 |
| 59 void TestScriptSet(void); |
| 60 |
| 61 /** |
| 62 * Test the [:Latin:] syntax. |
| 63 */ |
| 64 void TestPropertySet(void); |
| 65 |
| 66 void TestClone(void); |
| 67 |
| 68 void TestIndexOf(void); |
| 69 |
| 70 void TestExhaustive(void); |
| 71 |
| 72 void TestCloseOver(void); |
| 73 |
| 74 void TestEscapePattern(void); |
| 75 |
| 76 void TestInvalidCodePoint(void); |
| 77 |
| 78 void TestSymbolTable(void); |
| 79 |
| 80 void TestSurrogate(); |
| 81 |
| 82 void TestPosixClasses(); |
| 83 |
| 84 void TestFreezable(); |
| 85 |
| 86 void TestSpan(); |
| 87 |
| 88 void TestStringSpan(); |
| 89 |
| 90 private: |
| 91 |
| 92 UBool toPatternAux(UChar32 start, UChar32 end); |
| 93 |
| 94 UBool checkPat(const UnicodeString& source, |
| 95 const UnicodeSet& testSet); |
| 96 |
| 97 UBool checkPat(const UnicodeString& source, const UnicodeSet& testSet, const
UnicodeString& pat); |
| 98 |
| 99 void _testComplement(int32_t a, UnicodeSet&, UnicodeSet&); |
| 100 |
| 101 void _testAdd(int32_t a, int32_t b, UnicodeSet&, UnicodeSet&, UnicodeSet&); |
| 102 |
| 103 void _testRetain(int32_t a, int32_t b, UnicodeSet&, UnicodeSet&, UnicodeSet&
); |
| 104 |
| 105 void _testRemove(int32_t a, int32_t b, UnicodeSet&, UnicodeSet&, UnicodeSet&
); |
| 106 |
| 107 void _testXor(int32_t a, int32_t b, UnicodeSet&, UnicodeSet&, UnicodeSet&); |
| 108 |
| 109 /** |
| 110 * Check that ranges are monotonically increasing and non- |
| 111 * overlapping. |
| 112 */ |
| 113 void checkCanonicalRep(const UnicodeSet& set, const UnicodeString& msg); |
| 114 |
| 115 /** |
| 116 * Convert a bitmask to a UnicodeSet. |
| 117 */ |
| 118 static UnicodeSet& bitsToSet(int32_t a, UnicodeSet&); |
| 119 |
| 120 /** |
| 121 * Convert a UnicodeSet to a bitmask. Only the characters |
| 122 * U+0000 to U+0020 are represented in the bitmask. |
| 123 */ |
| 124 static int32_t setToBits(const UnicodeSet& x); |
| 125 |
| 126 /** |
| 127 * Return the representation of an inversion list based UnicodeSet |
| 128 * as a pairs list. Ranges are listed in ascending Unicode order. |
| 129 * For example, the set [a-zA-M3] is represented as "33AMaz". |
| 130 */ |
| 131 static UnicodeString getPairs(const UnicodeSet& set); |
| 132 |
| 133 /** |
| 134 * Basic consistency check for a few items. |
| 135 * That the iterator works, and that we can create a pattern and |
| 136 * get the same thing back |
| 137 */ |
| 138 void checkRoundTrip(const UnicodeSet& s); |
| 139 |
| 140 void copyWithIterator(UnicodeSet& t, const UnicodeSet& s, UBool withRange); |
| 141 |
| 142 UBool checkEqual(const UnicodeSet& s, const UnicodeSet& t, const char* messa
ge); |
| 143 |
| 144 void expectContainment(const UnicodeString& pat, |
| 145 const UnicodeString& charsIn, |
| 146 const UnicodeString& charsOut); |
| 147 void expectContainment(const UnicodeSet& set, |
| 148 const UnicodeString& charsIn, |
| 149 const UnicodeString& charsOut); |
| 150 void expectContainment(const UnicodeSet& set, |
| 151 const UnicodeString& setName, |
| 152 const UnicodeString& charsIn, |
| 153 const UnicodeString& charsOut); |
| 154 void expectPattern(UnicodeSet& set, |
| 155 const UnicodeString& pattern, |
| 156 const UnicodeString& expectedPairs); |
| 157 void expectPairs(const UnicodeSet& set, |
| 158 const UnicodeString& expectedPairs); |
| 159 void expectToPattern(const UnicodeSet& set, |
| 160 const UnicodeString& expPat, |
| 161 const char** expStrings); |
| 162 void expectRange(const UnicodeString& label, |
| 163 const UnicodeSet& set, |
| 164 UChar32 start, UChar32 end); |
| 165 void doAssert(UBool, const char*); |
| 166 |
| 167 void testSpan(const UnicodeSetWithStrings *sets[4], const void *s, int32_t l
ength, UBool isUTF16, |
| 168 uint32_t whichSpans, |
| 169 int32_t expectLimits[], int32_t &expectCount, |
| 170 const char *testName, int32_t index); |
| 171 void testSpan(const UnicodeSetWithStrings *sets[4], const void *s, int32_t l
ength, UBool isUTF16, |
| 172 uint32_t whichSpans, |
| 173 const char *testName, int32_t index); |
| 174 void testSpanBothUTFs(const UnicodeSetWithStrings *sets[4], |
| 175 const UChar *s16, int32_t length16, |
| 176 uint32_t whichSpans, |
| 177 const char *testName, int32_t index); |
| 178 void testSpanContents(const UnicodeSetWithStrings *sets[4], uint32_t whichSp
ans, const char *testName); |
| 179 void testSpanUTF16String(const UnicodeSetWithStrings *sets[4], uint32_t whic
hSpans, const char *testName); |
| 180 void testSpanUTF8String(const UnicodeSetWithStrings *sets[4], uint32_t which
Spans, const char *testName); |
| 181 |
| 182 UConverter *openUTF8Converter(); |
| 183 |
| 184 UConverter *utf8Cnv; |
| 185 |
| 186 public: |
| 187 static UnicodeString escape(const UnicodeString& s); |
| 188 }; |
| 189 |
| 190 #endif |
OLD | NEW |