diff options
Diffstat (limited to 'Build/source/libs/icu/icu-49.1/test/intltest/usettest.h')
-rw-r--r-- | Build/source/libs/icu/icu-49.1/test/intltest/usettest.h | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-49.1/test/intltest/usettest.h b/Build/source/libs/icu/icu-49.1/test/intltest/usettest.h new file mode 100644 index 00000000000..94083406764 --- /dev/null +++ b/Build/source/libs/icu/icu-49.1/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 |