From: Craig Cornelius Date: Tue, 8 May 2018 01:21:56 +0000 (+0000) Subject: ICU-13148 Add test for parsing grouping separators X-Git-Tag: release-62-rc~127 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=01c86126de18be05ced117380a033689f6684571;p=icu ICU-13148 Add test for parsing grouping separators X-SVN-Rev: 41353 --- diff --git a/icu4c/source/test/intltest/numfmtst.cpp b/icu4c/source/test/intltest/numfmtst.cpp index 82c6f37b93a..3347e8e022c 100644 --- a/icu4c/source/test/intltest/numfmtst.cpp +++ b/icu4c/source/test/intltest/numfmtst.cpp @@ -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 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); diff --git a/icu4c/source/test/intltest/numfmtst.h b/icu4c/source/test/intltest/numfmtst.h index ffc94280862..84cf97cfa68 100644 --- a/icu4c/source/test/intltest/numfmtst.h +++ b/icu4c/source/test/intltest/numfmtst.h @@ -241,6 +241,7 @@ class NumberFormatTest: public CalendarTimeZoneTest { void Test11025_CurrencyPadding(); void Test11648_ExpDecFormatMalPattern(); void Test11649_DecFmtCurrencies(); + void Test13148_ParseGroupingSeparators(); void Test12753_PatternDecimalPoint(); private: