From e7a62d472560daa02336b0c3405ba8a7f78d5d6b Mon Sep 17 00:00:00 2001 From: Frank Tang Date: Wed, 11 Sep 2024 16:16:43 -0700 Subject: [PATCH] ICU-22885 Add test to show the problem of DecimalFormat --- icu4c/source/test/intltest/numfmtst.cpp | 10 ++++++++++ icu4c/source/test/intltest/numfmtst.h | 1 + 2 files changed, 11 insertions(+) diff --git a/icu4c/source/test/intltest/numfmtst.cpp b/icu4c/source/test/intltest/numfmtst.cpp index a37111a8540d..877e1bbcefa9 100644 --- a/icu4c/source/test/intltest/numfmtst.cpp +++ b/icu4c/source/test/intltest/numfmtst.cpp @@ -156,6 +156,7 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n TESTCASE_AUTO(TestFormatAttributes); TESTCASE_AUTO(TestFieldPositionIterator); TESTCASE_AUTO(TestDecimal); + TESTCASE_AUTO(TestDecimalFormatParse7E); TESTCASE_AUTO(TestCurrencyFractionDigits); TESTCASE_AUTO(TestExponentParse); TESTCASE_AUTO(TestExplicitParents); @@ -6979,6 +6980,15 @@ void NumberFormatTest::TestDecimal() { #endif } +void NumberFormatTest::TestDecimalFormatParse7E() { + UErrorCode status = U_ZERO_ERROR; + UnicodeString testdata = u"~"; + icu::Formattable result; + icu::DecimalFormat dfmt(testdata, status); + if (U_SUCCESS(status)) { + dfmt.parse(testdata, result, status); + } +} void NumberFormatTest::TestCurrencyFractionDigits() { UErrorCode status = U_ZERO_ERROR; diff --git a/icu4c/source/test/intltest/numfmtst.h b/icu4c/source/test/intltest/numfmtst.h index 5bdbc131cda3..c23fc83daa2c 100644 --- a/icu4c/source/test/intltest/numfmtst.h +++ b/icu4c/source/test/intltest/numfmtst.h @@ -201,6 +201,7 @@ class NumberFormatTest: public CalendarTimeZoneTest { void TestLenientParse(); void TestDecimal(); + void TestDecimalFormatParse7E(); void TestCurrencyFractionDigits(); void TestExponentParse();