void DateFormatTest::TestParseMultiPatternMatch() {
// For details see http://bugs.icu-project.org/trac/ticket/10336
-
const TestMultiPatternMatchItem items[] = {
// leniency parse String pattern expected result
{true, UnicodeString("2013-Sep 13"), UnicodeString("yyyy-MMM dd"), UnicodeString("2013-Sep 13")},
{true, UnicodeString("2013 Oct 20 4th quarter"), UnicodeString("yyyy MMM dd qqqq"), UnicodeString("2013 Oct 20 4th quarter")},
{false, UnicodeString("2013 Oct 21 Q4"), UnicodeString("yyyy MMM dd qqqq"), UnicodeString("")},
{false, UnicodeString("2013 Oct 22 4th quarter"), UnicodeString("yyyy MMM dd qqqq"), UnicodeString("2013 Oct 22 4th quarter")},
- {false, (UnicodeString)NULL, (UnicodeString)NULL, (UnicodeString)NULL},
+ {false, UnicodeString("--end--"), UnicodeString(""), UnicodeString("")},
};
UErrorCode status = U_ZERO_ERROR;
}
const TestMultiPatternMatchItem * itemPtr;
DateFormat* sdmft = DateFormat::createDateInstance();
- int32_t cnt = 0;
- for (itemPtr = items; itemPtr->parseString != NULL; itemPtr++ ) {
+ for (itemPtr = items; itemPtr->parseString != "--end--"; itemPtr++ ) {
status = U_ZERO_ERROR;
ParsePosition pos(0);
((SimpleDateFormat*) sdmft)->applyPattern(itemPtr->pattern);
dataerrln("Unable to create SimpleDateFormat - %s", u_errorName(status));
continue;
}
- ++cnt;
sdmft->setLenient(itemPtr->leniency);
sdmft->setBooleanAttribute(UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH, itemPtr->leniency, status);
UDate d = sdmft->parse(itemPtr->parseString, pos);