From: Shane Carr Date: Fri, 1 Dec 2017 07:57:05 +0000 (+0000) Subject: ICU-13496 Adds missing NumberFormatter test to ICU4C X-Git-Tag: release-61-rc~176 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c67d9d0a4a0de52f7e2e37e933994f728bfe2e50;p=icu ICU-13496 Adds missing NumberFormatter test to ICU4C X-SVN-Rev: 40682 --- diff --git a/icu4c/source/test/intltest/numbertest_api.cpp b/icu4c/source/test/intltest/numbertest_api.cpp index 63514043eeb..1f5cfaa3ff5 100644 --- a/icu4c/source/test/intltest/numbertest_api.cpp +++ b/icu4c/source/test/intltest/numbertest_api.cpp @@ -1254,7 +1254,22 @@ void NumberFormatterApiTest::symbols() { 12345.67, u"١٢٬٣٤٥٫٦٧ US$"); + assertFormatSingle( + u"NumberingSystem in API should win over @numbers keyword", + NumberFormatter::with().adoptSymbols(new NumberingSystem(LATN)).unit(USD), + Locale("ar@numbers=arab"), + 12345.67, + u"US$ 12,345.67"); + UErrorCode status = U_ZERO_ERROR; + assertEquals("NumberingSystem in API should win over @numbers keyword in reverse order", + u"US$ 12,345.67", + NumberFormatter::withLocale(Locale("ar@numbers=arab")) + .adoptSymbols(new NumberingSystem(LATN)) + .unit(USD) + .formatDouble(12345.67, status) + .toString()); + DecimalFormatSymbols symbols = SWISS_SYMBOLS; UnlocalizedNumberFormatter f = NumberFormatter::with().symbols(symbols); symbols.setSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kGroupingSeparatorSymbol, u"!", status); diff --git a/icu4c/source/test/intltest/numfmtst.cpp b/icu4c/source/test/intltest/numfmtst.cpp index fc562f385ac..bfa714d228f 100644 --- a/icu4c/source/test/intltest/numfmtst.cpp +++ b/icu4c/source/test/intltest/numfmtst.cpp @@ -4063,6 +4063,8 @@ for (;;) { UnicodeString strBuf; numFmt->format(numberToBeFormat, strBuf); + // TODO: Re-enable the following test block. It has been disabled since + // the code was first checked-in (r25497) /* int resultDataIndex = 3 + kIndex; // DATA[i][resultDataIndex] is the currency format result diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/number/NumberFormatterApiTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/number/NumberFormatterApiTest.java index cb843a80aac..835a5fa320a 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/number/NumberFormatterApiTest.java +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/number/NumberFormatterApiTest.java @@ -1324,6 +1324,22 @@ public class NumberFormatterApiTest { 12345.67, "١٢٬٣٤٥٫٦٧ US$"); + assertFormatSingle( + "NumberingSystem in API should win over @numbers keyword", + "", + NumberFormatter.with().symbols(NumberingSystem.LATIN).unit(USD), + new ULocale("ar@numbers=arab"), + 12345.67, + "US$ 12,345.67"); + + assertEquals("NumberingSystem in API should win over @numbers keyword in reverse order", + "US$ 12,345.67", + NumberFormatter.withLocale(new ULocale("ar@numbers=arab")) + .symbols(NumberingSystem.LATIN) + .unit(USD) + .format(12345.67) + .toString()); + DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(new ULocale("de-CH")); UnlocalizedNumberFormatter f = NumberFormatter.with().symbols(symbols); symbols.setGroupingSeparatorString("!");