]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/test/intltest/usettest.h
ICU-64260.0.1.tar.gz
[apple/icu.git] / icuSources / test / intltest / usettest.h
index 04b6ca3d4cd065beebcf4fb2a374084742ee339e..e79a9e8e77dd94b90bb937e486d123933f4b5bcb 100644 (file)
@@ -1,7 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 
 /********************************************************************
  * COPYRIGHT: 
 
 /********************************************************************
  * COPYRIGHT: 
- * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * Copyright (c) 1997-2015, International Business Machines Corporation and
  * others. All Rights Reserved.
  ********************************************************************
 **********************************************************************
  * others. All Rights Reserved.
  ********************************************************************
 **********************************************************************
 
 #include "unicode/unistr.h"
 #include "unicode/uniset.h"
 
 #include "unicode/unistr.h"
 #include "unicode/uniset.h"
+#include "unicode/ucnv_err.h"
 #include "intltest.h"
 #include "intltest.h"
+#include "cmemory.h"
+
+class UnicodeSetWithStrings;
 
 /**
  * UnicodeSet test
  */
 class UnicodeSetTest: public IntlTest {
 
 /**
  * UnicodeSet test
  */
 class UnicodeSetTest: public IntlTest {
+public:
+    UnicodeSetTest();
+    ~UnicodeSetTest();
 
 
-    void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par=NULL);
-    
 private:
 private:
+    void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par=NULL);
 
     void Testj2268();
 
 
     void Testj2268();
 
@@ -47,9 +55,9 @@ private:
 
     void TestAPI(void);
 
 
     void TestAPI(void);
 
-    void TestStrings(void);
+    void TestIteration(void);
 
 
-    void TestStringPatterns(void);
+    void TestStrings(void);
 
     void TestScriptSet(void);
 
 
     void TestScriptSet(void);
 
@@ -70,6 +78,23 @@ private:
 
     void TestInvalidCodePoint(void);
 
 
     void TestInvalidCodePoint(void);
 
+    void TestSymbolTable(void);
+
+    void TestSurrogate();
+
+    void TestPosixClasses();
+
+    void TestFreezable();
+
+    void TestSpan();
+
+    void TestStringSpan();
+
+    void TestUCAUnsafeBackwards();
+    void TestIntOverflow();
+    void TestUnusedCcc();
+    void TestDeepPattern();
+
 private:
 
     UBool toPatternAux(UChar32 start, UChar32 end);
 private:
 
     UBool toPatternAux(UChar32 start, UChar32 end);
@@ -119,6 +144,8 @@ private:
      * get the same thing back
      */
     void checkRoundTrip(const UnicodeSet& s);
      * get the same thing back
      */
     void checkRoundTrip(const UnicodeSet& s);
+
+    void checkSerializeRoundTrip(const UnicodeSet& s, UErrorCode &ec);
     
     void copyWithIterator(UnicodeSet& t, const UnicodeSet& s, UBool withRange);
     
     
     void copyWithIterator(UnicodeSet& t, const UnicodeSet& s, UBool withRange);
     
@@ -146,6 +173,28 @@ private:
                      const UnicodeSet& set,
                      UChar32 start, UChar32 end);
     void doAssert(UBool, const char*);
                      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;
+
+    MaybeStackArray<uint16_t, 16> serializeBuffer;
+
 public:
     static UnicodeString escape(const UnicodeString& s);
 };
 public:
     static UnicodeString escape(const UnicodeString& s);
 };