From 58b7fe2e3273c9f1b8c4a8ea6dff39a2a99c71c3 Mon Sep 17 00:00:00 2001 From: Shane Carr Date: Thu, 24 May 2018 04:16:35 +0000 Subject: [PATCH] ICU-13777 Adding tests to make sure currency long names round-trip through parsing. X-SVN-Rev: 41446 --- icu4c/source/test/intltest/numfmtst.cpp | 9 +++++++++ icu4c/source/test/intltest/numfmtst.h | 1 + .../com/ibm/icu/dev/test/format/NumberFormatTest.java | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/icu4c/source/test/intltest/numfmtst.cpp b/icu4c/source/test/intltest/numfmtst.cpp index cdda8dc3454..85e072adbbb 100644 --- a/icu4c/source/test/intltest/numfmtst.cpp +++ b/icu4c/source/test/intltest/numfmtst.cpp @@ -213,6 +213,7 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n TESTCASE_AUTO(Test11020_RoundingInScientificNotation); TESTCASE_AUTO(Test11640_TripleCurrencySymbol); TESTCASE_AUTO(Test13763_FieldPositionIteratorOffset); + TESTCASE_AUTO(Test13777_ParseLongNameNonCurrencyMode); TESTCASE_AUTO_END; } @@ -9067,4 +9068,12 @@ void NumberFormatTest::Test13763_FieldPositionIteratorOffset() { expectPositions(fpi, expected, tupleCount, result); } +void NumberFormatTest::Test13777_ParseLongNameNonCurrencyMode() { + IcuTestErrorCode status(*this, "Test13777_ParseLongNameNonCurrencyMode"); + + LocalPointer df( + NumberFormat::createInstance("en-us", UNumberFormatStyle::UNUM_CURRENCY_PLURAL, status)); + expect2(*df, 1.5, u"1.50 US dollars"); +} + #endif /* #if !UCONFIG_NO_FORMATTING */ diff --git a/icu4c/source/test/intltest/numfmtst.h b/icu4c/source/test/intltest/numfmtst.h index f36a3abd6a8..60922c150e7 100644 --- a/icu4c/source/test/intltest/numfmtst.h +++ b/icu4c/source/test/intltest/numfmtst.h @@ -277,6 +277,7 @@ class NumberFormatTest: public CalendarTimeZoneTest { void Test11020_RoundingInScientificNotation(); void Test11640_TripleCurrencySymbol(); void Test13763_FieldPositionIteratorOffset(); + void Test13777_ParseLongNameNonCurrencyMode(); private: UBool testFormattableAsUFormattable(const char *file, int line, Formattable &f); diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java index 20a3de934cb..aee1ad5ab37 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java @@ -6154,4 +6154,11 @@ public class NumberFormatTest extends TestFmwk { df.applyLocalizedPattern("c0!d0"); // should not throw assertEquals("should apply the localized pattern", df.getNegativePrefix(), "d"); } + + @Test + public void test13777_ParseLongNameNonCurrencyMode() { + // Currency long name should round-trip even when non-currency parsing is used. + NumberFormat df = NumberFormat.getInstance(ULocale.US, NumberFormat.PLURALCURRENCYSTYLE); + expect2(df, 1.5, "1.50 US dollars"); + } } -- 2.40.0