Index: icu46/source/test/intltest/v32test.cpp |
=================================================================== |
--- icu46/source/test/intltest/v32test.cpp (revision 0) |
+++ icu46/source/test/intltest/v32test.cpp (revision 0) |
@@ -0,0 +1,495 @@ |
+/******************************************************************** |
+ * COPYRIGHT: |
+ * Copyright (c) 2002-2007, International Business Machines Corporation and |
+ * others. All Rights Reserved. |
+ ********************************************************************/ |
+ |
+// |
+// regextst.cpp |
+// |
+// ICU Regular Expressions test, part of intltest. |
+// |
+ |
+#include "intltest.h" |
+ |
+#include "v32test.h" |
+#include "uvectr32.h" |
+#include "uvector.h" |
+#include "util.h" |
+#include <stdlib.h> |
+#include <stdio.h> |
+ |
+ |
+//--------------------------------------------------------------------------- |
+// |
+// Test class boilerplate |
+// |
+//--------------------------------------------------------------------------- |
+UVector32Test::UVector32Test() |
+{ |
+} |
+ |
+ |
+UVector32Test::~UVector32Test() |
+{ |
+} |
+ |
+ |
+ |
+void UVector32Test::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ) |
+{ |
+ if (exec) logln("TestSuite UVector32Test: "); |
+ switch (index) { |
+ |
+ case 0: name = "UVector32_API"; |
+ if (exec) UVector32_API(); |
+ break; |
+ default: name = ""; |
+ break; //needed to end loop |
+ } |
+} |
+ |
+ |
+//--------------------------------------------------------------------------- |
+// |
+// Error Checking / Reporting macros used in all of the tests. |
+// |
+//--------------------------------------------------------------------------- |
+#define TEST_CHECK_STATUS(status) \ |
+ if (U_FAILURE(status)) {\ |
+ errln("UVector32Test failure at line %d. status=%s\n", __LINE__, u_errorName(status));\ |
+ return;\ |
+ } |
+ |
+#define TEST_ASSERT(expr) \ |
+ if ((expr)==FALSE) {\ |
+ errln("UVector32Test failure at line %d.\n", __LINE__);\ |
+ } |
+ |
+//--------------------------------------------------------------------------- |
+// |
+// UVector32_API Check for basic functionality of UVector32. |
+// |
+//--------------------------------------------------------------------------- |
+void UVector32Test::UVector32_API() { |
+ |
+ UErrorCode status = U_ZERO_ERROR; |
+ UVector32 *a; |
+ UVector32 *b; |
+ |
+ a = new UVector32(status); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(2000, status); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ // |
+ // assign() |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ b = new UVector32(status); |
+ b->assign(*a, status); |
+ TEST_ASSERT(b->size() == 3); |
+ TEST_ASSERT(b->elementAti(1) == 20); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ delete b; |
+ |
+ // |
+ // operator == and != and equals() |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ b = new UVector32(status); |
+ TEST_ASSERT(*b != *a); |
+ TEST_ASSERT(!(*b == *a)); |
+ TEST_ASSERT(!b->equals(*a)); |
+ b->assign(*a, status); |
+ TEST_ASSERT(*b == *a); |
+ TEST_ASSERT(!(*b != *a)); |
+ TEST_ASSERT(b->equals(*a)); |
+ b->addElement(666, status); |
+ TEST_ASSERT(*b != *a); |
+ TEST_ASSERT(!(*b == *a)); |
+ TEST_ASSERT(!b->equals(*a)); |
+ TEST_CHECK_STATUS(status); |
+ delete b; |
+ delete a; |
+ |
+ // |
+ // addElement(). Covered by above tests. |
+ // |
+ |
+ // |
+ // setElementAt() |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ a->setElementAt(666, 1); |
+ TEST_ASSERT(a->elementAti(0) == 10); |
+ TEST_ASSERT(a->elementAti(1) == 666); |
+ TEST_ASSERT(a->size() == 3); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ // |
+ // insertElementAt() |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ a->insertElementAt(666, 1, status); |
+ TEST_ASSERT(a->elementAti(0) == 10); |
+ TEST_ASSERT(a->elementAti(1) == 666); |
+ TEST_ASSERT(a->elementAti(2) == 20); |
+ TEST_ASSERT(a->elementAti(3) == 30); |
+ TEST_ASSERT(a->size() == 4); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ // |
+ // elementAti() covered by above tests |
+ // |
+ |
+ // |
+ // lastElementi |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ TEST_ASSERT(a->lastElementi() == 30); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ |
+ // |
+ // indexOf |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ TEST_ASSERT(a->indexOf(30, 0) == 2); |
+ TEST_ASSERT(a->indexOf(40, 0) == -1); |
+ TEST_ASSERT(a->indexOf(10, 0) == 0); |
+ TEST_ASSERT(a->indexOf(10, 1) == -1); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ |
+ // |
+ // contains |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ TEST_ASSERT(a->contains(10) == TRUE); |
+ TEST_ASSERT(a->contains(11) == FALSE); |
+ TEST_ASSERT(a->contains(20) == TRUE); |
+ TEST_ASSERT(a->contains(-10) == FALSE); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ |
+ // |
+ // containsAll |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ b = new UVector32(status); |
+ TEST_ASSERT(a->containsAll(*b) == TRUE); |
+ b->addElement(2, status); |
+ TEST_ASSERT(a->containsAll(*b) == FALSE); |
+ b->setElementAt(10, 0); |
+ TEST_ASSERT(a->containsAll(*b) == TRUE); |
+ TEST_ASSERT(b->containsAll(*a) == FALSE); |
+ b->addElement(30, status); |
+ b->addElement(20, status); |
+ TEST_ASSERT(a->containsAll(*b) == TRUE); |
+ TEST_ASSERT(b->containsAll(*a) == TRUE); |
+ b->addElement(2, status); |
+ TEST_ASSERT(a->containsAll(*b) == FALSE); |
+ TEST_ASSERT(b->containsAll(*a) == TRUE); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ delete b; |
+ |
+ // |
+ // removeAll |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ b = new UVector32(status); |
+ a->removeAll(*b); |
+ TEST_ASSERT(a->size() == 3); |
+ b->addElement(20, status); |
+ a->removeAll(*b); |
+ TEST_ASSERT(a->size() == 2); |
+ TEST_ASSERT(a->contains(10)==TRUE); |
+ TEST_ASSERT(a->contains(30)==TRUE); |
+ b->addElement(10, status); |
+ a->removeAll(*b); |
+ TEST_ASSERT(a->size() == 1); |
+ TEST_ASSERT(a->contains(30) == TRUE); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ delete b; |
+ |
+ // |
+ // retainAll |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ b = new UVector32(status); |
+ b->addElement(10, status); |
+ b->addElement(20, status); |
+ b->addElement(30, status); |
+ b->addElement(15, status); |
+ a->retainAll(*b); |
+ TEST_ASSERT(a->size() == 3); |
+ b->removeElementAt(1); |
+ a->retainAll(*b); |
+ TEST_ASSERT(a->contains(20) == FALSE); |
+ TEST_ASSERT(a->size() == 2); |
+ b->removeAllElements(); |
+ TEST_ASSERT(b->size() == 0); |
+ a->retainAll(*b); |
+ TEST_ASSERT(a->size() == 0); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ delete b; |
+ |
+ // |
+ // removeElementAt Tested above. |
+ // |
+ |
+ // |
+ // removeAllElments Tested above |
+ // |
+ |
+ // |
+ // size() tested above |
+ // |
+ |
+ // |
+ // isEmpty |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ TEST_ASSERT(a->isEmpty() == TRUE); |
+ a->addElement(10, status); |
+ TEST_ASSERT(a->isEmpty() == FALSE); |
+ a->addElement(20, status); |
+ a->removeElementAt(0); |
+ TEST_ASSERT(a->isEmpty() == FALSE); |
+ a->removeElementAt(0); |
+ TEST_ASSERT(a->isEmpty() == TRUE); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ |
+ // |
+ // ensureCapacity, expandCapacity |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ TEST_ASSERT(a->isEmpty() == TRUE); |
+ a->addElement(10, status); |
+ TEST_ASSERT(a->ensureCapacity(5000, status)== TRUE); |
+ TEST_ASSERT(a->expandCapacity(20000, status) == TRUE); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ // |
+ // setSize |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ a->setSize(100); |
+ TEST_ASSERT(a->size() == 100); |
+ TEST_ASSERT(a->elementAti(0) == 10); |
+ TEST_ASSERT(a->elementAti(1) == 20); |
+ TEST_ASSERT(a->elementAti(2) == 30); |
+ TEST_ASSERT(a->elementAti(3) == 0); |
+ a->setElementAt(666, 99); |
+ a->setElementAt(777, 100); |
+ TEST_ASSERT(a->elementAti(99) == 666); |
+ TEST_ASSERT(a->elementAti(100) == 0); |
+ a->setSize(2); |
+ TEST_ASSERT(a->elementAti(1) == 20); |
+ TEST_ASSERT(a->elementAti(2) == 0); |
+ TEST_ASSERT(a->size() == 2); |
+ a->setSize(0); |
+ TEST_ASSERT(a->empty() == TRUE); |
+ TEST_ASSERT(a->size() == 0); |
+ |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ // |
+ // containsNone |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ b = new UVector32(status); |
+ TEST_ASSERT(a->containsNone(*b) == TRUE); |
+ b->addElement(5, status); |
+ TEST_ASSERT(a->containsNone(*b) == TRUE); |
+ b->addElement(30, status); |
+ TEST_ASSERT(a->containsNone(*b) == FALSE); |
+ |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ delete b; |
+ |
+ // |
+ // sortedInsert |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->sortedInsert(30, status); |
+ a->sortedInsert(20, status); |
+ a->sortedInsert(10, status); |
+ TEST_ASSERT(a->elementAti(0) == 10); |
+ TEST_ASSERT(a->elementAti(1) == 20); |
+ TEST_ASSERT(a->elementAti(2) == 30); |
+ |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ // |
+ // getBuffer |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ int32_t *buf = a->getBuffer(); |
+ TEST_ASSERT(buf[0] == 10); |
+ TEST_ASSERT(buf[1] == 20); |
+ a->setSize(20000); |
+ int32_t *resizedBuf; |
+ resizedBuf = a->getBuffer(); |
+ //TEST_ASSERT(buf != resizedBuf); // The buffer might have been realloc'd |
+ TEST_ASSERT(resizedBuf[0] == 10); |
+ TEST_ASSERT(resizedBuf[1] == 20); |
+ |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ |
+ // |
+ // empty |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ TEST_ASSERT(a->empty() == TRUE); |
+ a->addElement(10, status); |
+ TEST_ASSERT(a->empty() == FALSE); |
+ a->addElement(20, status); |
+ a->removeElementAt(0); |
+ TEST_ASSERT(a->empty() == FALSE); |
+ a->removeElementAt(0); |
+ TEST_ASSERT(a->empty() == TRUE); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ |
+ // |
+ // peeki |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ TEST_ASSERT(a->peeki() == 10); |
+ a->addElement(20, status); |
+ TEST_ASSERT(a->peeki() == 20); |
+ a->addElement(30, status); |
+ TEST_ASSERT(a->peeki() == 30); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ |
+ // |
+ // popi |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->addElement(10, status); |
+ a->addElement(20, status); |
+ a->addElement(30, status); |
+ TEST_ASSERT(a->popi() == 30); |
+ TEST_ASSERT(a->popi() == 20); |
+ TEST_ASSERT(a->popi() == 10); |
+ TEST_ASSERT(a->popi() == 0); |
+ TEST_ASSERT(a->isEmpty()); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ // |
+ // push |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ TEST_ASSERT(a->push(10, status) == 10); |
+ TEST_ASSERT(a->push(20, status) == 20); |
+ TEST_ASSERT(a->push(30, status) == 30); |
+ TEST_ASSERT(a->size() == 3); |
+ TEST_ASSERT(a->popi() == 30); |
+ TEST_ASSERT(a->popi() == 20); |
+ TEST_ASSERT(a->popi() == 10); |
+ TEST_ASSERT(a->isEmpty()); |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+ |
+ // |
+ // reserveBlock |
+ // |
+ status = U_ZERO_ERROR; |
+ a = new UVector32(status); |
+ a->ensureCapacity(1000, status); |
+ |
+ // TODO: |
+ |
+ TEST_CHECK_STATUS(status); |
+ delete a; |
+ |
+} |
+ |
+ |
Property changes on: icu46/source/test/intltest/v32test.cpp |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |