home *** CD-ROM | disk | FTP | other *** search
- /*
- ********************************************************************
- * COPYRIGHT:
- * (C) Copyright International Business Machines Corporation, 1998
- * Licensed Material - Program-Property of IBM - All Rights Reserved.
- * US Government Users Restricted Rights - Use, duplication, or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
- *
- ********************************************************************
- */
-
- #include "miscdtfm.h"
-
- #include "format.h"
- #include "decimfmt.h"
- #include "datefmt.h"
- #include "smpdtfmt.h"
- #include "dtfmtsym.h"
- #include "locid.h"
- #include "msgfmt.h"
- #include "numfmt.h"
- #include "choicfmt.h"
- #include "gregocal.h"
-
- // *****************************************************************************
- // class DateFormatMiscTests
- // *****************************************************************************
-
- #define CASE(id,test) case id: name = #test; if (exec) { logln(#test "---"); logln((UnicodeString)""); test(); } break;
-
- void
- DateFormatMiscTests::runIndexedTest( int32_t index, bool_t exec, char* &name, char* par )
- {
- // if (exec) logln((UnicodeString)"TestSuite DateFormatMiscTests");
- switch (index) {
- CASE(0, test4097450)
- CASE(1, test4099975)
- CASE(2, test4117335)
-
- default: name = ""; break;
- }
- }
-
- bool_t
- DateFormatMiscTests::failure(UErrorCode status, const char* msg)
- {
- if(U_FAILURE(status)) {
- errln(UnicodeString("FAIL: ") + msg + " failed, error " + errorName(status));
- return TRUE;
- }
-
- return FALSE;
- }
-
- /*
- * @test @(#)$RCSfile: miscdtfm.cpp,v $ $Revision: 1.4 $ $Date: 1999/10/18 22:48:31 $
- *
- * @bug 4097450
- */
- void
- DateFormatMiscTests::test4097450()
- {
- //
- // Date parse requiring 4 digit year.
- //
- UnicodeString dstring [] = {
- UnicodeString("97"),
- UnicodeString("1997"),
- UnicodeString("97"),
- UnicodeString("1997"),
- UnicodeString("01"),
- UnicodeString("2001"),
- UnicodeString("01"),
- UnicodeString("2001"),
- UnicodeString("1"),
- UnicodeString("1"),
- UnicodeString("11"),
- UnicodeString("11"),
- UnicodeString("111"),
- UnicodeString("111")
- };
-
- UnicodeString dformat [] = {
- UnicodeString("yy"),
- UnicodeString("yy"),
- UnicodeString("yyyy"),
- UnicodeString("yyyy"),
- UnicodeString("yy"),
- UnicodeString("yy"),
- UnicodeString("yyyy"),
- UnicodeString("yyyy"),
- UnicodeString("yy"),
- UnicodeString("yyyy"),
- UnicodeString("yy"),
- UnicodeString("yyyy"),
- UnicodeString("yy"),
- UnicodeString("yyyy")
- };
-
- bool_t dresult [] = {
- TRUE,
- FALSE,
- FALSE,
- TRUE,
- TRUE,
- FALSE,
- FALSE,
- TRUE,
- FALSE,
- FALSE,
- TRUE,
- FALSE,
- FALSE,
- FALSE
- };
-
- UErrorCode status = U_ZERO_ERROR;
- SimpleDateFormat *formatter;
- SimpleDateFormat *resultFormatter = new SimpleDateFormat("yyyy", status);
- failure(status, "new SimpleDateFormat");
-
- logln("Format\tSource\tResult");
- logln("-------\t-------\t-------");
- for (int i = 0; i < 14/*dstring.length*/; i++)
- {
- log(dformat[i] + "\t" + dstring[i] + "\t");
- formatter = new SimpleDateFormat(dformat[i], status);
- failure(status, "new SimpleDateFormat");
- //try {
- UnicodeString str;
- FieldPosition pos(FieldPosition::DONT_CARE);
- logln(resultFormatter->format(formatter->parse(dstring[i], status), str, pos));
- failure(status, "resultFormatter->format");
- //if ( !dresult[i] ) System.out.print(" <-- error!");
- /*}
- catch (ParseException exception) {
- //if ( dresult[i] ) System.out.print(" <-- error!");
- System.out.print("exception --> " + exception);
- }*/
- delete formatter;
- logln();
- }
-
- delete resultFormatter;
- }
-
- /*
- * @test @(#)$RCSfile: miscdtfm.cpp,v $ $Revision: 1.4 $ $Date: 1999/10/18 22:48:31 $
- *
- * @bug 4099975
- */
-
- void
- DateFormatMiscTests::test4099975()
- {
- UErrorCode status = U_ZERO_ERROR;
- DateFormatSymbols *symbols = new DateFormatSymbols(status);
- failure(status, "new DateFormatSymbols");
- SimpleDateFormat *df = new SimpleDateFormat(UnicodeString("E hh:mm"), symbols, status);
- failure(status, "new SimpleDateFormat");
- UnicodeString res;
- logln(df->toLocalizedPattern(res, status));
- failure(status, "df->toLocalizedPattern");
- symbols->setLocalPatternChars(UnicodeString("abcdefghijklmonpqr")); // change value of field
- logln(df->toLocalizedPattern(res, status));
- failure(status, "df->toLocalizedPattern");
-
- delete df;
- }
-
- /*
- * @test @(#)bug4117335.java 1.1 3/5/98
- *
- * @bug 4117335
- */
- void
- DateFormatMiscTests::test4117335()
- {
- //UnicodeString bc = "\u7d00\u5143\u524d";
- UChar bcC [] = {
- 0x7D00,
- 0x5143,
- 0x524D
- };
- UnicodeString bc(bcC, 3, 3);
-
- //UnicodeString ad = "\u897f\u66a6";
- UChar adC [] = {
- 0x897F,
- 0x66A6
- };
- UnicodeString ad(adC, 2, 2);
-
- //UnicodeString jstLong = "\u65e5\u672c\u6a19\u6e96\u6642";
- UChar jstLongC [] = {
- 0x65e5,
- 0x672c,
- 0x6a19,
- 0x6e96,
- 0x6642
- };
- UnicodeString jstLong(jstLongC, 5, 5);
-
- UnicodeString jstShort = "JST";
-
-
- UErrorCode status = U_ZERO_ERROR;
- DateFormatSymbols *symbols = new DateFormatSymbols(Locale::JAPAN, status);
- failure(status, "new DateFormatSymbols");
- int32_t eraCount = 0;
- const UnicodeString *eras = symbols->getEras(eraCount);
-
- logln(UnicodeString("BC = ") + eras[0]);
- if (eras[0] != bc) {
- errln("*** Should have been " + bc);
- //throw new Exception("Error in BC");
- }
-
- logln(UnicodeString("AD = ") + eras[1]);
- if (eras[1] != ad) {
- errln("*** Should have been " + ad);
- //throw new Exception("Error in AD");
- }
-
- int32_t rowCount, colCount;
- const UnicodeString **zones = symbols->getZoneStrings(rowCount, colCount);
- logln(UnicodeString("Long zone name = ") + zones[0][1]);
- if (zones[0][1] != jstLong) {
- errln("*** Should have been " + jstLong);
- //throw new Exception("Error in long TZ name");
- }
- logln(UnicodeString("Short zone name = ") + zones[0][2]);
- if (zones[0][2] != jstShort) {
- errln("*** Should have been " + jstShort);
- //throw new Exception("Error in short TZ name");
- }
- logln(UnicodeString("Long zone name = ") + zones[0][3]);
- if (zones[0][3] != jstLong) {
- errln("*** Should have been " + jstLong);
- //throw new Exception("Error in long TZ name");
- }
- logln(UnicodeString("SHORT zone name = ") + zones[0][4]);
- if (zones[0][4] != jstShort) {
- errln("*** Should have been " + jstShort);
- //throw new Exception("Error in short TZ name");
- }
-
- }
-