ICU-6010 ISO-3166 update
X-SVN-Rev: 22884
This commit is contained in:
parent
6d8293d7af
commit
c4849a6107
@ -348,7 +348,7 @@ static const char * const COUNTRIES[] = {
|
||||
"AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN",
|
||||
"AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ",
|
||||
"BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI",
|
||||
"BJ", "BM", "BN", "BO", "BR", "BS", "BT", "BV",
|
||||
"BJ", "BL", "BM", "BN", "BO", "BR", "BS", "BT", "BV",
|
||||
"BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG",
|
||||
"CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR",
|
||||
"CU", "CV", "CX", "CY", "CZ", "DE", "DJ", "DK",
|
||||
@ -361,31 +361,31 @@ static const char * const COUNTRIES[] = {
|
||||
"IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI",
|
||||
"KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA",
|
||||
"LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU",
|
||||
"LV", "LY", "MA", "MC", "MD", "MG", "MH", "MK",
|
||||
"LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK",
|
||||
"ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS",
|
||||
"MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA",
|
||||
"NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP",
|
||||
"NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG",
|
||||
"PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT",
|
||||
"PW", "PY", "QA", "RE", "RO", "RU", "RW", "SA",
|
||||
"PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA",
|
||||
"SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ",
|
||||
"SK", "SL", "SM", "SN", "SO", "SR", "ST", "SV",
|
||||
"SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ",
|
||||
"TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV",
|
||||
"TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ",
|
||||
"VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF",
|
||||
"WS", "YE", "YT", "YU", "ZA", "ZM", "ZW", "ZZ",
|
||||
"WS", "YE", "YT", "ZA", "ZM", "ZW",
|
||||
NULL,
|
||||
"FX", "RO", "TP", "ZR", /* obsolete country codes */
|
||||
"FX", "CS", "RO", "TP", "YU", "ZR", /* obsolete country codes */
|
||||
NULL
|
||||
};
|
||||
|
||||
static const char* const DEPRECATED_COUNTRIES[] ={
|
||||
"BU", "DY", "FX", "HV", "NH", "RH", "TP", "YU", "ZR", NULL, NULL /* deprecated country list */
|
||||
"BU", "CS", "DY", "FX", "HV", "NH", "RH", "TP", "YU", "ZR", NULL, NULL /* deprecated country list */
|
||||
};
|
||||
static const char* const REPLACEMENT_COUNTRIES[] = {
|
||||
/* "BU", "DY", "FX", "HV", "NH", "RH", "TP", "YU", "ZR" */
|
||||
"MM", "BJ", "FR", "BF", "VU", "ZW", "TL", "CS", "CD", NULL, NULL /* replacement country codes */
|
||||
/* "BU", "CS", "DY", "FX", "HV", "NH", "RH", "TP", "YU", "ZR" */
|
||||
"MM", "RS", "BJ", "FR", "BF", "VU", "ZW", "TL", "RS", "CD", NULL, NULL /* replacement country codes */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -408,8 +408,8 @@ static const char * const COUNTRIES_3[] = {
|
||||
"AGO", "ATA", "ARG", "ASM", "AUT", "AUS", "ABW", "ALA", "AZE",
|
||||
/* "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", */
|
||||
"BIH", "BRB", "BGD", "BEL", "BFA", "BGR", "BHR", "BDI",
|
||||
/* "BJ", "BM", "BN", "BO", "BR", "BS", "BT", "BV", */
|
||||
"BEN", "BMU", "BRN", "BOL", "BRA", "BHS", "BTN", "BVT",
|
||||
/* "BJ", "BL", "BM", "BN", "BO", "BR", "BS", "BT", "BV", */
|
||||
"BEN", "BLM", "BMU", "BRN", "BOL", "BRA", "BHS", "BTN", "BVT",
|
||||
/* "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", */
|
||||
"BWA", "BLR", "BLZ", "CAN", "CCK", "COD", "CAF", "COG",
|
||||
/* "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", */
|
||||
@ -420,22 +420,22 @@ static const char * const COUNTRIES_3[] = {
|
||||
"DMA", "DOM", "DZA", "ECU", "EST", "EGY", "ESH", "ERI",
|
||||
/* "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", */
|
||||
"ESP", "ETH", "FIN", "FJI", "FLK", "FSM", "FRO", "FRA",
|
||||
/* "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", */
|
||||
/* "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", */
|
||||
"GAB", "GBR", "GRD", "GEO", "GUF", "GGY", "GHA", "GIB", "GRL",
|
||||
/* "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", */
|
||||
"GMB", "GIN", "GLP", "GNQ", "GRC", "SGS", "GTM", "GUM",
|
||||
/* "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", */
|
||||
"GNB", "GUY", "HKG", "HMD", "HND", "HRV", "HTI", "HUN",
|
||||
/* ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS" */
|
||||
"IDN", "IRL", "ISR", "IMN", "IND", "IOT", "IRQ", "IRN", "ISL",
|
||||
/* "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", */
|
||||
/* "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS" */
|
||||
"IDN", "IRL", "ISR", "IMN", "IND", "IOT", "IRQ", "IRN", "ISL",
|
||||
/* "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", */
|
||||
"ITA", "JEY", "JAM", "JOR", "JPN", "KEN", "KGZ", "KHM", "KIR",
|
||||
/* "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", */
|
||||
"COM", "KNA", "PRK", "KOR", "KWT", "CYM", "KAZ", "LAO",
|
||||
/* "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", */
|
||||
"LBN", "LCA", "LIE", "LKA", "LBR", "LSO", "LTU", "LUX",
|
||||
/* "LV", "LY", "MA", "MC", "MD", "MG", "MH", "MK", */
|
||||
"LVA", "LBY", "MAR", "MCO", "MDA", "MDG", "MHL", "MKD",
|
||||
/* "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", */
|
||||
"LVA", "LBY", "MAR", "MCO", "MDA", "MNE", "MAF", "MDG", "MHL", "MKD",
|
||||
/* "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", */
|
||||
"MLI", "MMR", "MNG", "MAC", "MNP", "MTQ", "MRT", "MSR",
|
||||
/* "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", */
|
||||
@ -446,8 +446,8 @@ static const char * const COUNTRIES_3[] = {
|
||||
"NRU", "NIU", "NZL", "OMN", "PAN", "PER", "PYF", "PNG",
|
||||
/* "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", */
|
||||
"PHL", "PAK", "POL", "SPM", "PCN", "PRI", "PSE", "PRT",
|
||||
/* "PW", "PY", "QA", "RE", "RO", "RU", "RW", "SA", */
|
||||
"PLW", "PRY", "QAT", "REU", "ROU", "RUS", "RWA", "SAU",
|
||||
/* "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", */
|
||||
"PLW", "PRY", "QAT", "REU", "ROU", "SRB", "RUS", "RWA", "SAU",
|
||||
/* "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", */
|
||||
"SLB", "SYC", "SDN", "SWE", "SGP", "SHN", "SVN", "SJM",
|
||||
/* "SK", "SL", "SM", "SN", "SO", "SR", "ST", "SV", */
|
||||
@ -460,11 +460,11 @@ static const char * const COUNTRIES_3[] = {
|
||||
"TWN", "TZA", "UKR", "UGA", "UMI", "USA", "URY", "UZB",
|
||||
/* "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", */
|
||||
"VAT", "VCT", "VEN", "VGB", "VIR", "VNM", "VUT", "WLF",
|
||||
/* "WS", "YE", "YT", "YU", "ZA", "ZM", "ZW", "ZZZ" */
|
||||
"WSM", "YEM", "MYT", "YUG", "ZAF", "ZMB", "ZWE", "ZZZ",
|
||||
/* "WS", "YE", "YT", "ZA", "ZM", "ZW", */
|
||||
"WSM", "YEM", "MYT", "ZAF", "ZMB", "ZWE",
|
||||
NULL,
|
||||
/* "FX", "RO", "TP", "ZR", */
|
||||
"FXX", "ROM", "TMP", "ZAR",
|
||||
/* "FX", "CS", "RO", "TP", "YU", "ZR", */
|
||||
"FXX", "SCG", "ROM", "TMP", "YUG", "ZAR",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
@ -870,6 +870,7 @@ static void TestISOFunctions()
|
||||
int32_t count = 0, skipped = 0;
|
||||
int32_t expect;
|
||||
UResourceBundle *res;
|
||||
UResourceBundle *subRes;
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
|
||||
/* test getISOLanguages*/
|
||||
@ -878,12 +879,13 @@ static void TestISOFunctions()
|
||||
|
||||
/* use structLocale - this data is no longer in root */
|
||||
res = ures_openDirect(loadTestData(&status), "structLocale", &status);
|
||||
ures_getByKey(res, "Languages", res, &status);
|
||||
subRes = ures_getByKey(res, "Languages", NULL, &status);
|
||||
if (U_FAILURE(status)) {
|
||||
log_err("There is an error in structLocale's ures_getByKey(\"Languages\"), status=%s\n", u_errorName(status));
|
||||
return;
|
||||
}
|
||||
|
||||
expect = ures_getSize(subRes);
|
||||
for(count = 0; *(str+count) != 0; count++)
|
||||
{
|
||||
const char *key = NULL;
|
||||
@ -893,23 +895,22 @@ static void TestISOFunctions()
|
||||
do {
|
||||
/* Skip over language tags. This API only returns language codes. */
|
||||
skipped += (key != NULL);
|
||||
ures_getNextString(res, NULL, &key, &status);
|
||||
ures_getNextString(subRes, NULL, &key, &status);
|
||||
}
|
||||
while (key != NULL && strchr(key, '_'));
|
||||
|
||||
if(key == NULL)
|
||||
break;
|
||||
if(!strcmp(key,"root"))
|
||||
ures_getNextString(res, NULL, &key, &status);
|
||||
if(!strcmp(key,"Fallback"))
|
||||
ures_getNextString(res, NULL, &key, &status);
|
||||
if(!strcmp(key,"sh")) /* Remove this once sh is removed. */
|
||||
ures_getNextString(res, NULL, &key, &status);
|
||||
/* TODO: Consider removing sh, which is deprecated */
|
||||
if(strcmp(key,"root") == 0 || strcmp(key,"Fallback") == 0 || strcmp(key,"sh") == 0) {
|
||||
ures_getNextString(subRes, NULL, &key, &status);
|
||||
skipped++;
|
||||
}
|
||||
#if U_CHARSET_FAMILY==U_ASCII_FAMILY
|
||||
/* This code only works on ASCII machines where the keys are stored in ASCII order */
|
||||
if(strcmp(test,key)) {
|
||||
/* The first difference usually implies the place where things get out of sync */
|
||||
log_err("FAIL diff at offset %d, \"%s\" != \"%s\"\n", count, test, key);
|
||||
log_err("FAIL Language diff at offset %d, \"%s\" != \"%s\"\n", count, test, key);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -925,30 +926,55 @@ static void TestISOFunctions()
|
||||
log_err("FAIL getISOLanguages() has obsolete language code %s\n", test);
|
||||
}
|
||||
|
||||
/* We check root, just in case the en locale is removed. The en locale should have the same number of resources. */
|
||||
expect = ures_getSize(res) - 1; /* Ignore root */
|
||||
expect -= 1; /* TODO: Remove this line once sh goes away. */
|
||||
expect -= skipped;
|
||||
ures_close(res);
|
||||
expect -= skipped; /* Ignore the skipped resources from structLocale */
|
||||
|
||||
if(count!=expect) {
|
||||
log_err("There is an error in getISOLanguages, got %d, expected %d (as per structLocale)\n", count, expect);
|
||||
}
|
||||
|
||||
subRes = ures_getByKey(res, "Countries", subRes, &status);
|
||||
log_verbose("Testing ISO Countries");
|
||||
skipped = 0;
|
||||
expect = ures_getSize(subRes) - 1; /* Skip ZZ */
|
||||
for(count = 0; *(str1+count) != 0; count++)
|
||||
{
|
||||
const char *key = NULL;
|
||||
test = *(str1+count);
|
||||
do {
|
||||
/* Skip over numeric UN tags. This API only returns ISO-3166 codes. */
|
||||
skipped += (key != NULL);
|
||||
ures_getNextString(subRes, NULL, &key, &status);
|
||||
}
|
||||
while (key != NULL && strlen(key) != 2);
|
||||
|
||||
if(key == NULL)
|
||||
break;
|
||||
/* TODO: Consider removing CS, which is deprecated */
|
||||
while(strcmp(key,"QO") == 0 || strcmp(key,"QU") == 0 || strcmp(key,"CS") == 0) {
|
||||
ures_getNextString(subRes, NULL, &key, &status);
|
||||
skipped++;
|
||||
}
|
||||
#if U_CHARSET_FAMILY==U_ASCII_FAMILY
|
||||
/* This code only works on ASCII machines where the keys are stored in ASCII order */
|
||||
if(strcmp(test,key)) {
|
||||
/* The first difference usually implies the place where things get out of sync */
|
||||
log_err("FAIL Country diff at offset %d, \"%s\" != \"%s\"\n", count, test, key);
|
||||
}
|
||||
#endif
|
||||
if(!strcmp(test,"FX"))
|
||||
log_err("FAIL getISOCountries() has obsolete country code %s\n", test);
|
||||
if(!strcmp(test,"YU"))
|
||||
log_err("FAIL getISOCountries() has obsolete country code %s\n", test);
|
||||
if(!strcmp(test,"ZR"))
|
||||
log_err("FAIL getISOCountries() has obsolete country code %s\n", test);
|
||||
}
|
||||
expect=244;
|
||||
expect -= skipped; /* Ignore the skipped resources from structLocale */
|
||||
if(count!=expect)
|
||||
{
|
||||
log_err("There is an error in getISOCountries, got %d, expected %d \n", count, expect);
|
||||
}
|
||||
ures_close(subRes);
|
||||
ures_close(res);
|
||||
}
|
||||
|
||||
static void setUpDataTable()
|
||||
@ -1199,6 +1225,7 @@ static void TestObsoleteNames(void)
|
||||
{ "in", "ind", "in", "", "" },
|
||||
{ "id", "ind", "id", "", "" }, /* NO aliasing */
|
||||
{ "sh", "srp", "sh", "", "" },
|
||||
{ "zz_CS", "", "zz", "SCG", "CS" },
|
||||
{ "zz_FX", "", "zz", "FXX", "FX" },
|
||||
{ "zz_RO", "", "zz", "ROU", "RO" },
|
||||
{ "zz_TP", "", "zz", "TMP", "TP" },
|
||||
@ -1210,6 +1237,7 @@ static void TestObsoleteNames(void)
|
||||
{ "zz_ZAR", "", "zz", "ZAR", "ZR" },
|
||||
{ "zz_TMP", "", "zz", "TMP", "TP" },
|
||||
{ "zz_TLS", "", "zz", "TLS", "TL" },
|
||||
{ "zz_YUG", "", "zz", "YUG", "YU" },
|
||||
{ "mlt_PSE", "mlt", "mt", "PSE", "PS" },
|
||||
{ "iw", "heb", "iw", "", "" },
|
||||
{ "ji", "yid", "ji", "", "" },
|
||||
|
@ -888,7 +888,7 @@ LocaleTest::TestGetLangsAndCountries()
|
||||
for(testCount=0;test[testCount];testCount++)
|
||||
;
|
||||
|
||||
if (testCount != 244){
|
||||
if (testCount != 246){
|
||||
errln("Expected getISOCountries to return 240 countries; it returned %d", testCount);
|
||||
}else {
|
||||
for (i = 0; i < spot2Len; i++) {
|
||||
|
4
icu4c/source/test/testdata/structLocale.txt
vendored
4
icu4c/source/test/testdata/structLocale.txt
vendored
@ -72,6 +72,7 @@ structLocale:table(nofallback){
|
||||
BH{""}
|
||||
BI{""}
|
||||
BJ{""}
|
||||
BL{""}
|
||||
BM{""}
|
||||
BN{""}
|
||||
BO{""}
|
||||
@ -185,6 +186,7 @@ structLocale:table(nofallback){
|
||||
MC{""}
|
||||
MD{""}
|
||||
ME{""}
|
||||
MF{""}
|
||||
MG{""}
|
||||
MH{""}
|
||||
MK{""}
|
||||
@ -231,7 +233,6 @@ structLocale:table(nofallback){
|
||||
PW{""}
|
||||
PY{""}
|
||||
QA{""}
|
||||
QE{""}
|
||||
QO{""}
|
||||
QU{""}
|
||||
RE{""}
|
||||
@ -253,7 +254,6 @@ structLocale:table(nofallback){
|
||||
SM{""}
|
||||
SN{""}
|
||||
SO{""}
|
||||
SP{""}
|
||||
SR{""}
|
||||
ST{""}
|
||||
SV{""}
|
||||
|
Loading…
Reference in New Issue
Block a user