From 68168a60673651334603dd56899f632e8c037d20 Mon Sep 17 00:00:00 2001 From: Shane Carr Date: Thu, 14 Feb 2019 22:09:33 -0800 Subject: [PATCH] ICU-13731 Adding test for default currency symbol. --- icu4c/source/test/intltest/numfmtst.cpp | 27 +++++++++++++++++++ icu4c/source/test/intltest/numfmtst.h | 1 + .../icu/dev/test/format/NumberFormatTest.java | 19 +++++++++++++ 3 files changed, 47 insertions(+) diff --git a/icu4c/source/test/intltest/numfmtst.cpp b/icu4c/source/test/intltest/numfmtst.cpp index 9d773fc3d74..e79be759ba0 100644 --- a/icu4c/source/test/intltest/numfmtst.cpp +++ b/icu4c/source/test/intltest/numfmtst.cpp @@ -227,6 +227,7 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n TESTCASE_AUTO(Test13850_EmptyStringCurrency); TESTCASE_AUTO(Test20348_CurrencyPrefixOverride); TESTCASE_AUTO(Test20358_GroupingInPattern); + TESTCASE_AUTO(Test13731_DefaultCurrency); TESTCASE_AUTO_END; } @@ -9531,4 +9532,30 @@ void NumberFormatTest::Test20358_GroupingInPattern() { u"54,321", fmt->format(54321, result.remove(), NULL, status)); } +void NumberFormatTest::Test13731_DefaultCurrency() { + IcuTestErrorCode status(*this, "Test13731_DefaultCurrency"); + UnicodeString result; + { + LocalPointer nf(NumberFormat::createInstance( + "en", UNumberFormatStyle::UNUM_CURRENCY, status), status); + assertEquals("symbol", u"¤1.10", + nf->format(1.1, result.remove(), status)); + assertEquals("currency", u"XXX", nf->getCurrency()); + } + { + LocalPointer nf(NumberFormat::createInstance( + "en", UNumberFormatStyle::UNUM_CURRENCY_ISO, status), status); + assertEquals("iso_code", u"XXX 1.10", + nf->format(1.1, result.remove(), status)); + assertEquals("currency", u"XXX", nf->getCurrency()); + } + { + LocalPointer nf(NumberFormat::createInstance( + "en", UNumberFormatStyle::UNUM_CURRENCY_PLURAL, status), status); + assertEquals("plural", u"1.10 (unknown currency)", + nf->format(1.1, result.remove(), status)); + assertEquals("currency", u"XXX", nf->getCurrency()); + } +} + #endif /* #if !UCONFIG_NO_FORMATTING */ diff --git a/icu4c/source/test/intltest/numfmtst.h b/icu4c/source/test/intltest/numfmtst.h index 92e7adf6aca..0451067eb42 100644 --- a/icu4c/source/test/intltest/numfmtst.h +++ b/icu4c/source/test/intltest/numfmtst.h @@ -292,6 +292,7 @@ class NumberFormatTest: public CalendarTimeZoneTest { void Test13850_EmptyStringCurrency(); void Test20348_CurrencyPrefixOverride(); void Test20358_GroupingInPattern(); + void Test13731_DefaultCurrency(); 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 7cefa5e09a8..cfd6660dd3b 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 @@ -6572,4 +6572,23 @@ public class NumberFormatTest extends TestFmwk { assertEquals("Set grouping true format", "54,321", fmt.format(54321)); } + + @Test + public void test13731_DefaultCurrency() { + { + NumberFormat nf = NumberFormat.getInstance(ULocale.ENGLISH, NumberFormat.CURRENCYSTYLE); + assertEquals("symbol", "¤1.10", nf.format(1.1)); + assertEquals("currency", "XXX", nf.getCurrency().getCurrencyCode()); + } + { + NumberFormat nf = NumberFormat.getInstance(ULocale.ENGLISH, NumberFormat.ISOCURRENCYSTYLE); + assertEquals("iso_code", "XXX 1.10", nf.format(1.1)); + assertEquals("currency", "XXX", nf.getCurrency().getCurrencyCode()); + } + { + NumberFormat nf = NumberFormat.getInstance(ULocale.ENGLISH, NumberFormat.PLURALCURRENCYSTYLE); + assertEquals("plural", "1.10 (unknown currency)", nf.format(1.1)); + assertEquals("currency", "XXX", nf.getCurrency().getCurrencyCode()); + } + } } -- 2.40.0