/***********************************************************************
* COPYRIGHT:
- * Copyright (c) 2013, International Business Machines Corporation
+ * Copyright (c) 2013-2015, International Business Machines Corporation
* and others. All Rights Reserved.
***********************************************************************/
const char *containingContinent;
} KnownRegion;
-#define LENGTHOF(array) (int32_t)(sizeof(array) / sizeof((array)[0]))
-
static KnownRegion knownRegions[] = {
// Code, Num, Parent, Type, Containing Continent
{ "TP" , 626, "035", URGN_TERRITORY, "142" },
void RegionTest::TestKnownRegions() {
- for (int32_t i = 0 ; i < LENGTHOF(knownRegions) ; i++ ) {
+ for (int32_t i = 0 ; i < UPRV_LENGTHOF(knownRegions) ; i++ ) {
KnownRegion rd = knownRegions[i];
UErrorCode status = U_ZERO_ERROR;
const Region *r = Region::getInstance(rd.code,status);
UErrorCode status = U_ZERO_ERROR;
const Region *r = Region::getInstance((const char *)NULL,status);
if ( status != U_ILLEGAL_ARGUMENT_ERROR ) {
- errln("Calling Region::getInstance(NULL) should have triggered an U_ILLEGAL_ARGUMENT_ERROR, but didn't.");
+ errcheckln(status, "Calling Region::getInstance(NULL) should have triggered an U_ILLEGAL_ARGUMENT_ERROR, but didn't. - %s", u_errorName(status));
}
status = U_ZERO_ERROR;
r = Region::getInstance("BOGUS",status);
if ( status != U_ILLEGAL_ARGUMENT_ERROR ) {
- errln("Calling Region::getInstance(\"BOGUS\") should have triggered an U_ILLEGAL_ARGUMENT_ERROR, but didn't.");
+ errcheckln(status, "Calling Region::getInstance(\"BOGUS\") should have triggered an U_ILLEGAL_ARGUMENT_ERROR, but didn't. - %s", u_errorName(status));
}
- for (int32_t i = 0 ; i < LENGTHOF(testData) ; i++ ) {
+ for (int32_t i = 0 ; i < UPRV_LENGTHOF(testData) ; i++ ) {
TestData data = testData[i];
status = U_ZERO_ERROR;
r = Region::getInstance(data.inputID,status);
UErrorCode status = U_ZERO_ERROR;
Region::getInstance(-123,status);
if ( status != U_ILLEGAL_ARGUMENT_ERROR ) {
- errln("Calling Region::getInstance(-123) should have triggered an U_ILLEGAL_ARGUMENT_ERROR, but didn't.");
+ errcheckln(status, "Calling Region::getInstance(-123) should have triggered an U_ILLEGAL_ARGUMENT_ERROR, but didn't. - %s", u_errorName(status));
}
- for (int32_t i = 0 ; i < LENGTHOF(testData) ; i++ ) {
+ for (int32_t i = 0 ; i < UPRV_LENGTHOF(testData) ; i++ ) {
TestData data = testData[i];
status = U_ZERO_ERROR;
const Region *r = Region::getInstance(data.inputID,status);
}
void RegionTest::TestGetContainedRegions() {
- for (int32_t i = 0 ; i < LENGTHOF(knownRegions) ; i++ ) {
+ for (int32_t i = 0 ; i < UPRV_LENGTHOF(knownRegions) ; i++ ) {
KnownRegion rd = knownRegions[i];
UErrorCode status = U_ZERO_ERROR;
if (r->getType() == URGN_GROUPING) {
continue;
}
- StringEnumeration *containedRegions = r->getContainedRegions();
+ StringEnumeration *containedRegions = r->getContainedRegions(status);
+ if (U_FAILURE(status)) {
+ errln("%s->getContainedRegions(status) failed: %s", r->getRegionCode(), u_errorName(status));
+ continue;
+ }
for ( int32_t i = 0 ; i < containedRegions->count(status); i++ ) {
const char *crID = containedRegions->next(NULL,status);
const Region *cr = Region::getInstance(crID,status);
}
void RegionTest::TestGetContainedRegionsWithType() {
- for (int32_t i = 0 ; i < LENGTHOF(knownRegions) ; i++ ) {
+ for (int32_t i = 0 ; i < UPRV_LENGTHOF(knownRegions) ; i++ ) {
KnownRegion rd = knownRegions[i];
UErrorCode status = U_ZERO_ERROR;
if (r->getType() != URGN_CONTINENT) {
continue;
}
- StringEnumeration *containedRegions = r->getContainedRegions(URGN_TERRITORY);
+ StringEnumeration *containedRegions = r->getContainedRegions(URGN_TERRITORY, status);
+ if (U_FAILURE(status)) {
+ errln("%s->getContainedRegions(URGN_TERRITORY, status) failed: %s", r->getRegionCode(), u_errorName(status));
+ continue;
+ }
for ( int32_t j = 0 ; j < containedRegions->count(status); j++ ) {
const char *crID = containedRegions->next(NULL,status);
const Region *cr = Region::getInstance(crID,status);
}
void RegionTest::TestGetContainingRegion() {
- for (int32_t i = 0 ; i < LENGTHOF(knownRegions) ; i++ ) {
+ for (int32_t i = 0 ; i < UPRV_LENGTHOF(knownRegions) ; i++ ) {
KnownRegion rd = knownRegions[i];
UErrorCode status = U_ZERO_ERROR;
const Region *r = Region::getInstance(rd.code,status);
}
void RegionTest::TestGetContainingRegionWithType() {
- for (int32_t i = 0 ; i < LENGTHOF(knownRegions) ; i++ ) {
+ for (int32_t i = 0 ; i < UPRV_LENGTHOF(knownRegions) ; i++ ) {
KnownRegion rd = knownRegions[i];
UErrorCode status = U_ZERO_ERROR;
UErrorCode status = U_ZERO_ERROR;
const Region *r = Region::getInstance(data[0],status);
if (r) {
- StringEnumeration *preferredValues = r->getPreferredValues();
+ StringEnumeration *preferredValues = r->getPreferredValues(status);
+ if (U_FAILURE(status)) {
+ errln("%s->getPreferredValues(status) failed: %s", r->getRegionCode(), u_errorName(status));
+ continue;
+ }
for ( int i = 1 ; data[i] ; i++ ) {
UBool found = FALSE;
preferredValues->reset(status);
}
void RegionTest::TestContains() {
- for (int32_t i = 0 ; i < LENGTHOF(knownRegions) ; i++ ) {
+ for (int32_t i = 0 ; i < UPRV_LENGTHOF(knownRegions) ; i++ ) {
KnownRegion rd = knownRegions[i];
UErrorCode status = U_ZERO_ERROR;
// Test to make sure that the set of territories contained in World and the set of all available
// territories are one and the same.
UErrorCode status = U_ZERO_ERROR;
- StringEnumeration *availableTerritories = Region::getAvailable(URGN_TERRITORY);
+ StringEnumeration *availableTerritories = Region::getAvailable(URGN_TERRITORY, status);
+ if (U_FAILURE(status)) {
+ dataerrln("Region::getAvailable(URGN_TERRITORY,status) failed: %s", u_errorName(status));
+ return;
+ }
const Region *world = Region::getInstance("001",status);
if (U_FAILURE(status)) {
dataerrln("Region::getInstance(\"001\",status) failed: %s", u_errorName(status));
return;
}
- StringEnumeration *containedInWorld = world->getContainedRegions(URGN_TERRITORY);
+ StringEnumeration *containedInWorld = world->getContainedRegions(URGN_TERRITORY, status);
+ if (U_FAILURE(status)) {
+ errln("world->getContainedRegions(URGN_TERRITORY, status) failed: %s", u_errorName(status));
+ return;
+ }
if ( !availableTerritories || !containedInWorld || *availableTerritories != *containedInWorld ) {
char availableTerritoriesString[1024] = "";
char containedInWorldString[1024] = "";
dataerrln("Fail called to Region::getInstance(\"BM\", status) - %s", u_errorName(status));
return;
}
- StringEnumeration *containedRegions = region->getContainedRegions();
+ StringEnumeration *containedRegions = region->getContainedRegions(status);
+ if (U_FAILURE(status)) {
+ errln("%s->getContainedRegions(status) failed: %s", region->getRegionCode(), u_errorName(status));
+ return;
+ }
const char *emptyStr = containedRegions->next(NULL, status);
if (U_FAILURE(status)||(emptyStr!=NULL)) {
errln("Error, 'BM' should have no subregions, but returned str=%p, err=%s\n", emptyStr, u_errorName(status));