+void IntlTestDecimalFormatAPI::TestRequiredDecimalPoint() {
+ UErrorCode status = U_ZERO_ERROR;
+ UnicodeString text("99");
+ Formattable result1;
+ UnicodeString pat1("##.0000");
+ UnicodeString pat2("00.0");
+
+ LocalPointer<DecimalFormat> df(new DecimalFormat(pat1, status), status);
+ if (U_FAILURE(status)) {
+ dataerrln("Error creating new DecimalFormat - %s", u_errorName(status));
+ return;
+ }
+
+ status = U_ZERO_ERROR;
+ df->applyPattern(pat1, status);
+ if(U_FAILURE(status)) {
+ errln((UnicodeString)"ERROR: applyPattern() failed");
+ }
+ df->parse(text, result1, status);
+ if(U_FAILURE(status)) {
+ errln((UnicodeString)"ERROR: parse() failed");
+ }
+ df->setDecimalPatternMatchRequired(TRUE);
+ df->parse(text, result1, status);
+ if(U_SUCCESS(status)) {
+ errln((UnicodeString)"ERROR: unexpected parse()");
+ }
+
+
+ status = U_ZERO_ERROR;
+ df->applyPattern(pat2, status);
+ df->setDecimalPatternMatchRequired(FALSE);
+ if(U_FAILURE(status)) {
+ errln((UnicodeString)"ERROR: applyPattern(2) failed");
+ }
+ df->parse(text, result1, status);
+ if(U_FAILURE(status)) {
+ errln((UnicodeString)"ERROR: parse(2) failed - " + u_errorName(status));
+ }
+ df->setDecimalPatternMatchRequired(TRUE);
+ df->parse(text, result1, status);
+ if(U_SUCCESS(status)) {
+ errln((UnicodeString)"ERROR: unexpected parse(2)");
+ }
+}
+