]> granicus.if.org Git - icu/commitdiff
ICU-13148 Add test for parsing grouping separators
authorCraig Cornelius <ccornelius@google.com>
Tue, 8 May 2018 01:21:56 +0000 (01:21 +0000)
committerCraig Cornelius <ccornelius@google.com>
Tue, 8 May 2018 01:21:56 +0000 (01:21 +0000)
X-SVN-Rev: 41353

icu4c/source/test/intltest/numfmtst.cpp
icu4c/source/test/intltest/numfmtst.h

index 82c6f37b93a7b3d668aab08121100216ab32316a..3347e8e022cb35c88aa070992b717e4c093c4237 100644 (file)
@@ -677,6 +677,7 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n
   TESTCASE_AUTO(Test11025_CurrencyPadding);
   TESTCASE_AUTO(Test11648_ExpDecFormatMalPattern);
   TESTCASE_AUTO(Test11649_DecFmtCurrencies);
+  TESTCASE_AUTO(Test13148_ParseGroupingSeparators);
   TESTCASE_AUTO(Test12753_PatternDecimalPoint);
   TESTCASE_AUTO_END;
 }
@@ -9468,6 +9469,21 @@ void NumberFormatTest::Test11649_DecFmtCurrencies() {
   assertEquals("", "US dollars 12.34", fmt2.format(12.34, appendTo));
 }
 
+void NumberFormatTest::Test13148_ParseGroupingSeparators() {
+  IcuTestErrorCode status(*this, "Test13148");
+  LocalPointer<DecimalFormat> fmt(
+      (DecimalFormat*)NumberFormat::createInstance("en-ZA", status));
+
+  DecimalFormatSymbols symbols = *fmt->getDecimalFormatSymbols();
+
+  symbols.setSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol, u'.');
+  symbols.setSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol, u',');
+  fmt->setDecimalFormatSymbols(symbols);
+  Formattable number;
+  fmt->parse(u"300,000", number, status);
+  assertEquals("Should parse as 300000", 300000LL, number.getInt64(status));
+}
+
 void NumberFormatTest::Test12753_PatternDecimalPoint() {
     UErrorCode status = U_ZERO_ERROR;
     DecimalFormatSymbols symbols(Locale::getUS(), status);
index ffc942808620092b5cbc00efe274c128f6e6b3da..84cf97cfa68c6a092a38ed596bb26ca0c395d1ed 100644 (file)
@@ -241,6 +241,7 @@ class NumberFormatTest: public CalendarTimeZoneTest {
     void Test11025_CurrencyPadding();
     void Test11648_ExpDecFormatMalPattern();
     void Test11649_DecFmtCurrencies();
+    void Test13148_ParseGroupingSeparators();
     void Test12753_PatternDecimalPoint();
 
  private: