]> granicus.if.org Git - icu/commitdiff
ICU-13496 Adds missing NumberFormatter test to ICU4C
authorShane Carr <shane@unicode.org>
Fri, 1 Dec 2017 07:57:05 +0000 (07:57 +0000)
committerShane Carr <shane@unicode.org>
Fri, 1 Dec 2017 07:57:05 +0000 (07:57 +0000)
X-SVN-Rev: 40682

icu4c/source/test/intltest/numbertest_api.cpp
icu4c/source/test/intltest/numfmtst.cpp
icu4j/main/tests/core/src/com/ibm/icu/dev/test/number/NumberFormatterApiTest.java

index 63514043eeb6d0426c57434b0baf5eb8a9a10ca1..1f5cfaa3ff5b41148fccc21f720fc94a39f430d9 100644 (file)
@@ -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);
index fc562f385aceb2bff5504d2fd8dfcc5776e8e08c..bfa714d228f0701d4a24b67791627003419ef4a8 100644 (file)
@@ -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
index cb843a80aac87e6cfb334cd8a64c93160d2037f6..835a5fa320ad87060407591e3d8d1d11ab2d5557 100644 (file)
@@ -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("!");