| 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
|
|
|
|
|