ICU-22723 Integrate CLDR 46 release alpha0, part 3, source files

This commit is contained in:
DraganBesevic 2024-08-13 15:50:14 -07:00 committed by DraganBesevic
parent b865f26876
commit d04154833c
24 changed files with 432 additions and 158 deletions

View file

@ -9,6 +9,8 @@
#include "unicode/simpleformatter.h"
#include "unicode/ures.h"
#include "unicode/plurrule.h"
#include "unicode/strenum.h"
#include "ureslocs.h"
#include "charstr.h"
#include "uresimp.h"
@ -18,6 +20,7 @@
#include <algorithm>
#include "cstring.h"
#include "util.h"
#include "sharedpluralrules.h"
using namespace icu;
using namespace icu::number;
@ -519,10 +522,35 @@ void getCurrencyLongNameData(const Locale &locale, const CurrencyUnit &currency,
// In ICU4J, this method gets a CurrencyData from CurrencyData.provider.
// TODO(ICU4J): Implement this without going through CurrencyData, like in ICU4C?
PluralTableSink sink(outArray);
// Here all outArray entries are bogus.
LocalUResourceBundlePointer unitsBundle(ures_open(U_ICUDATA_CURR, locale.getName(), &status));
if (U_FAILURE(status)) { return; }
ures_getAllChildrenWithFallback(unitsBundle.getAlias(), "CurrencyUnitPatterns", sink, status);
if (U_FAILURE(status)) { return; }
// Here the outArray[] entries are filled in with any CurrencyUnitPatterns data for locale,
// or if there is no CurrencyUnitPatterns data for locale since the patterns all inherited
// from the "other" pattern in root (which is true for many locales in CLDR 46), then only
// the "other" entry has a currency pattern. So now what we do is: For all valid plural keywords
// for the locale, if the corresponding outArray[] entry is bogus, fill it in from the "other"
// entry. In the longer run, clients of this should instead consider using CurrencyPluralInfo
// (see i18n/unicode/currpinf.h).
UErrorCode localStatus = U_ZERO_ERROR;
const SharedPluralRules *pr = PluralRules::createSharedInstance(
locale, UPLURAL_TYPE_CARDINAL, localStatus);
if (U_SUCCESS(localStatus)) {
LocalPointer<StringEnumeration> keywords((*pr)->getKeywords(localStatus), localStatus);
if (U_SUCCESS(localStatus)) {
const char* keyword;
while (((keyword = keywords->next(nullptr, localStatus)) != nullptr) && U_SUCCESS(localStatus)) {
int32_t index = StandardPlural::indexOrOtherIndexFromString(keyword);
if (index != StandardPlural::Form::OTHER && outArray[index].isBogus()) {
outArray[index].setTo(outArray[StandardPlural::Form::OTHER]);
}
}
}
pr->removeRef();
}
for (int32_t i = 0; i < StandardPlural::Form::COUNT; i++) {
UnicodeString &pattern = outArray[i];
if (pattern.isBogus()) {

View file

@ -99,9 +99,9 @@ static const UCalGetTypeTest ucalGetTypeTests[] = {
{ "th-TH-u-ca-gregory", UCAL_DEFAULT, "gregorian" },
{ "ja_JP@calendar=japanese", UCAL_GREGORIAN, "gregorian" },
{ "fr_CH", UCAL_DEFAULT, "gregorian" },
{ "fr_SA", UCAL_DEFAULT, "islamic-umalqura" },
{ "fr_CH@rg=sazzzz", UCAL_DEFAULT, "islamic-umalqura" },
{ "fr_CH@rg=sa14", UCAL_DEFAULT, "islamic-umalqura" },
{ "fr_SA", UCAL_DEFAULT, "gregorian" },
{ "fr_CH@rg=sazzzz", UCAL_DEFAULT, "gregorian" },
{ "fr_CH@rg=sa14", UCAL_DEFAULT, "gregorian" },
{ "fr_CH@calendar=japanese;rg=sazzzz", UCAL_DEFAULT, "japanese" },
{ "fr_CH@rg=twcyi", UCAL_DEFAULT, "gregorian" }, // test for ICU-22364
{ "fr_CH@rg=ugw", UCAL_DEFAULT, "gregorian" }, // test for ICU-22364
@ -1634,7 +1634,7 @@ static void TestGetKeywordValuesForLocale(void) {
{ "en@calendar=islamic", "gregorian", NULL, NULL, NULL, NULL },
{ "zh_TW", "gregorian", "roc", "chinese", NULL, NULL },
{ "ar_IR", "persian", "gregorian", "islamic", "islamic-civil", "islamic-tbla" },
{ "th@rg=SAZZZZ", "islamic-umalqura", "gregorian", "islamic", "islamic-rgsa", NULL },
{ "th@rg=SAZZZZ", "gregorian", "islamic-umalqura", "islamic", "islamic-rgsa", NULL },
// tests for ICU-22364
{ "zh_CN@rg=TW", "gregorian", "chinese", NULL, NULL, NULL }, // invalid subdivision code
@ -2860,7 +2860,7 @@ TestGetIanaTimeZoneID(void) {
{u"Europe/Zaporozhye", u"Europe/Kyiv"},
{u"Etc/GMT-1", u"Etc/GMT-1"},
{u"Etc/GMT+20", UNKNOWN},
{u"PST8PDT", u"PST8PDT"},
{u"PST8PDT", u"America/Los_Angeles"},
{u"GMT-08:00", UNKNOWN},
{0, 0}
};

View file

@ -2089,8 +2089,8 @@ static void TestHourCycle(void) {
// test some locales for which we have data
u"en_US", u"Tuesday, March 16, 1943 at 3:45:32PM",
u"en_CA", u"Tuesday, March 16, 1943 at 3:45:32p.m.",
u"en_GB", u"Tuesday 16 March 1943 at 15:45:32",
u"en_AU", u"Tuesday 16 March 1943 at 3:45:32pm",
u"en_GB", u"Tuesday, 16 March 1943 at 15:45:32",
u"en_AU", u"Tuesday, 16 March 1943 at 3:45:32pm",
// test a couple locales for which we don't have specific locale files (we should still get the correct hour cycle)
u"en_CO", u"Tuesday, March 16, 1943 at 3:45:32PM",
u"en_MX", u"Tuesday, March 16, 1943 at 3:45:32PM",
@ -2098,15 +2098,15 @@ static void TestHourCycle(void) {
u"en_US@rg=GBzzzz", u"Tuesday, March 16, 1943 at 15:45:32",
u"en_US@rg=CAzzzz", u"Tuesday, March 16, 1943 at 3:45:32PM",
u"en_CA@rg=USzzzz", u"Tuesday, March 16, 1943 at 3:45:32p.m.",
u"en_GB@rg=USzzzz", u"Tuesday 16 March 1943 at 3:45:32pm",
u"en_GB@rg=CAzzzz", u"Tuesday 16 March 1943 at 3:45:32pm",
u"en_GB@rg=AUzzzz", u"Tuesday 16 March 1943 at 3:45:32pm",
u"en_GB@rg=USzzzz", u"Tuesday, 16 March 1943 at 3:45:32pm",
u"en_GB@rg=CAzzzz", u"Tuesday, 16 March 1943 at 3:45:32pm",
u"en_GB@rg=AUzzzz", u"Tuesday, 16 March 1943 at 3:45:32pm",
// test that the hc ("hours") subtag does the right thing
u"en_US@hours=h23", u"Tuesday, March 16, 1943 at 15:45:32",
u"en_GB@hours=h12", u"Tuesday 16 March 1943 at 3:45:32pm",
u"en_GB@hours=h12", u"Tuesday, 16 March 1943 at 3:45:32pm",
// test that the rg and hc subtags do the right thing when used together
u"en_US@rg=GBzzzz;hours=h12", u"Tuesday, March 16, 1943 at 3:45:32PM",
u"en_GB@rg=USzzzz;hours=h23", u"Tuesday 16 March 1943 at 15:45:32",
u"en_GB@rg=USzzzz;hours=h23", u"Tuesday, 16 March 1943 at 15:45:32",
};
for (int32_t i = 0; i < UPRV_LENGTHOF(testCases); i += 2) {

View file

@ -1016,6 +1016,10 @@ static void VerifyTranslation(void) {
log_knownIssue("CLDR-17203", "Some day names in kxv(_Deva)? use chars not in exemplars")) {
end = 0;
}
if (uprv_strncmp(currLoc,"ak",2) == 0 &&
log_knownIssue("CLDR-17852", "Some month names in ax(_GH) use chars not in exemplars")) {
end = 0;
}
for (idx = 0; idx < end; idx++) {
const UChar *fromBundleStr = ures_getStringByIndex(resArray, idx, &langSize, &errorCode);
@ -1057,6 +1061,10 @@ static void VerifyTranslation(void) {
log_knownIssue("CLDR-17203", "Some month names in kxv(_Deva)? use chars not in exemplars")) {
end = 0;
}
if (uprv_strncmp(currLoc,"ak",2) == 0 &&
log_knownIssue("CLDR-17852", "Some month names in ax(_GH) use chars not in exemplars")) {
end = 0;
}
for (idx = 0; idx < end; idx++) {
const UChar *fromBundleStr = ures_getStringByIndex(resArray, idx, &langSize, &errorCode);

View file

@ -258,31 +258,31 @@ static const FieldsDat fr_attrDef_long_midSent_day[kNumOffsets*2] = {
static const char* ak_decDef_long_stdAlon_sec[kNumOffsets*2] = { // falls back to root
/* text numeric */
"-5 s", "-5 s", /* -5 */
"-2.2 s", "-2.2 s", /* -2.2 */
"-2 s", "-2 s", /* -2 */
"-1 s", "-1 s", /* -1 */
"-0.7 s", "-0.7 s", /* -0.7 */
"now", "-0 s", /* -0 */
"now", "+0 s", /* 0 */
"+0.7 s", "+0.7 s", /* 0.7 */
"+1 s", "+1 s", /* 1 */
"+2 s", "+2 s", /* 2 */
"+5 s", "+5 s", /* 5 */
"nnibuo 5 a atwam", "nnibuo 5 a atwam", /* -5 */
"nnibuo 2.2 a atwam", "nnibuo 2.2 a atwam", /* -2.2 */
"nnibuo 2 a atwam", "nnibuo 2 a atwam", /* -2 */
"anibuo 1 a atwam", "anibuo 1 a atwam", /* -1 */
"nnibuo 0.7 a atwam", "nnibuo 0.7 a atwam", /* -0.7 */
"seesei", "anibuo 0 a atwam", /* -0 */
"seesei", "anibuo 0 mu", /* 0 */
"nnibuo 0.7 mu", "nnibuo 0.7 mu", /* 0.7 */
"anibuo 1 mu", "anibuo 1 mu", /* 1 */
"nnibuo 2 mu", "nnibuo 2 mu", /* 2 */
"nnibuo 5 mu", "nnibuo 5 mu", /* 5 */
};
static const FieldsDat ak_attrDef_long_stdAlon_sec[kNumOffsets*2] = {
{UDAT_REL_NUMERIC_FIELD, 1, 2}, {UDAT_REL_NUMERIC_FIELD, 1, 2},
{UDAT_REL_NUMERIC_FIELD, 1, 4}, {UDAT_REL_NUMERIC_FIELD, 1, 4},
{UDAT_REL_NUMERIC_FIELD, 1, 2}, {UDAT_REL_NUMERIC_FIELD, 1, 2},
{UDAT_REL_NUMERIC_FIELD, 1, 2}, {UDAT_REL_NUMERIC_FIELD, 1, 2},
{UDAT_REL_NUMERIC_FIELD, 1, 4}, {UDAT_REL_NUMERIC_FIELD, 1, 4},
{ -1, -1, -1}, {UDAT_REL_NUMERIC_FIELD, 1, 2},
{ -1, -1, -1}, {UDAT_REL_NUMERIC_FIELD, 1, 2},
{UDAT_REL_NUMERIC_FIELD, 1, 4}, {UDAT_REL_NUMERIC_FIELD, 1, 4},
{UDAT_REL_NUMERIC_FIELD, 1, 2}, {UDAT_REL_NUMERIC_FIELD, 1, 2},
{UDAT_REL_NUMERIC_FIELD, 1, 2}, {UDAT_REL_NUMERIC_FIELD, 1, 2},
{UDAT_REL_NUMERIC_FIELD, 1, 2}, {UDAT_REL_NUMERIC_FIELD, 1, 2},
{UDAT_REL_NUMERIC_FIELD, 7, 8}, {UDAT_REL_NUMERIC_FIELD, 7, 8},
{UDAT_REL_NUMERIC_FIELD, 7, 10}, {UDAT_REL_NUMERIC_FIELD, 7, 10},
{UDAT_REL_NUMERIC_FIELD, 7, 8}, {UDAT_REL_NUMERIC_FIELD, 7, 8},
{UDAT_REL_NUMERIC_FIELD, 7, 8}, {UDAT_REL_NUMERIC_FIELD, 7, 8},
{UDAT_REL_NUMERIC_FIELD, 7, 10}, {UDAT_REL_NUMERIC_FIELD, 7, 10},
{ -1, -1, -1}, {UDAT_REL_NUMERIC_FIELD, 7, 8},
{ -1, -1, -1}, {UDAT_REL_NUMERIC_FIELD, 7, 8},
{UDAT_REL_NUMERIC_FIELD, 7, 10}, {UDAT_REL_NUMERIC_FIELD, 7, 10},
{UDAT_REL_NUMERIC_FIELD, 7, 8}, {UDAT_REL_NUMERIC_FIELD, 7, 8},
{UDAT_REL_NUMERIC_FIELD, 7, 8}, {UDAT_REL_NUMERIC_FIELD, 7, 8},
{UDAT_REL_NUMERIC_FIELD, 7, 8}, {UDAT_REL_NUMERIC_FIELD, 7, 8},
};
static const char* enIN_decDef_short_midSent_weds[kNumOffsets*2] = {

View file

@ -2185,7 +2185,7 @@ static void TestFallback(void)
UResourceBundle* myResB = ures_open(NULL,"no_NO_NY",&err);
UResourceBundle* resLocID = ures_getByKey(myResB, "Version", NULL, &err);
const UChar* version = NULL;
static const UChar versionStr[] = u"45"; // 45 in nn_NO or in a parent bundle/root
static const UChar versionStr[] = u"46"; // 45 in nn_NO or in a parent bundle/root
if(U_FAILURE(err)) {
log_data_err("Expected success when trying to test no_NO_NY aliased to nn_NO for Version "

View file

@ -3309,68 +3309,68 @@ void DateFormatTest::TestTimeZoneDisplayName()
{ "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8:00" },
{ "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:00", "-8:00" },
{ "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-8", "-8:00" },
{ "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "GMT-08:00", "-8:00" },
{ "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u1218\\u12f0\\u1260\\u129b \\u130d\\u12d8 \\u1353\\u1235\\u134a\\u12ad", "-8:00" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7:00" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:00", "-7:00" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-7", "-7:00" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "GMT-07:00", "-7:00" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "\\u130D\\u12DC \\u120E\\u1235 \\u12A3\\u1295\\u1300\\u1208\\u1235", "America/Los_Angeles" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "\\u130D\\u12DC \\u120E\\u1235 \\u12A3\\u1295\\u1300\\u1208\\u1235", "America/Los_Angeles" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u1218\\u12d3\\u120d\\u1272 \\u130d\\u12d8 \\u1353\\u1235\\u134a\\u12ad", "-7:00" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "\\u130d\\u12d8 \\u120e\\u1235 \\u12a3\\u1295\\u1300\\u1208\\u1235", "America/Los_Angeles" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "\\u1293\\u12ed \\u1353\\u1235\\u134a\\u12ad \\u130d\\u12d8", "America/Los_Angeles" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-3", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "\\u121D\\u12F1\\u1265 \\u130D\\u12DC \\u12A3\\u122D\\u1300\\u1295\\u1272\\u1293", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u1218\\u12f0\\u1260\\u129b \\u130d\\u12d8 \\u12a3\\u122d\\u1300\\u1295\\u1272\\u1293", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-3", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "\\u121D\\u12F1\\u1265 \\u130D\\u12DC \\u12A3\\u122D\\u1300\\u1295\\u1272\\u1293", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u130D\\u12DC \\u1265\\u12C8\\u1296\\u1235 \\u12A3\\u12ED\\u1228\\u1235", "America/Buenos_Aires" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u121D\\u12F1\\u1265 \\u130D\\u12DC \\u12A3\\u122D\\u1300\\u1295\\u1272\\u1293", "America/Buenos_Aires" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u1218\\u12f0\\u1260\\u129b \\u130d\\u12d8 \\u12a3\\u122d\\u1300\\u1295\\u1272\\u1293", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u130d\\u12d8 \\u1265\\u12c8\\u1296\\u1235 \\u12a3\\u12ed\\u1228\\u1235", "America/Buenos_Aires" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u1293\\u12ed \\u1218\\u12f0\\u1260\\u129b \\u130d\\u12d8 \\u12a3\\u122d\\u1300\\u1295\\u1272\\u1293", "America/Buenos_Aires" },
{ "ti", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-3", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "\\u121D\\u12F1\\u1265 \\u130D\\u12DC \\u12A3\\u122D\\u1300\\u1295\\u1272\\u1293", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u1218\\u12f0\\u1260\\u129b \\u130d\\u12d8 \\u12a3\\u122d\\u1300\\u1295\\u1272\\u1293", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-3", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "\\u121D\\u12F1\\u1265 \\u130D\\u12DC \\u12A3\\u122D\\u1300\\u1295\\u1272\\u1293", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u130D\\u12DC \\u1265\\u12C8\\u1296\\u1235 \\u12A3\\u12ED\\u1228\\u1235", "America/Buenos_Aires" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u121D\\u12F1\\u1265 \\u130D\\u12DC \\u12A3\\u122D\\u1300\\u1295\\u1272\\u1293", "America/Buenos_Aires" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u1218\\u12f0\\u1260\\u129b \\u130d\\u12d8 \\u12a3\\u122d\\u1300\\u1295\\u1272\\u1293", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u130d\\u12d8 \\u1265\\u12c8\\u1296\\u1235 \\u12a3\\u12ed\\u1228\\u1235", "America/Buenos_Aires" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u1293\\u12ed \\u1218\\u12f0\\u1260\\u129b \\u130d\\u12d8 \\u12a3\\u122d\\u1300\\u1295\\u1272\\u1293", "America/Buenos_Aires" },
{ "ti", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500", "-5:00" },
{ "ti", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-05:00", "-5:00" },
{ "ti", "America/Havana", "2004-01-15T00:00:00Z", "z", "GMT-5", "-5:00" },
{ "ti", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "GMT-05:00", "-5:00" },
{ "ti", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u1218\\u12f0\\u1260\\u129b \\u130d\\u12d8 \\u12a9\\u1263", "-5:00" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400", "-4:00" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-04:00", "-4:00" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "z", "GMT-4", "-4:00" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "GMT-04:00", "-4:00" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "v", "\\u130D\\u12DC \\u12A9\\u1263", "America/Havana" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "\\u130D\\u12DC \\u12A9\\u1263", "America/Havana" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u1218\\u12d3\\u120d\\u1272 \\u130d\\u12d8 \\u12a9\\u1263", "-4:00" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "v", "\\u130d\\u12d8 \\u12a9\\u1263", "America/Havana" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "\\u1293\\u12ed \\u12a9\\u1263 \\u130d\\u12d8", "America/Havana" },
{ "ti", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" },
{ "ti", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00", "+11:00" },
{ "ti", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "GMT+11", "+11:00" },
{ "ti", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "GMT+11:00", "+11:00" },
{ "ti", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u121d\\u1265\\u122b\\u1253\\u12ca \\u1218\\u12d3\\u120d\\u1272 \\u12a3\\u12cd\\u1235\\u1275\\u122b\\u120d\\u12eb \\u130d\\u12d8", "+11:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00", "+10:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+10", "+10:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "GMT+10:00", "+10:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "\\u130D\\u12DC \\u1232\\u12F5\\u1292", "Australia/Sydney" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "\\u130D\\u12DC \\u1232\\u12F5\\u1292", "Australia/Sydney" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+10", "+10:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u121d\\u1265\\u122b\\u1253\\u12ca \\u1218\\u12f0\\u1260\\u129b \\u12a3\\u12cd\\u1235\\u1275\\u122b\\u120d\\u12eb \\u130d\\u12d8", "+10:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "\\u130d\\u12d8 \\u1232\\u12f5\\u1292", "Australia/Sydney" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "\\u1293\\u12ed \\u121d\\u1265\\u122b\\u1253\\u12ca \\u12a3\\u12cd\\u1235\\u1275\\u122b\\u120d\\u12eb \\u130d\\u12d8", "Australia/Sydney" },
{ "ti", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" },
{ "ti", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00", "+11:00" },
{ "ti", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "GMT+11", "+11:00" },
{ "ti", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "GMT+11:00", "+11:00" },
{ "ti", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u121d\\u1265\\u122b\\u1253\\u12ca \\u1218\\u12d3\\u120d\\u1272 \\u12a3\\u12cd\\u1235\\u1275\\u122b\\u120d\\u12eb \\u130d\\u12d8", "+11:00" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00", "+10:00" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "GMT+10", "+10:00" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "GMT+10:00", "+10:00" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "\\u130D\\u12DC \\u1232\\u12F5\\u1292", "Australia/Sydney" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "\\u130D\\u12DC \\u1232\\u12F5\\u1292", "Australia/Sydney" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u121d\\u1265\\u122b\\u1253\\u12ca \\u1218\\u12f0\\u1260\\u129b \\u12a3\\u12cd\\u1235\\u1275\\u122b\\u120d\\u12eb \\u130d\\u12d8", "+10:00" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "\\u130d\\u12d8 \\u1232\\u12f5\\u1292", "Australia/Sydney" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "\\u1293\\u12ed \\u121d\\u1265\\u122b\\u1253\\u12ca \\u12a3\\u12cd\\u1235\\u1275\\u122b\\u120d\\u12eb \\u130d\\u12d8", "Australia/Sydney" },
{ "ti", "Europe/London", "2004-01-15T00:00:00Z", "Z", "+0000", "+0:00" },
{ "ti", "Europe/London", "2004-01-15T00:00:00Z", "ZZZZ", "GMT", "+0:00" },
@ -3380,8 +3380,8 @@ void DateFormatTest::TestTimeZoneDisplayName()
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+01:00", "+1:00" },
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "z", "GMT+1", "+1:00" },
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "zzzz", "\\u130D\\u12DC \\u12AD\\u1228\\u121D\\u1272 \\u1265\\u122A\\u1323\\u1295\\u12EB", "+1:00" },
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "v", "\\u130D\\u12DC \\u1265\\u122A\\u1323\\u1295\\u12EB", "Europe/London" },
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "\\u130D\\u12DC \\u1265\\u122A\\u1323\\u1295\\u12EB", "Europe/London" },
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "v", "\\u130d\\u12d8 \\u1265\\u122a\\u1323\\u1295\\u12eb", "Europe/London" },
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "\\u130d\\u12d8 \\u1265\\u122a\\u1323\\u1295\\u12eb", "Europe/London" },
{ "ti", "Etc/GMT+3", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" },
{ "ti", "Etc/GMT+3", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" },
@ -3398,13 +3398,13 @@ void DateFormatTest::TestTimeZoneDisplayName()
{ "ti", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+5:30", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "GMT+05:30", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u1218\\u12f0\\u1260\\u129b \\u1205\\u1295\\u12f5 \\u130d\\u12d8", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+5:30", "+05:30" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "GMT+05:30", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\\u130D\\u12DC \\u1205\\u1295\\u12F2", "Alna/Calcutta" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u130D\\u12DC \\u1205\\u1295\\u12F2", "Asia/Calcutta" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "\\u1293\\u12ed \\u1218\\u12f0\\u1260\\u129b \\u1205\\u1295\\u12f5 \\u130d\\u12d8", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\\u130d\\u12d8 \\u1205\\u1295\\u12f2", "Alna/Calcutta" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u1293\\u12ed \\u1218\\u12f0\\u1260\\u129b \\u1205\\u1295\\u12f5 \\u130d\\u12d8", "Asia/Calcutta" },
// Ticket#8589 Partial location name to use country name if the zone is the golden
// zone for the time zone's country.
@ -5830,8 +5830,8 @@ void DateFormatTest::TestHourCycle() {
// test some locales for which we have data
{ "en-us", u"Tuesday, March 16, 1943 at 3:45:32PM" },
{ "en-ca", u"Tuesday, March 16, 1943 at 3:45:32p.m." },
{ "en-gb", u"Tuesday 16 March 1943 at 15:45:32" },
{ "en-au", u"Tuesday 16 March 1943 at 3:45:32pm" },
{ "en-gb", u"Tuesday, 16 March 1943 at 15:45:32" },
{ "en-au", u"Tuesday, 16 March 1943 at 3:45:32pm" },
// test a couple locales for which we don't have specific locale files (we should still get the correct hour cycle)
{ "en-co", u"Tuesday, March 16, 1943 at 3:45:32PM" },
{ "en-mx", u"Tuesday, March 16, 1943 at 3:45:32PM" },
@ -5839,15 +5839,15 @@ void DateFormatTest::TestHourCycle() {
{ "en-us-u-rg-gbzzzz", u"Tuesday, March 16, 1943 at 15:45:32" },
{ "en-us-u-rg-cazzzz", u"Tuesday, March 16, 1943 at 3:45:32PM" },
{ "en-ca-u-rg-uszzzz", u"Tuesday, March 16, 1943 at 3:45:32p.m." },
{ "en-gb-u-rg-uszzzz", u"Tuesday 16 March 1943 at 3:45:32pm" },
{ "en-gb-u-rg-cazzzz", u"Tuesday 16 March 1943 at 3:45:32pm" },
{ "en-gb-u-rg-auzzzz", u"Tuesday 16 March 1943 at 3:45:32pm" },
{ "en-gb-u-rg-uszzzz", u"Tuesday, 16 March 1943 at 3:45:32pm" },
{ "en-gb-u-rg-cazzzz", u"Tuesday, 16 March 1943 at 3:45:32pm" },
{ "en-gb-u-rg-auzzzz", u"Tuesday, 16 March 1943 at 3:45:32pm" },
// test that the hc ("hours") subtag does the right thing
{ "en-us-u-hc-h23", u"Tuesday, March 16, 1943 at 15:45:32" },
{ "en-gb-u-hc-h12", u"Tuesday 16 March 1943 at 3:45:32pm" },
{ "en-gb-u-hc-h12", u"Tuesday, 16 March 1943 at 3:45:32pm" },
// test that the rg and hc subtags do the right thing when used together
{ "en-us-u-rg-gbzzzz-hc-h12", u"Tuesday, March 16, 1943 at 3:45:32PM" },
{ "en-gb-u-rg-uszzzz-hc-h23", u"Tuesday 16 March 1943 at 15:45:32" },
{ "en-gb-u-rg-uszzzz-hc-h23", u"Tuesday, 16 March 1943 at 15:45:32" },
};
for (int32_t i = 0; i < UPRV_LENGTHOF(TEST_CASES); i++) {

View file

@ -164,9 +164,9 @@ void IntlTestDateTimePatternGeneratorAPI::testAPI(/*char *par*/)
UnicodeString("1.1999"), // 00: yM (fixed expected result per ticket:6626:)
UnicodeString("tammi 1999"), // 01: yMMM
UnicodeString("13.1.1999"), // 02: yMd
UnicodeString("13. tammik. 1999"), // 03: yMMMd
UnicodeString("13.1.1999"), // 03: yMMMd
UnicodeString("13.1."), // 04: Md
UnicodeString("13. tammik."), // 05: MMMd
UnicodeString("13.1."), // 05: MMMd
UnicodeString("13. tammikuuta"), // 06: MMMMd
UnicodeString("1. nelj. 1999"), // 07: yQQQ
UnicodeString(u"11.58\u202Fip.", -1), // 08: hhmm
@ -174,7 +174,7 @@ void IntlTestDateTimePatternGeneratorAPI::testAPI(/*char *par*/)
UnicodeString("23.58"), // 10: jjmm
UnicodeString("58.59"), // 11: mmss
UnicodeString("tammikuu 1999"), // 12: yyyyMMMM
UnicodeString("ke 13. tammik."), // 13: MMMEd -> EEE d. MMM
UnicodeString("ke 13.1."), // 13: MMMEd -> EEE d. MMM
UnicodeString("ke 13."), // 14: Ed -> ccc d.
UnicodeString("23.58.59,123"), // 15: jmmssSSS -> "H.mm.ss,SSS"
UnicodeString("23.58"), // 16: JJmm

View file

@ -2108,7 +2108,7 @@ void NumberFormatTest::TestCurrencyNames() {
assertTrue("ucurr_getName (en_US default)",
U_USING_DEFAULT_WARNING == ec || U_USING_FALLBACK_WARNING == ec, true);
ucurr_getName(CAD, "ti", UCURR_LONG_NAME, &isChoiceFormat,
ucurr_getName(CAD, "to", UCURR_LONG_NAME, &isChoiceFormat,
&len, &ec);
assertTrue("ucurr_getName (ti default)",
U_USING_DEFAULT_WARNING == ec, true);

View file

@ -1342,7 +1342,6 @@ TimeZoneTest::TestAliasedNames()
{"Chile/Continental", "America/Santiago"},
{"Chile/EasterIsland", "Pacific/Easter"},
{"Cuba", "America/Havana"},
{"EST", "Etc/GMT+5"},
{"Egypt", "Africa/Cairo"},
{"Eire", "Europe/Dublin"},
{"Etc/GMT+0", "Etc/GMT"},
@ -1362,7 +1361,6 @@ TimeZoneTest::TestAliasedNames()
{"GMT-0", "Etc/GMT"},
{"GMT0", "Etc/GMT"},
{"Greenwich", "Etc/GMT"},
{"HST", "Etc/GMT+10"},
{"Hongkong", "Asia/Hong_Kong"},
{"Iceland", "Atlantic/Reykjavik"},
{"Iran", "Asia/Tehran"},
@ -1371,7 +1369,6 @@ TimeZoneTest::TestAliasedNames()
{"Japan", "Asia/Tokyo"},
{"Kwajalein", "Pacific/Kwajalein"},
{"Libya", "Africa/Tripoli"},
{"MST", "Etc/GMT+7"},
{"Mexico/BajaNorte", "America/Tijuana"},
{"Mexico/BajaSur", "America/Mazatlan"},
{"Mexico/General", "America/Mexico_City"},
@ -1454,7 +1451,7 @@ TimeZoneTest::TestAliasedNames()
from->getDisplayName(fromName);
to->getDisplayName(toName);
if(fromName.compare(toName) != 0) {
errln("Fail: Expected "+toName+" but got " + fromName);
errln("Fail: Expected " + toName + " but got " + fromName + " for index: "+ i);
}
}
delete from;
@ -2669,7 +2666,7 @@ void TimeZoneTest::TestGetIanaID() {
{u"Europe/Zaporozhye", u"Europe/Kyiv"},
{u"Etc/GMT-1", u"Etc/GMT-1"},
{u"Etc/GMT+20", UNKNOWN},
{u"PST8PDT", u"PST8PDT"},
{u"PST8PDT", u"America/Los_Angeles"},
{u"GMT-08:00", UNKNOWN},
{nullptr, nullptr}
};

View file

@ -1222,7 +1222,7 @@ public class GlobalizationPreferencesTest extends TestFmwk {
// Date - full
df = gp.getDateFormat(GlobalizationPreferences.DF_FULL, GlobalizationPreferences.DF_NONE);
pattern = ((SimpleDateFormat)df).toPattern();
if (!pattern.equals("EEEE d MMMM y")) {
if (!pattern.equals("EEEE, d MMMM y")) {
errln("FAIL: FULL date pattern is " + pattern + " Expected: EEEE, d MMMM y");
}
@ -1278,7 +1278,7 @@ public class GlobalizationPreferencesTest extends TestFmwk {
// Date/Time - full
df = gp.getDateFormat(GlobalizationPreferences.DF_FULL, GlobalizationPreferences.DF_FULL);
pattern = ((SimpleDateFormat)df).toPattern();
if (!pattern.equals("EEEE d MMMM y 'at' HH:mm:ss zzzz")) {
if (!pattern.equals("EEEE, d MMMM y 'at' HH:mm:ss zzzz")) {
errln("FAIL: FULL date/time pattern is " + pattern + " Expected: EEEE, d MMMM y 'at' HH:mm:ss zzzz");
}

View file

@ -1530,68 +1530,68 @@ public class DateFormatTest extends CoreTestFmwk {
{ "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8:00" },
{ "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:00", "-8:00" },
{ "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-8", "-8:00" },
{ "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "GMT-08:00", "-8:00" },
{ "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "\u1293\u12ed \u1218\u12f0\u1260\u129b \u130d\u12d8 \u1353\u1235\u134a\u12ad", "-8:00" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7:00" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:00", "-7:00" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-7", "-7:00" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "GMT-07:00", "-7:00" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "\u130D\u12DC \u120E\u1235 \u12A3\u1295\u1300\u1208\u1235", "America/Los_Angeles" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "\u130D\u12DC \u120E\u1235 \u12A3\u1295\u1300\u1208\u1235", "America/Los_Angeles" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "\u1293\u12ed \u1218\u12d3\u120d\u1272 \u130d\u12d8 \u1353\u1235\u134a\u12ad", "-7:00" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "\u130d\u12d8 \u120e\u1235 \u12a3\u1295\u1300\u1208\u1235", "America/Los_Angeles" },
{ "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "\u1293\u12ed \u1353\u1235\u134a\u12ad \u130d\u12d8", "America/Los_Angeles" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-3", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "\u121D\u12F1\u1265 \u130D\u12DC \u12A3\u122D\u1300\u1295\u1272\u1293", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "\u1293\u12ed \u1218\u12f0\u1260\u129b \u130d\u12d8 \u12a3\u122d\u1300\u1295\u1272\u1293", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-3", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "\u121D\u12F1\u1265 \u130D\u12DC \u12A3\u122D\u1300\u1295\u1272\u1293", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\u130D\u12DC \u1265\u12C8\u1296\u1235 \u12A3\u12ED\u1228\u1235", "America/Buenos_Aires" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\u121D\u12F1\u1265 \u130D\u12DC \u12A3\u122D\u1300\u1295\u1272\u1293", "America/Buenos_Aires" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "\u1293\u12ed \u1218\u12f0\u1260\u129b \u130d\u12d8 \u12a3\u122d\u1300\u1295\u1272\u1293", "-3:00" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\u130d\u12d8 \u1265\u12c8\u1296\u1235 \u12a3\u12ed\u1228\u1235", "America/Buenos_Aires" },
{ "ti", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\u1293\u12ed \u1218\u12f0\u1260\u129b \u130d\u12d8 \u12a3\u122d\u1300\u1295\u1272\u1293", "America/Buenos_Aires" },
{ "ti", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-3", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "\u121D\u12F1\u1265 \u130D\u12DC \u12A3\u122D\u1300\u1295\u1272\u1293", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "\u1293\u12ed \u1218\u12f0\u1260\u129b \u130d\u12d8 \u12a3\u122d\u1300\u1295\u1272\u1293", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-3", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "\u121D\u12F1\u1265 \u130D\u12DC \u12A3\u122D\u1300\u1295\u1272\u1293", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\u130D\u12DC \u1265\u12C8\u1296\u1235 \u12A3\u12ED\u1228\u1235", "America/Buenos_Aires" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\u121D\u12F1\u1265 \u130D\u12DC \u12A3\u122D\u1300\u1295\u1272\u1293", "America/Buenos_Aires" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "\u1293\u12ed \u1218\u12f0\u1260\u129b \u130d\u12d8 \u12a3\u122d\u1300\u1295\u1272\u1293", "-3:00" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\u130d\u12d8 \u1265\u12c8\u1296\u1235 \u12a3\u12ed\u1228\u1235", "America/Buenos_Aires" },
{ "ti", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\u1293\u12ed \u1218\u12f0\u1260\u129b \u130d\u12d8 \u12a3\u122d\u1300\u1295\u1272\u1293", "America/Buenos_Aires" },
{ "ti", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500", "-5:00" },
{ "ti", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-05:00", "-5:00" },
{ "ti", "America/Havana", "2004-01-15T00:00:00Z", "z", "GMT-5", "-5:00" },
{ "ti", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "GMT-05:00", "-5:00" },
{ "ti", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "\u1293\u12ed \u1218\u12f0\u1260\u129b \u130d\u12d8 \u12a9\u1263", "-5:00" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400", "-4:00" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-04:00", "-4:00" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "z", "GMT-4", "-4:00" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "GMT-04:00", "-4:00" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "v", "\u130D\u12DC \u12A9\u1263", "America/Havana" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "\u130D\u12DC \u12A9\u1263", "America/Havana" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "\u1293\u12ed \u1218\u12d3\u120d\u1272 \u130d\u12d8 \u12a9\u1263", "-4:00" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "v", "\u130d\u12d8 \u12a9\u1263", "America/Havana" },
{ "ti", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "\u1293\u12ed \u12a9\u1263 \u130d\u12d8", "America/Havana" },
{ "ti", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" },
{ "ti", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00", "+11:00" },
{ "ti", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "GMT+11", "+11:00" },
{ "ti", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "GMT+11:00", "+11:00" },
{ "ti", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "\u1293\u12ed \u121d\u1265\u122b\u1253\u12ca \u1218\u12d3\u120d\u1272 \u12a3\u12cd\u1235\u1275\u122b\u120d\u12eb \u130d\u12d8", "+11:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00", "+10:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+10", "+10:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "GMT+10:00", "+10:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "\u130D\u12DC \u1232\u12F5\u1292", "Australia/Sydney" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "\u130D\u12DC \u1232\u12F5\u1292", "Australia/Sydney" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+10", "+10:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "\u1293\u12ed \u121d\u1265\u122b\u1253\u12ca \u1218\u12f0\u1260\u129b \u12a3\u12cd\u1235\u1275\u122b\u120d\u12eb \u130d\u12d8", "+10:00" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "\u130d\u12d8 \u1232\u12f5\u1292", "Australia/Sydney" },
{ "ti", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "\u1293\u12ed \u121d\u1265\u122b\u1253\u12ca \u12a3\u12cd\u1235\u1275\u122b\u120d\u12eb \u130d\u12d8", "Australia/Sydney" },
{ "ti", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" },
{ "ti", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00", "+11:00" },
{ "ti", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "GMT+11", "+11:00" },
{ "ti", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "GMT+11:00", "+11:00" },
{ "ti", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "\u1293\u12ed \u121d\u1265\u122b\u1253\u12ca \u1218\u12d3\u120d\u1272 \u12a3\u12cd\u1235\u1275\u122b\u120d\u12eb \u130d\u12d8", "+11:00" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00", "+10:00" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "GMT+10", "+10:00" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "GMT+10:00", "+10:00" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "\u130D\u12DC \u1232\u12F5\u1292", "Australia/Sydney" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "\u130D\u12DC \u1232\u12F5\u1292", "Australia/Sydney" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "\u1293\u12ed \u121d\u1265\u122b\u1253\u12ca \u1218\u12f0\u1260\u129b \u12a3\u12cd\u1235\u1275\u122b\u120d\u12eb \u130d\u12d8", "+10:00" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "\u130d\u12d8 \u1232\u12f5\u1292", "Australia/Sydney" },
{ "ti", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "\u1293\u12ed \u121d\u1265\u122b\u1253\u12ca \u12a3\u12cd\u1235\u1275\u122b\u120d\u12eb \u130d\u12d8", "Australia/Sydney" },
{ "ti", "Europe/London", "2004-01-15T00:00:00Z", "Z", "+0000", "+0:00" },
{ "ti", "Europe/London", "2004-01-15T00:00:00Z", "ZZZZ", "GMT", "+0:00" },
@ -1601,8 +1601,8 @@ public class DateFormatTest extends CoreTestFmwk {
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+01:00", "+1:00" },
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "z", "GMT+1", "+1:00" },
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "zzzz", "\u130D\u12DC \u12AD\u1228\u121D\u1272 \u1265\u122A\u1323\u1295\u12EB", "+1:00" },
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "v", "\u130D\u12DC \u1265\u122A\u1323\u1295\u12EB", "Europe/London" },
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "\u130D\u12DC \u1265\u122A\u1323\u1295\u12EB", "Europe/London" },
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "v", "\u130d\u12d8 \u1265\u122a\u1323\u1295\u12eb", "Europe/London" },
{ "ti", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "\u130d\u12d8 \u1265\u122a\u1323\u1295\u12eb", "Europe/London" },
{ "ti", "Etc/GMT+3", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" },
{ "ti", "Etc/GMT+3", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" },
@ -1619,13 +1619,13 @@ public class DateFormatTest extends CoreTestFmwk {
{ "ti", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+5:30", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "GMT+05:30", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "\u1293\u12ed \u1218\u12f0\u1260\u129b \u1205\u1295\u12f5 \u130d\u12d8", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+5:30", "+05:30" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "GMT+05:30", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\u130D\u12DC \u1205\u1295\u12F2", "Asia/Calcutta" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\u130D\u12DC \u1205\u1295\u12F2", "Asia/Calcutta" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "\u1293\u12ed \u1218\u12f0\u1260\u129b \u1205\u1295\u12f5 \u130d\u12d8", "+5:30" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\u130d\u12d8 \u1205\u1295\u12f2", "Alna/Calcutta" },
{ "ti", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\u1293\u12ed \u1218\u12f0\u1260\u129b \u1205\u1295\u12f5 \u130d\u12d8", "Asia/Calcutta" },
// Ticket#8589 Partial location name to use country name if the zone is the golden
// zone for the time zone's country.
@ -5699,8 +5699,8 @@ public class DateFormatTest extends CoreTestFmwk {
// test some locales for which we have data
{ "en-us", "Tuesday, March 16, 1943 at 3:45:32\u202fPM" },
{ "en-ca", "Tuesday, March 16, 1943 at 3:45:32\u202fp.m." },
{ "en-gb", "Tuesday 16 March 1943 at 15:45:32" },
{ "en-au", "Tuesday 16 March 1943 at 3:45:32\u202fpm" },
{ "en-gb", "Tuesday, 16 March 1943 at 15:45:32" },
{ "en-au", "Tuesday, 16 March 1943 at 3:45:32\u202fpm" },
// test a couple locales for which we don't have specific locale files (we should still get the correct hour cycle)
{ "en-co", "Tuesday, March 16, 1943 at 3:45:32\u202fPM" },
{ "en-mx", "Tuesday, March 16, 1943 at 3:45:32PM" },
@ -5708,15 +5708,15 @@ public class DateFormatTest extends CoreTestFmwk {
{ "en-us-u-rg-gbzzzz", "Tuesday, March 16, 1943 at 15:45:32" },
{ "en-us-u-rg-cazzzz", "Tuesday, March 16, 1943 at 3:45:32\u202fPM" },
{ "en-ca-u-rg-uszzzz", "Tuesday, March 16, 1943 at 3:45:32\u202fp.m." },
{ "en-gb-u-rg-uszzzz", "Tuesday 16 March 1943 at 3:45:32\u202fpm" },
{ "en-gb-u-rg-cazzzz", "Tuesday 16 March 1943 at 3:45:32\u202fpm" },
{ "en-gb-u-rg-auzzzz", "Tuesday 16 March 1943 at 3:45:32\u202fpm" },
{ "en-gb-u-rg-uszzzz", "Tuesday, 16 March 1943 at 3:45:32\u202fpm" },
{ "en-gb-u-rg-cazzzz", "Tuesday, 16 March 1943 at 3:45:32\u202fpm" },
{ "en-gb-u-rg-auzzzz", "Tuesday, 16 March 1943 at 3:45:32\u202fpm" },
// test that the hc ("hours") subtag does the right thing
{ "en-us-u-hc-h23", "Tuesday, March 16, 1943 at 15:45:32" },
{ "en-gb-u-hc-h12", "Tuesday 16 March 1943 at 3:45:32\u202fpm" },
{ "en-gb-u-hc-h12", "Tuesday, 16 March 1943 at 3:45:32\u202fpm" },
// test that the rg and hc subtags do the right thing when used together
{ "en-us-u-rg-gbzzzz-hc-h12", "Tuesday, March 16, 1943 at 3:45:32\u202fPM" },
{ "en-gb-u-rg-uszzzz-hc-h23", "Tuesday 16 March 1943 at 15:45:32" },
{ "en-gb-u-rg-uszzzz-hc-h23", "Tuesday, 16 March 1943 at 15:45:32" },
};
for (String[] testCase : TEST_CASES) {

View file

@ -85,7 +85,7 @@ public class MeasureUnitTest extends CoreTestFmwk {
}
}
private static final String[] DRAFT_VERSIONS = {"73", "74"};
private static final String[] DRAFT_VERSIONS = {"75", "76"};
private static final HashSet<String> DRAFT_VERSION_SET = new HashSet<>();
@ -326,10 +326,10 @@ public class MeasureUnitTest extends CoreTestFmwk {
// various generateXXX calls go here, see
// docs/processes/release/tasks/updating-measure-unit.md
// use this test to run each of the following in succession
//generateConstants("74"); // for MeasureUnit.java, update generated MeasureUnit constants
//generateBackwardCompatibilityTest("74"); // for MeasureUnitTest.java, create TestCompatible74
//generateCXXHConstants("74"); // for measunit.h, update generated createXXX methods
//generateCXXConstants(); // for measunit.cpp, update generated code
//generateConstants("76"); // for MeasureUnit.java, update generated MeasureUnit constants
//generateBackwardCompatibilityTest("76"); // for MeasureUnitTest.java, create TestCompatible74
//generateCXXHConstants("76"); // for measunit.h, update generated createXXX methods
generateCXXConstants(); // for measunit.cpp, update generated code
//generateCXXBackwardCompatibilityTest("74"); // for measfmttest.cpp, create TestCompatible74
//updateJAVAVersions("74"); // for MeasureUnitTest.java, JAVA_VERSIONS
}
@ -2872,6 +2872,205 @@ public class MeasureUnitTest extends CoreTestFmwk {
assertEquals("", 190, units.length);
}
public void TestCompatible76() {
MeasureUnit[] units = {
MeasureUnit.G_FORCE,
MeasureUnit.METER_PER_SECOND_SQUARED,
MeasureUnit.ARC_MINUTE,
MeasureUnit.ARC_SECOND,
MeasureUnit.DEGREE,
MeasureUnit.RADIAN,
MeasureUnit.REVOLUTION_ANGLE,
MeasureUnit.ACRE,
MeasureUnit.DUNAM,
MeasureUnit.HECTARE,
MeasureUnit.SQUARE_CENTIMETER,
MeasureUnit.SQUARE_FOOT,
MeasureUnit.SQUARE_INCH,
MeasureUnit.SQUARE_KILOMETER,
MeasureUnit.SQUARE_METER,
MeasureUnit.SQUARE_MILE,
MeasureUnit.SQUARE_YARD,
MeasureUnit.ITEM,
MeasureUnit.KARAT,
MeasureUnit.MILLIGRAM_OFGLUCOSE_PER_DECILITER,
MeasureUnit.MILLIGRAM_PER_DECILITER,
MeasureUnit.MILLIMOLE_PER_LITER,
MeasureUnit.MOLE,
MeasureUnit.PERCENT,
MeasureUnit.PERMILLE,
MeasureUnit.PART_PER_MILLION,
MeasureUnit.PERMYRIAD,
MeasureUnit.PORTION_PER_1E9,
MeasureUnit.LITER_PER_100KILOMETERS,
MeasureUnit.LITER_PER_KILOMETER,
MeasureUnit.MILE_PER_GALLON,
MeasureUnit.MILE_PER_GALLON_IMPERIAL,
MeasureUnit.BIT,
MeasureUnit.BYTE,
MeasureUnit.GIGABIT,
MeasureUnit.GIGABYTE,
MeasureUnit.KILOBIT,
MeasureUnit.KILOBYTE,
MeasureUnit.MEGABIT,
MeasureUnit.MEGABYTE,
MeasureUnit.PETABYTE,
MeasureUnit.TERABIT,
MeasureUnit.TERABYTE,
MeasureUnit.CENTURY,
MeasureUnit.DAY,
MeasureUnit.DAY_PERSON,
MeasureUnit.DECADE,
MeasureUnit.HOUR,
MeasureUnit.MICROSECOND,
MeasureUnit.MILLISECOND,
MeasureUnit.MINUTE,
MeasureUnit.MONTH,
MeasureUnit.MONTH_PERSON,
MeasureUnit.NANOSECOND,
MeasureUnit.NIGHT,
MeasureUnit.QUARTER,
MeasureUnit.SECOND,
MeasureUnit.WEEK,
MeasureUnit.WEEK_PERSON,
MeasureUnit.YEAR,
MeasureUnit.YEAR_PERSON,
MeasureUnit.AMPERE,
MeasureUnit.MILLIAMPERE,
MeasureUnit.OHM,
MeasureUnit.VOLT,
MeasureUnit.BRITISH_THERMAL_UNIT,
MeasureUnit.CALORIE,
MeasureUnit.ELECTRONVOLT,
MeasureUnit.FOODCALORIE,
MeasureUnit.JOULE,
MeasureUnit.KILOCALORIE,
MeasureUnit.KILOJOULE,
MeasureUnit.KILOWATT_HOUR,
MeasureUnit.THERM_US,
MeasureUnit.KILOWATT_HOUR_PER_100_KILOMETER,
MeasureUnit.NEWTON,
MeasureUnit.POUND_FORCE,
MeasureUnit.GIGAHERTZ,
MeasureUnit.HERTZ,
MeasureUnit.KILOHERTZ,
MeasureUnit.MEGAHERTZ,
MeasureUnit.DOT,
MeasureUnit.DOT_PER_CENTIMETER,
MeasureUnit.DOT_PER_INCH,
MeasureUnit.EM,
MeasureUnit.MEGAPIXEL,
MeasureUnit.PIXEL,
MeasureUnit.PIXEL_PER_CENTIMETER,
MeasureUnit.PIXEL_PER_INCH,
MeasureUnit.ASTRONOMICAL_UNIT,
MeasureUnit.CENTIMETER,
MeasureUnit.DECIMETER,
MeasureUnit.EARTH_RADIUS,
MeasureUnit.FATHOM,
MeasureUnit.FOOT,
MeasureUnit.FURLONG,
MeasureUnit.INCH,
MeasureUnit.KILOMETER,
MeasureUnit.LIGHT_YEAR,
MeasureUnit.METER,
MeasureUnit.MICROMETER,
MeasureUnit.MILE,
MeasureUnit.MILE_SCANDINAVIAN,
MeasureUnit.MILLIMETER,
MeasureUnit.NANOMETER,
MeasureUnit.NAUTICAL_MILE,
MeasureUnit.PARSEC,
MeasureUnit.PICOMETER,
MeasureUnit.POINT,
MeasureUnit.SOLAR_RADIUS,
MeasureUnit.YARD,
MeasureUnit.CANDELA,
MeasureUnit.LUMEN,
MeasureUnit.LUX,
MeasureUnit.SOLAR_LUMINOSITY,
MeasureUnit.CARAT,
MeasureUnit.DALTON,
MeasureUnit.EARTH_MASS,
MeasureUnit.GRAIN,
MeasureUnit.GRAM,
MeasureUnit.KILOGRAM,
MeasureUnit.MICROGRAM,
MeasureUnit.MILLIGRAM,
MeasureUnit.OUNCE,
MeasureUnit.OUNCE_TROY,
MeasureUnit.POUND,
MeasureUnit.SOLAR_MASS,
MeasureUnit.STONE,
MeasureUnit.TON,
MeasureUnit.TONNE,
MeasureUnit.GIGAWATT,
MeasureUnit.HORSEPOWER,
MeasureUnit.KILOWATT,
MeasureUnit.MEGAWATT,
MeasureUnit.MILLIWATT,
MeasureUnit.WATT,
MeasureUnit.ATMOSPHERE,
MeasureUnit.BAR,
MeasureUnit.GASOLINE_ENERGY_DENSITY,
MeasureUnit.HECTOPASCAL,
MeasureUnit.INCH_HG,
MeasureUnit.KILOPASCAL,
MeasureUnit.MEGAPASCAL,
MeasureUnit.MILLIBAR,
MeasureUnit.MILLIMETER_OF_MERCURY,
MeasureUnit.PASCAL,
MeasureUnit.POUND_PER_SQUARE_INCH,
MeasureUnit.BEAUFORT,
MeasureUnit.KILOMETER_PER_HOUR,
MeasureUnit.KNOT,
MeasureUnit.LIGHT_SPEED,
MeasureUnit.METER_PER_SECOND,
MeasureUnit.MILE_PER_HOUR,
MeasureUnit.CELSIUS,
MeasureUnit.FAHRENHEIT,
MeasureUnit.GENERIC_TEMPERATURE,
MeasureUnit.KELVIN,
MeasureUnit.NEWTON_METER,
MeasureUnit.POUND_FOOT,
MeasureUnit.ACRE_FOOT,
MeasureUnit.BARREL,
MeasureUnit.BUSHEL,
MeasureUnit.CENTILITER,
MeasureUnit.CUBIC_CENTIMETER,
MeasureUnit.CUBIC_FOOT,
MeasureUnit.CUBIC_INCH,
MeasureUnit.CUBIC_KILOMETER,
MeasureUnit.CUBIC_METER,
MeasureUnit.CUBIC_MILE,
MeasureUnit.CUBIC_YARD,
MeasureUnit.CUP,
MeasureUnit.CUP_METRIC,
MeasureUnit.DECILITER,
MeasureUnit.DESSERT_SPOON,
MeasureUnit.DESSERT_SPOON_IMPERIAL,
MeasureUnit.DRAM,
MeasureUnit.DROP,
MeasureUnit.FLUID_OUNCE,
MeasureUnit.FLUID_OUNCE_IMPERIAL,
MeasureUnit.GALLON,
MeasureUnit.GALLON_IMPERIAL,
MeasureUnit.HECTOLITER,
MeasureUnit.JIGGER,
MeasureUnit.LITER,
MeasureUnit.MEGALITER,
MeasureUnit.MILLILITER,
MeasureUnit.PINCH,
MeasureUnit.PINT,
MeasureUnit.PINT_METRIC,
MeasureUnit.QUART,
MeasureUnit.QUART_IMPERIAL,
MeasureUnit.TABLESPOON,
MeasureUnit.TEASPOON,
};
assertEquals("", 193, units.length);
}
@Test
public void TestExamplesInDocs() {
MeasureFormat fmtFr = MeasureFormat.getInstance(
@ -4672,6 +4871,11 @@ public class MeasureUnitTest extends CoreTestFmwk {
if (unit.getType() == "currency") {
continue;
}
if (unit.getIdentifier().equals("portion-per-1e9")) {
logKnownIssue("ICU-22781", "Handle concentr/perbillion in ICU");
continue;
}
// Prove that all built-in units are parseable, except "generic" temperature
// (and for now, beaufort units)

View file

@ -345,7 +345,9 @@ public class CurrencyTest extends CoreTestFmwk {
// known currency, behavior unchanged
assertEquals("de_USD_name", "US-Dollar", cdn.getName("USD"));
assertEquals("de_USD_symbol", "$", cdn.getSymbol("USD"));
assertEquals("de_USD_plural_other", "US-Dollar", cdn.getPluralName("USD", "other"));
if (!logKnownIssue("ICU-22856", "Problem with inheritance for plural rules in currencies")) {
assertEquals("de_USD_plural_other", "US-Dollar", cdn.getPluralName("USD", "other"));
}
// known currency but unknown plural category
assertNull("de_USD_plural_foo", cdn.getPluralName("USD", "foo"));

View file

@ -1231,7 +1231,6 @@ public class ULocaleTest extends CoreTestFmwk {
new Item("en", NM_STD, CAP_MID, LEN_FU, SUB_SU, "ur@numbers=arabext", "Urdu (Extended Arabic-Indic Digits)"),
new Item("en", NM_STD, CAP_MID, LEN_SH, SUB_SU, "ur@numbers=arabext", "Urdu (X Arabic-Indic Digits)"),
new Item("af", NM_STD, CAP_NON, LEN_FU, SUB_NO, "aa", "Afar"),
new Item("cs", NM_STD, CAP_NON, LEN_FU, SUB_NO, "vai", "vai"),
// https://unicode-org.atlassian.net/browse/ICU-20870:
new Item("en", NM_STD, CAP_MID, LEN_FU, SUB_SU, "fa_AF", "Persian (Afghanistan)" ),
new Item("en", NM_STD, CAP_MID, LEN_FU, SUB_SU, "prs", "Dari" ),
@ -1672,7 +1671,7 @@ public class ULocaleTest extends CoreTestFmwk {
h[1].put("japanese", "\u65E5\u672C\u65E5\u5386");
h[1].put("buddhist", "\u4F5B\u5386");
h[1].put("islamic", "伊斯兰历");
h[1].put("islamic-civil", "伊斯兰希吉来日历");
h[1].put("islamic-civil", "表格式伊斯兰历(民用纪元)");
h[1].put("hebrew", "\u5E0C\u4F2F\u6765\u65E5\u5386");
h[1].put("chinese", "\u519C\u5386");
h[1].put("gregorian", "\u516C\u5386");

View file

@ -6,6 +6,7 @@ import java.util.ArrayList;
import java.util.EnumMap;
import java.util.Map;
import java.util.MissingResourceException;
import java.util.Set;
import com.ibm.icu.impl.CurrencyData;
import com.ibm.icu.impl.ICUData;
@ -440,6 +441,22 @@ public class LongNameHandler
// In ICU4J, this method gets a CurrencyData from CurrencyData.provider.
// TODO(ICU4J): Implement this without going through CurrencyData, like in ICU4C?
Map<String, String> data = CurrencyData.provider.getInstance(locale, true).getUnitPatterns();
// Entries in the data map are filled in with any CurrencyUnitPatterns data for locale,
// or if there is no CurrencyUnitPatterns data for locale since the patterns all inherited
// from the "other" pattern in root (which is true for many locales in CLDR 46), then only
// the "other" entry has a currency pattern. So now what we do is: For all valid plural keywords
// for the locale, if the corresponding outArray[] entry is bogus, fill it in from the "other"
// entry.
PluralRules prules = PluralRules.forLocale(locale);
Set<String> keywords = prules.getKeywords();
String otherPattern = data.get("other");
if (keywords != null && otherPattern!= null) {
for (String keyword: keywords) {
if (!keyword.equals("other") && !data.containsKey(keyword)) {
data.put(keyword, otherPattern);
}
}
}
for (Map.Entry<String, String> e : data.entrySet()) {
String pluralKeyword = e.getKey();
int index = getIndex(pluralKeyword);

View file

@ -1081,6 +1081,12 @@ public class MeasureUnit implements Serializable {
*/
public static final MeasureUnit PERMYRIAD = MeasureUnit.internalGetInstance("concentr", "permyriad");
/**
* Constant for unit of concentr: portion-per-1e9
* @draft ICU 76
*/
public static final MeasureUnit PORTION_PER_1E9 = MeasureUnit.internalGetInstance("concentr", "portion-per-1e9");
/**
* Constant for unit of consumption: liter-per-100-kilometer
* @stable ICU 56
@ -1237,6 +1243,12 @@ public class MeasureUnit implements Serializable {
*/
public static final MeasureUnit NANOSECOND = MeasureUnit.internalGetInstance("duration", "nanosecond");
/**
* Constant for unit of duration: night
* @draft ICU 76
*/
public static final MeasureUnit NIGHT = MeasureUnit.internalGetInstance("duration", "night");
/**
* Constant for unit of duration: quarter
* @stable ICU 72
@ -1745,7 +1757,7 @@ public class MeasureUnit implements Serializable {
/**
* Constant for unit of pressure: gasoline-energy-density
* @draft ICU 74
* @stable ICU 74
*/
public static final MeasureUnit GASOLINE_ENERGY_DENSITY = MeasureUnit.internalGetInstance("pressure", "gasoline-energy-density");
@ -1815,6 +1827,12 @@ public class MeasureUnit implements Serializable {
*/
public static final MeasureUnit KNOT = MeasureUnit.internalGetInstance("speed", "knot");
/**
* Constant for unit of speed: light-speed
* @draft ICU 76
*/
public static final MeasureUnit LIGHT_SPEED = MeasureUnit.internalGetInstance("speed", "light-speed");
/**
* Constant for unit of speed: meter-per-second
* @stable ICU 53

View file

@ -2178,7 +2178,7 @@ public class CalendarRegressionTest extends CoreTestFmwk {
{"en@calendar=islamic", "gregorian"},
{"zh_TW", "gregorian", "roc", "chinese"},
{"ar_IR", "persian", "gregorian", "islamic", "islamic-civil", "islamic-tbla"},
{"th@rg=SAZZZZ", "islamic-umalqura", "gregorian", "islamic", "islamic-rgsa"},
{"th@rg=SAZZZZ", "gregorian", "islamic-umalqura", "islamic", "islamic-rgsa"},
// tests for ICU-22364
{ "zh_CN@rg=TW", "gregorian", "chinese" }, // invalid subdivision code

View file

@ -1191,9 +1191,9 @@ public class IBMCalendarTest extends CalendarTestFmwk {
"buddhist",
"gregorian", // iso8601 is a gregorian sub type
"gregorian",
"islamic-umalqura",
"islamic-umalqura",
"islamic-umalqura",
"gregorian",
"gregorian",
"gregorian",
"japanese",
"gregorian",
"gregorian",

View file

@ -429,9 +429,9 @@ public class DateTimeGeneratorTest extends CoreTestFmwk {
new String[] {"yM", "1.1999"}, // (fixed expected result per ticket 6872<-6626)
new String[] {"yMMM", "tammi 1999"}, // (fixed expected result per ticket 6872<-7007)
new String[] {"yMd", "13.1.1999"},
new String[] {"yMMMd", "13. tammik. 1999"},
new String[] {"yMMMd", "13.1.1999"},
new String[] {"Md", "13.1."},
new String[] {"MMMd", "13. tammik."},
new String[] {"MMMd", "13.1."},
new String[] {"MMMMd", "13. tammikuuta"},
new String[] {"yQQQ", "1. nelj. 1999"},
new String[] {"hhmm", "11.58\u202Fip."},
@ -439,7 +439,7 @@ public class DateTimeGeneratorTest extends CoreTestFmwk {
new String[] {"jjmm", "23.58"},
new String[] {"mmss", "58.59"},
new String[] {"yyyyMMMM", "tammikuu 1999"}, // (new item for testing 6872<-5702,7007)
new String[] {"MMMEd", "ke 13. tammik."},
new String[] {"MMMEd", "ke 13.1."},
new String[] {"Ed", "ke 13."},
new String[] {"jmmssSSS", "23.58.59,123"},
new String[] {"JJmm", "23.58"},

View file

@ -52,6 +52,7 @@ public class PersonNameConsistencyTest extends CoreTestFmwk {
Map<String, String> knownIssues = new HashMap<>();
// there are no current locales for which we have known issues
knownIssues.put("bal_Latn.txt", "CLDR-17874");
return knownIssues;
}

View file

@ -1027,17 +1027,17 @@ public class RelativeDateTimeFormatterTest extends CoreTestFmwk {
String[] ak_decDef_long_stdAlon_sec = { // falls back to root
/* text numeric */
"-5 s", "-5 s", /* -5 */
"-2.2 s", "-2.2 s", /* -2.2 */
"-2 s", "-2 s", /* -2 */
"-1 s", "-1 s", /* -1 */
"-0.7 s", "-0.7 s", /* -0.7 */
"now", "-0 s", /* -0 */
"now", "+0 s", /* 0 */
"+0.7 s", "+0.7 s", /* 0.7 */
"+1 s", "+1 s", /* 1 */
"+2 s", "+2 s", /* 2 */
"+5 s", "+5 s", /* 5 */
"nnibuo 5 a atwam", "nnibuo 5 a atwam", /* -5 */
"nnibuo 2.2 a atwam", "nnibuo 2.2 a atwam", /* -2.2 */
"nnibuo 2 a atwam", "nnibuo 2 a atwam", /* -2 */
"anibuo 1 a atwam", "anibuo 1 a atwam", /* -1 */
"nnibuo 0.7 a atwam", "nnibuo 0.7 a atwam", /* -0.7 */
"seesei", "anibuo 0 a atwam", /* -0 */
"seesei", "anibuo 0 mu", /* 0 */
"nnibuo 0.7 mu", "nnibuo 0.7 mu", /* 0.7 */
"anibuo 1 mu", "anibuo 1 mu", /* 1 */
"nnibuo 2 mu", "nnibuo 2 mu", /* 2 */
"nnibuo 5 mu", "nnibuo 5 mu", /* 5 */
};
String[] enIN_decDef_short_midSent_sunday = {

View file

@ -2425,7 +2425,7 @@ public class TimeZoneTest extends CoreTestFmwk
{"Europe/Zaporozhye", "Europe/Kyiv"},
{"Etc/GMT-1", "Etc/GMT-1"},
{"Etc/GMT+20", UNKNOWN},
{"PST8PDT", "PST8PDT"},
{"PST8PDT", "America/Los_Angeles"},
{"GMT-08:00", UNKNOWN},
};

View file

@ -196,7 +196,7 @@
fa, ff, ff_Adlm, ff_CM, ff_GN, ff_MR, ff_SN, fi, fil, fo, fr, fur, fy
// G
ga, gd, gl, gsw, gu, guz, gv
ga, gaa, gd, gl, gsw, gu, guz, gv
// H
ha, haw, he, hi, hi_Latn, hr, hsb, hu, hy
@ -208,7 +208,7 @@
ja, jgo, jmc, jv
// K
ka, kab, kam, kde, kea, kgp, khq, ki, kk, kkj, kl, kln, km, kn, ko, kok, ks
ka, kab, kam, kde, kea, kgp, khq, ki, kk, kkj, kl, kln, km, kn, ko, kok, kok_Latn, ks
ks_Deva, ks_IN, ksb, ksf, ksh, ku, kw, kxv, kxv_Deva, kxv_IN, kxv_Orya, kxv_Telu, ky
// L
@ -219,7 +219,7 @@
mt, mua, my, mzn
// N
naq, nb, nd, nds, ne, nl, nmg, nn, nnh, no, no_NO, no_NO_NY, nqo, nus, nyn
naq, nb, nd, nds, ne, nl, nmg, nn, nnh, no, no_NO, no_NO_NY, nqo, nso, nus, nyn
// O
oc, om, or, os
@ -236,10 +236,10 @@
// S
sa, sah, saq, sat, sat_IN, sbp, sc, sd, sd_Deva, sd_IN, sd_PK, se, seh, ses, sg, sh, sh_BA, sh_CS, sh_YU
shi, shi_Latn, shi_MA, si, sk, sl, smn, sn, so, sq, sr, sr_BA, sr_CS, sr_Cyrl_CS, sr_Cyrl_YU, sr_Latn
sr_Latn_CS, sr_Latn_YU, sr_ME, sr_RS, sr_XK, sr_YU, su, su_ID, sv, sw, syr, szl
sr_Latn_CS, sr_Latn_YU, sr_ME, sr_RS, sr_XK, sr_YU, st, su, su_ID, sv, sw, syr, szl
// T
ta, te, teo, tg, th, ti, tk, tl, tl_PH, to, tok, tr, tt, twq, tzm
ta, te, teo, tg, th, ti, tk, tl, tl_PH, tn, to, tok, tr, tt, twq, tzm
// U
ug, uk, ur, uz, uz_AF, uz_Arab, uz_Cyrl, uz_UZ
@ -312,13 +312,13 @@
// K-P
ka, kk, kl, km, kn, kok, ko, ku, ky, lb, lij, lkt, ln, lo, lt, lv,
mk, ml, mn, mo, mr, ms, mt, my, nb, nb_NO, ne, nl, nn, no, no_NO,
mk, ml, mn, mo, mr, ms, mt, my, nb, nb_NO, ne, nl, nn, no, no_NO, nso,
om, or, pa_IN, pa, pa_Guru, pl, ps, pt,
// R-T
ro, ru, sa, se, sh_BA, sh_CS, sh, sh_YU, si, sk, sl, smn, sq,
sr_BA, sr_Cyrl_ME, sr_Latn, sr_ME, sr_RS, sr, sv, sw,
ta, te, th, tk, to, tr,
sr_BA, sr_Cyrl_ME, sr_Latn, sr_ME, sr_RS, sr, st, sv, sw,
ta, te, th, tk, tn, to, tr,
// U-Z
ug, uk, ur, uz, vi, wae, wo, xh, yi, yo, yue_CN, yue_Hans_CN, yue_Hans