From 996378821c4ee89e68dc74183359e00f7130de0d Mon Sep 17 00:00:00 2001 From: Peter Edberg Date: Wed, 9 Mar 2022 15:45:59 -0800 Subject: [PATCH] ICU-21839 Add ICU4J test that ISO8601 inherits patterns/symbols grom Gregorian --- .../test/format/DateTimeGeneratorTest.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/DateTimeGeneratorTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/DateTimeGeneratorTest.java index 7e25864e968..e9cacc658fa 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/DateTimeGeneratorTest.java +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/DateTimeGeneratorTest.java @@ -2004,4 +2004,30 @@ public class DateTimeGeneratorTest extends TestFmwk { } } } + + // Test for ICU-21839: Make sure ISO8601 patterns/symbols are inherited from Gregorian + @Test + public void testISO8601() { + String[] localeIDs = { + "de-AT-u-ca-iso8601", + "de-CH-u-ca-iso8601", + }; + String skeleton = "jms"; + + for (String localeID : localeIDs) { + ULocale uloc = ULocale.forLanguageTag(localeID); + + DateTimePatternGenerator dtpg = DateTimePatternGenerator.getInstance(uloc); + String pattern = dtpg.getBestPattern(skeleton); + if (pattern.contains("├") || pattern.contains("Minute")) { + errln("ERROR: locale " + localeID + ", skeleton " + skeleton + ", bad pattern: " + pattern); + } + + DateFormat df = DateFormat.getTimeInstance(DateFormat.MEDIUM, uloc); + String format = df.format(new Date()); + if (format.contains("├") || format.contains("Minute")) { + errln("ERROR: locale " + localeID + ", MEDIUM, bad format: " + format); + } + } + } }