From 5fe126b793abd166f608d3dfa64c57a84d91bfa3 Mon Sep 17 00:00:00 2001 From: Andy Heninger Date: Tue, 8 May 2018 00:14:27 +0000 Subject: [PATCH] ICU-12753 Add PatternDecimalPoint() test. X-SVN-Rev: 41350 --- icu4c/source/test/intltest/numfmtst.cpp | 15 +++++++++++++++ icu4c/source/test/intltest/numfmtst.h | 1 + 2 files changed, 16 insertions(+) diff --git a/icu4c/source/test/intltest/numfmtst.cpp b/icu4c/source/test/intltest/numfmtst.cpp index e020231affc..a6c18446380 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(Test12753_PatternDecimalPoint); TESTCASE_AUTO_END; } @@ -9466,4 +9467,18 @@ void NumberFormatTest::Test11649_DecFmtCurrencies() { appendTo.remove(); assertEquals("", "US dollars 12.34", fmt2.format(12.34, appendTo)); } + +void NumberFormatTest::Test12753_PatternDecimalPoint() { + UErrorCode status = U_ZERO_ERROR; + DecimalFormatSymbols symbols(Locale::getUS(), status); + symbols.setSymbol(DecimalFormatSymbols::kDecimalSeparatorSymbol, u"*", false); + DecimalFormat df(u"0.00", symbols, status); + if (!assertSuccess("", status)) return; + df.setDecimalPatternMatchRequired(true); + Formattable result; + df.parse(u"123",result, status); + assertEquals("Parsing integer succeeded even though setDecimalPatternMatchRequired was set", + U_INVALID_FORMAT_ERROR, status); + } + #endif /* #if !UCONFIG_NO_FORMATTING */ diff --git a/icu4c/source/test/intltest/numfmtst.h b/icu4c/source/test/intltest/numfmtst.h index 03592dc0016..ffc94280862 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 Test12753_PatternDecimalPoint(); private: UBool testFormattableAsUFormattable(const char *file, int line, Formattable &f);