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 }; UChar jdtLongC [] = {0x65E5, 0x672C, 0x590F, 0x6642, 0x9593}; UnicodeString jstLong(jstLongC, 5, 5); UnicodeString jstShort = "JST"; UnicodeString tzID = "Asia/Tokyo"; UnicodeString jdtLong(jdtLongC, 5, 5); UnicodeString jdtShort = "JDT"; UErrorCode status = U_ZERO_ERROR; DateFormatSymbols *symbols = new DateFormatSymbols(Locale::getJapan(), status); if(U_FAILURE(status)) { errcheckln(status, "Failure creating DateFormatSymbols, %s", u_errorName(status)); delete symbols; return; } failure(status, "new DateFormatSymbols"); int32_t eraCount = 0; const UnicodeString *eras = symbols->getEraNames(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); //don't hard code the index .. compute it. int32_t index = -1; for (int32_t i = 0; i < rowCount; ++i) { if (tzID == (zones[i][0])) { index = i; break; } } logln(UnicodeString("Long zone name = ") + zones[index][1]); if (zones[index][1] != jstLong) { errln("*** Should have been " + prettify(jstLong)+ " but it is: " + prettify(zones[index][1])); //throw new Exception("Error in long TZ name"); } logln(UnicodeString("Short zone name = ") + zones[index][2]); if (zones[index][2] != jstShort) { errln("*** Should have been " + prettify(jstShort) + " but it is: " + prettify(zones[index][2])); //throw new Exception("Error in short TZ name"); } logln(UnicodeString("Long zone name = ") + zones[index][3]); if (zones[index][3] != jdtLong) { errln("*** Should have been " + prettify(jstLong) + " but it is: " + prettify(zones[index][3])); //throw new Exception("Error in long TZ name"); } logln(UnicodeString("SHORT zone name = ") + zones[index][4]); if (zones[index][4] != jdtShort) { errln("*** Should have been " + prettify(jstShort)+ " but it is: " + prettify(zones[index][4])); //throw new Exception("Error in short TZ name"); } delete symbols; }
/* * @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::getJapan(), status); if(U_FAILURE(status)) { errln("Failure creating DateFormatSymbols, %s", u_errorName(status)); delete symbols; return; } 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[24][1]); if (zones[24][1] != jstLong) { errln("*** Should have been " + jstLong); //throw new Exception("Error in long TZ name"); } logln(UnicodeString("Short zone name = ") + zones[24][2]); if (zones[24][2] != jstShort) { errln("*** Should have been " + jstShort); //throw new Exception("Error in short TZ name"); } logln(UnicodeString("Long zone name = ") + zones[24][3]); if (zones[24][3] != jstLong) { errln("*** Should have been " + jstLong); //throw new Exception("Error in long TZ name"); } logln(UnicodeString("SHORT zone name = ") + zones[24][4]); if (zones[24][4] != jstShort) { errln("*** Should have been " + jstShort); //throw new Exception("Error in short TZ name"); } delete symbols; }