// Test bug9042 void TimeUnitTest::testGreekWithSanitization() { UErrorCode status = U_ZERO_ERROR; Locale elLoc("el"); NumberFormat* numberFmt = NumberFormat::createInstance(Locale("el"), status); if (!assertSuccess("NumberFormat::createInstance for el locale", status, TRUE)) return; numberFmt->setMaximumFractionDigits(1); TimeUnitFormat* timeUnitFormat = new TimeUnitFormat(elLoc, status); if (!assertSuccess("TimeUnitFormat::TimeUnitFormat for el locale", status)) return; timeUnitFormat->setNumberFormat(*numberFmt, status); delete numberFmt; delete timeUnitFormat; }
void TimeUnitTest::testAPI() { //================= TimeUnit ================= UErrorCode status = U_ZERO_ERROR; TimeUnit* tmunit = TimeUnit::createInstance(TimeUnit::UTIMEUNIT_YEAR, status); if (!assertSuccess("TimeUnit::createInstance", status)) return; TimeUnit* another = (TimeUnit*)tmunit->clone(); TimeUnit third(*tmunit); TimeUnit fourth = third; assertTrue("orig and clone are equal", (*tmunit == *another)); assertTrue("copied and assigned are equal", (third == fourth)); TimeUnit* tmunit_m = TimeUnit::createInstance(TimeUnit::UTIMEUNIT_MONTH, status); assertTrue("year != month", (*tmunit != *tmunit_m)); TimeUnit::UTimeUnitFields field = tmunit_m->getTimeUnitField(); assertTrue("field of month time unit is month", (field == TimeUnit::UTIMEUNIT_MONTH)); delete tmunit; delete another; delete tmunit_m; // //================= TimeUnitAmount ================= Formattable formattable((int32_t)2); TimeUnitAmount tma_long(formattable, TimeUnit::UTIMEUNIT_DAY, status); if (!assertSuccess("TimeUnitAmount(formattable...)", status)) return; formattable.setDouble(2); TimeUnitAmount tma_double(formattable, TimeUnit::UTIMEUNIT_DAY, status); if (!assertSuccess("TimeUnitAmount(formattable...)", status)) return; formattable.setDouble(3); TimeUnitAmount tma_double_3(formattable, TimeUnit::UTIMEUNIT_DAY, status); if (!assertSuccess("TimeUnitAmount(formattable...)", status)) return; TimeUnitAmount tma(2, TimeUnit::UTIMEUNIT_DAY, status); if (!assertSuccess("TimeUnitAmount(number...)", status)) return; TimeUnitAmount tma_h(2, TimeUnit::UTIMEUNIT_HOUR, status); if (!assertSuccess("TimeUnitAmount(number...)", status)) return; TimeUnitAmount second(tma); TimeUnitAmount third_tma = tma; TimeUnitAmount* fourth_tma = (TimeUnitAmount*)tma.clone(); assertTrue("orig and copy are equal", (second == tma)); assertTrue("clone and assigned are equal", (third_tma == *fourth_tma)); assertTrue("different if number diff", (tma_double != tma_double_3)); assertTrue("different if number type diff", (tma_double != tma_long)); assertTrue("different if time unit diff", (tma != tma_h)); assertTrue("same even different constructor", (tma_double == tma)); assertTrue("getTimeUnitField", (tma.getTimeUnitField() == TimeUnit::UTIMEUNIT_DAY)); delete fourth_tma; // //================= TimeUnitFormat ================= // TimeUnitFormat* tmf_en = new TimeUnitFormat(Locale("en"), status); if (!assertSuccess("TimeUnitFormat(en...)", status, TRUE)) return; TimeUnitFormat tmf_fr(Locale("fr"), status); if (!assertSuccess("TimeUnitFormat(fr...)", status)) return; assertTrue("TimeUnitFormat: en and fr diff", (*tmf_en != tmf_fr)); TimeUnitFormat tmf_assign = *tmf_en; assertTrue("TimeUnitFormat: orig and assign are equal", (*tmf_en == tmf_assign)); TimeUnitFormat tmf_copy(tmf_fr); assertTrue("TimeUnitFormat: orig and copy are equal", (tmf_fr == tmf_copy)); TimeUnitFormat* tmf_clone = (TimeUnitFormat*)tmf_en->clone(); assertTrue("TimeUnitFormat: orig and clone are equal", (*tmf_en == *tmf_clone)); delete tmf_clone; tmf_en->setLocale(Locale("fr"), status); if (!assertSuccess("setLocale(fr...)", status)) return; NumberFormat* numberFmt = NumberFormat::createInstance( Locale("fr"), status); if (!assertSuccess("NumberFormat::createInstance()", status)) return; tmf_en->setNumberFormat(*numberFmt, status); if (!assertSuccess("setNumberFormat(en...)", status)) return; assertTrue("TimeUnitFormat: setLocale", (*tmf_en == tmf_fr)); delete tmf_en; TimeUnitFormat* en_long = new TimeUnitFormat(Locale("en"), UTMUTFMT_FULL_STYLE, status); if (!assertSuccess("TimeUnitFormat(en...)", status)) return; delete en_long; TimeUnitFormat* en_short = new TimeUnitFormat(Locale("en"), UTMUTFMT_ABBREVIATED_STYLE, status); if (!assertSuccess("TimeUnitFormat(en...)", status)) return; delete en_short; TimeUnitFormat* format = new TimeUnitFormat(status); format->setLocale(Locale("zh"), status); format->setNumberFormat(*numberFmt, status); if (!assertSuccess("TimeUnitFormat(en...)", status)) return; delete numberFmt; delete format; }
void TimeUnitTest::testAPI() { //================= TimeUnit ================= UErrorCode status = U_ZERO_ERROR; TimeUnit* tmunit = TimeUnit::createInstance(TimeUnit::UTIMEUNIT_YEAR, status); if (!assertSuccess("TimeUnit::createInstance", status)) return; TimeUnit* another = (TimeUnit*)tmunit->clone(); TimeUnit third(*tmunit); TimeUnit fourth = third; assertTrue("orig and clone are equal", (*tmunit == *another)); assertTrue("copied and assigned are equal", (third == fourth)); TimeUnit* tmunit_m = TimeUnit::createInstance(TimeUnit::UTIMEUNIT_MONTH, status); assertTrue("year != month", (*tmunit != *tmunit_m)); TimeUnit::UTimeUnitFields field = tmunit_m->getTimeUnitField(); assertTrue("field of month time unit is month", (field == TimeUnit::UTIMEUNIT_MONTH)); //===== Interoperability with MeasureUnit ====== MeasureUnit **ptrs = new MeasureUnit *[TimeUnit::UTIMEUNIT_FIELD_COUNT]; ptrs[TimeUnit::UTIMEUNIT_YEAR] = MeasureUnit::createYear(status); ptrs[TimeUnit::UTIMEUNIT_MONTH] = MeasureUnit::createMonth(status); ptrs[TimeUnit::UTIMEUNIT_DAY] = MeasureUnit::createDay(status); ptrs[TimeUnit::UTIMEUNIT_WEEK] = MeasureUnit::createWeek(status); ptrs[TimeUnit::UTIMEUNIT_HOUR] = MeasureUnit::createHour(status); ptrs[TimeUnit::UTIMEUNIT_MINUTE] = MeasureUnit::createMinute(status); ptrs[TimeUnit::UTIMEUNIT_SECOND] = MeasureUnit::createSecond(status); if (!assertSuccess("TimeUnit::createInstance", status)) return; for (TimeUnit::UTimeUnitFields j = TimeUnit::UTIMEUNIT_YEAR; j < TimeUnit::UTIMEUNIT_FIELD_COUNT; j = (TimeUnit::UTimeUnitFields)(j+1)) { MeasureUnit *ptr = TimeUnit::createInstance(j, status); if (!assertSuccess("TimeUnit::createInstance", status)) return; // We have to convert *ptr to a MeasureUnit or else == will fail over // differing types (TimeUnit vs. MeasureUnit). assertTrue( "Time unit should be equal to corresponding MeasureUnit", MeasureUnit(*ptr) == *ptrs[j]); delete ptr; } delete tmunit; delete another; delete tmunit_m; for (int i = 0; i < TimeUnit::UTIMEUNIT_FIELD_COUNT; ++i) { delete ptrs[i]; } delete [] ptrs; // //================= TimeUnitAmount ================= Formattable formattable((int32_t)2); TimeUnitAmount tma_long(formattable, TimeUnit::UTIMEUNIT_DAY, status); if (!assertSuccess("TimeUnitAmount(formattable...)", status)) return; formattable.setDouble(2); TimeUnitAmount tma_double(formattable, TimeUnit::UTIMEUNIT_DAY, status); if (!assertSuccess("TimeUnitAmount(formattable...)", status)) return; formattable.setDouble(3); TimeUnitAmount tma_double_3(formattable, TimeUnit::UTIMEUNIT_DAY, status); if (!assertSuccess("TimeUnitAmount(formattable...)", status)) return; TimeUnitAmount tma(2, TimeUnit::UTIMEUNIT_DAY, status); if (!assertSuccess("TimeUnitAmount(number...)", status)) return; TimeUnitAmount tma_h(2, TimeUnit::UTIMEUNIT_HOUR, status); if (!assertSuccess("TimeUnitAmount(number...)", status)) return; TimeUnitAmount second(tma); TimeUnitAmount third_tma = tma; TimeUnitAmount* fourth_tma = (TimeUnitAmount*)tma.clone(); assertTrue("orig and copy are equal", (second == tma)); assertTrue("clone and assigned are equal", (third_tma == *fourth_tma)); assertTrue("different if number diff", (tma_double != tma_double_3)); assertTrue("different if number type diff", (tma_double != tma_long)); assertTrue("different if time unit diff", (tma != tma_h)); assertTrue("same even different constructor", (tma_double == tma)); assertTrue("getTimeUnitField", (tma.getTimeUnitField() == TimeUnit::UTIMEUNIT_DAY)); delete fourth_tma; // //================= TimeUnitFormat ================= // TimeUnitFormat* tmf_en = new TimeUnitFormat(Locale("en"), status); if (!assertSuccess("TimeUnitFormat(en...)", status, TRUE)) return; TimeUnitFormat tmf_fr(Locale("fr"), status); if (!assertSuccess("TimeUnitFormat(fr...)", status)) return; assertTrue("TimeUnitFormat: en and fr diff", (*tmf_en != tmf_fr)); TimeUnitFormat tmf_assign = *tmf_en; assertTrue("TimeUnitFormat: orig and assign are equal", (*tmf_en == tmf_assign)); TimeUnitFormat tmf_copy(tmf_fr); assertTrue("TimeUnitFormat: orig and copy are equal", (tmf_fr == tmf_copy)); TimeUnitFormat* tmf_clone = (TimeUnitFormat*)tmf_en->clone(); assertTrue("TimeUnitFormat: orig and clone are equal", (*tmf_en == *tmf_clone)); delete tmf_clone; tmf_en->setLocale(Locale("fr"), status); if (!assertSuccess("setLocale(fr...)", status)) return; NumberFormat* numberFmt = NumberFormat::createInstance( Locale("fr"), status); if (!assertSuccess("NumberFormat::createInstance()", status)) return; tmf_en->setNumberFormat(*numberFmt, status); if (!assertSuccess("setNumberFormat(en...)", status)) return; assertTrue("TimeUnitFormat: setLocale", (*tmf_en == tmf_fr)); delete tmf_en; TimeUnitFormat* en_long = new TimeUnitFormat(Locale("en"), UTMUTFMT_FULL_STYLE, status); if (!assertSuccess("TimeUnitFormat(en...)", status)) return; delete en_long; TimeUnitFormat* en_short = new TimeUnitFormat(Locale("en"), UTMUTFMT_ABBREVIATED_STYLE, status); if (!assertSuccess("TimeUnitFormat(en...)", status)) return; delete en_short; TimeUnitFormat* format = new TimeUnitFormat(status); format->setLocale(Locale("zh"), status); format->setNumberFormat(*numberFmt, status); if (!assertSuccess("TimeUnitFormat(en...)", status)) return; delete numberFmt; delete format; }