| Index: source/test/intltest/dtfmapts.cpp
|
| diff --git a/source/test/intltest/dtfmapts.cpp b/source/test/intltest/dtfmapts.cpp
|
| deleted file mode 100644
|
| index 54bb1a5b04dce264da806b75752009d5894e853a..0000000000000000000000000000000000000000
|
| --- a/source/test/intltest/dtfmapts.cpp
|
| +++ /dev/null
|
| @@ -1,389 +0,0 @@
|
| -/***********************************************************************
|
| - * COPYRIGHT:
|
| - * Copyright (c) 1997-2011, International Business Machines Corporation
|
| - * and others. All Rights Reserved.
|
| - ***********************************************************************/
|
| -
|
| -#include "unicode/utypes.h"
|
| -
|
| -#if !UCONFIG_NO_FORMATTING
|
| -
|
| -#include "dtfmapts.h"
|
| -
|
| -#include "unicode/datefmt.h"
|
| -#include "unicode/smpdtfmt.h"
|
| -#include "unicode/decimfmt.h"
|
| -#include "unicode/choicfmt.h"
|
| -#include "unicode/msgfmt.h"
|
| -
|
| -
|
| -// This is an API test, not a unit test. It doesn't test very many cases, and doesn't
|
| -// try to test the full functionality. It just calls each function in the class and
|
| -// verifies that it works on a basic level.
|
| -
|
| -void IntlTestDateFormatAPI::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ )
|
| -{
|
| - if (exec) logln("TestSuite DateFormatAPI");
|
| - switch (index) {
|
| - case 0: name = "DateFormat API test";
|
| - if (exec) {
|
| - logln("DateFormat API test---"); logln("");
|
| - UErrorCode status = U_ZERO_ERROR;
|
| - Locale saveLocale;
|
| - Locale::setDefault(Locale::getEnglish(), status);
|
| - if(U_FAILURE(status)) {
|
| - errln("ERROR: Could not set default locale, test may not give correct results");
|
| - }
|
| - testAPI(/*par*/);
|
| - Locale::setDefault(saveLocale, status);
|
| - }
|
| - break;
|
| -
|
| - case 1: name = "TestEquals";
|
| - if (exec) {
|
| - logln("TestEquals---"); logln("");
|
| - TestEquals();
|
| - }
|
| - break;
|
| -
|
| - case 2: name = "TestNameHiding";
|
| - if (exec) {
|
| - logln("TestNameHiding---"); logln("");
|
| - TestNameHiding();
|
| - }
|
| - break;
|
| -
|
| - case 3: name = "TestCoverage";
|
| - if (exec) {
|
| - logln("TestCoverage---"); logln("");
|
| - TestCoverage();
|
| - }
|
| - break;
|
| -
|
| - default: name = ""; break;
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * Add better code coverage.
|
| - */
|
| -void IntlTestDateFormatAPI::TestCoverage(void)
|
| -{
|
| - const char *LOCALES[] = {
|
| - "zh_CN@calendar=chinese",
|
| - "cop_EG@calendar=coptic",
|
| - "hi_IN@calendar=indian",
|
| - "am_ET@calendar=ethiopic"
|
| - };
|
| - int32_t numOfLocales = 4;
|
| -
|
| - for (int32_t i = 0; i < numOfLocales; i++) {
|
| - DateFormat *df = DateFormat::createDateTimeInstance(DateFormat::kMedium, DateFormat::kMedium, Locale(LOCALES[i]));
|
| - if (df == NULL){
|
| - dataerrln("Error creating DateFormat instances.");
|
| - return;
|
| - }
|
| - delete df;
|
| - }
|
| -}
|
| -/**
|
| - * Test that the equals method works correctly.
|
| - */
|
| -void IntlTestDateFormatAPI::TestEquals(void)
|
| -{
|
| - UErrorCode status = U_ZERO_ERROR;
|
| - // Create two objects at different system times
|
| - DateFormat *a = DateFormat::createInstance();
|
| - UDate start = Calendar::getNow();
|
| - while (Calendar::getNow() == start) ; // Wait for time to change
|
| - DateFormat *b = DateFormat::createInstance();
|
| -
|
| - if (a == NULL || b == NULL){
|
| - dataerrln("Error calling DateFormat::createInstance()");
|
| - delete a;
|
| - delete b;
|
| - return;
|
| - }
|
| -
|
| - if (!(*a == *b))
|
| - errln("FAIL: DateFormat objects created at different times are unequal.");
|
| -
|
| - SimpleDateFormat *sdtfmt = dynamic_cast<SimpleDateFormat *>(b);
|
| - if (sdtfmt != NULL)
|
| - {
|
| - double ONE_YEAR = 365*24*60*60*1000.0;
|
| - sdtfmt->set2DigitYearStart(start + 50*ONE_YEAR, status);
|
| - if (U_FAILURE(status))
|
| - errln("FAIL: setTwoDigitStartDate failed.");
|
| - else if (*a == *b)
|
| - errln("FAIL: DateFormat objects with different two digit start dates are equal.");
|
| - }
|
| - delete a;
|
| - delete b;
|
| -}
|
| -
|
| -/**
|
| - * This test checks various generic API methods in DateFormat to achieve 100%
|
| - * API coverage.
|
| - */
|
| -void IntlTestDateFormatAPI::testAPI(/* char* par */)
|
| -{
|
| - UErrorCode status = U_ZERO_ERROR;
|
| -
|
| -// ======= Test constructors
|
| -
|
| - logln("Testing DateFormat constructors");
|
| -
|
| - DateFormat *def = DateFormat::createInstance();
|
| - DateFormat *fr = DateFormat::createTimeInstance(DateFormat::FULL, Locale::getFrench());
|
| - DateFormat *it = DateFormat::createDateInstance(DateFormat::MEDIUM, Locale::getItalian());
|
| - DateFormat *de = DateFormat::createDateTimeInstance(DateFormat::LONG, DateFormat::LONG, Locale::getGerman());
|
| -
|
| - if (def == NULL || fr == NULL || it == NULL || de == NULL){
|
| - dataerrln("Error creating DateFormat instances.");
|
| - }
|
| -
|
| -// ======= Test equality
|
| -if (fr != NULL && def != NULL)
|
| -{
|
| - logln("Testing equality operator");
|
| -
|
| - if( *fr == *it ) {
|
| - errln("ERROR: == failed");
|
| - }
|
| -}
|
| -
|
| -// ======= Test various format() methods
|
| -if (fr != NULL && it != NULL && de != NULL)
|
| -{
|
| - logln("Testing various format() methods");
|
| -
|
| - UDate d = 837039928046.0;
|
| - Formattable fD(d, Formattable::kIsDate);
|
| -
|
| - UnicodeString res1, res2, res3;
|
| - FieldPosition pos1(0), pos2(0);
|
| -
|
| - status = U_ZERO_ERROR;
|
| - res1 = fr->format(d, res1, pos1, status);
|
| - if(U_FAILURE(status)) {
|
| - errln("ERROR: format() failed (French)");
|
| - }
|
| - logln( (UnicodeString) "" + d + " formatted to " + res1);
|
| -
|
| - res2 = it->format(d, res2, pos2);
|
| - logln( (UnicodeString) "" + d + " formatted to " + res2);
|
| -
|
| - res3 = de->format(d, res3);
|
| - logln( (UnicodeString) "" + d + " formatted to " + res3);
|
| -}
|
| -
|
| -// ======= Test parse()
|
| -if (def != NULL)
|
| -{
|
| - logln("Testing parse()");
|
| -
|
| - UnicodeString text("02/03/76 2:50 AM, CST");
|
| - Formattable result1;
|
| - UDate result2, result3;
|
| - ParsePosition pos(0), pos01(0);
|
| - def->parseObject(text, result1, pos);
|
| - if(result1.getType() != Formattable::kDate) {
|
| - errln("ERROR: parseObject() failed for " + text);
|
| - }
|
| - logln(text + " parsed into " + result1.getDate());
|
| -
|
| - status = U_ZERO_ERROR;
|
| - result2 = def->parse(text, status);
|
| - if(U_FAILURE(status)) {
|
| - errln("ERROR: parse() failed, stopping testing");
|
| - return;
|
| - }
|
| - logln(text + " parsed into " + result2);
|
| -
|
| - result3 = def->parse(text, pos01);
|
| - logln(text + " parsed into " + result3);
|
| -}
|
| -
|
| -// ======= Test getters and setters
|
| -if (fr != NULL && it != NULL && de != NULL)
|
| -{
|
| - logln("Testing getters and setters");
|
| -
|
| - int32_t count = 0;
|
| - const Locale *locales = DateFormat::getAvailableLocales(count);
|
| - logln((UnicodeString) "Got " + count + " locales" );
|
| - for(int32_t i = 0; i < count; i++) {
|
| - UnicodeString name;
|
| - name = locales[i].getName();
|
| - logln(name);
|
| - }
|
| -
|
| - fr->setLenient(it->isLenient());
|
| - if(fr->isLenient() != it->isLenient()) {
|
| - errln("ERROR: setLenient() failed");
|
| - }
|
| -
|
| - const Calendar *cal = def->getCalendar();
|
| - Calendar *newCal = cal->clone();
|
| - de->adoptCalendar(newCal);
|
| - it->setCalendar(*newCal);
|
| - if( *(de->getCalendar()) != *(it->getCalendar())) {
|
| - errln("ERROR: adopt or set Calendar() failed");
|
| - }
|
| -
|
| - const NumberFormat *nf = def->getNumberFormat();
|
| - NumberFormat *newNf = (NumberFormat*) nf->clone();
|
| - de->adoptNumberFormat(newNf);
|
| - it->setNumberFormat(*newNf);
|
| - if( *(de->getNumberFormat()) != *(it->getNumberFormat())) {
|
| - errln("ERROR: adopt or set NumberFormat() failed");
|
| - }
|
| -
|
| - const TimeZone& tz = def->getTimeZone();
|
| - TimeZone *newTz = tz.clone();
|
| - de->adoptTimeZone(newTz);
|
| - it->setTimeZone(*newTz);
|
| - if( de->getTimeZone() != it->getTimeZone()) {
|
| - errln("ERROR: adopt or set TimeZone() failed");
|
| - }
|
| -}
|
| -// ======= Test getStaticClassID()
|
| -
|
| - logln("Testing getStaticClassID()");
|
| -
|
| - status = U_ZERO_ERROR;
|
| - DateFormat *test = new SimpleDateFormat(status);
|
| - if(U_FAILURE(status)) {
|
| - dataerrln("ERROR: Couldn't create a DateFormat - %s", u_errorName(status));
|
| - }
|
| -
|
| - if(test->getDynamicClassID() != SimpleDateFormat::getStaticClassID()) {
|
| - errln("ERROR: getDynamicClassID() didn't return the expected value");
|
| - }
|
| -
|
| - delete test;
|
| - delete def;
|
| - delete fr;
|
| - delete it;
|
| - delete de;
|
| -}
|
| -
|
| -/**
|
| - * Test hiding of parse() and format() APIs in the Format hierarchy.
|
| - * We test the entire hierarchy, even though this test is located in
|
| - * the DateFormat API test.
|
| - */
|
| -void
|
| -IntlTestDateFormatAPI::TestNameHiding(void) {
|
| -
|
| - // N.B.: This test passes if it COMPILES, since it's a test of
|
| - // compile-time name hiding.
|
| -
|
| - UErrorCode status = U_ZERO_ERROR;
|
| - Formattable dateObj(0, Formattable::kIsDate);
|
| - Formattable numObj(3.1415926535897932384626433832795);
|
| - Formattable obj;
|
| - UnicodeString str;
|
| - FieldPosition fpos;
|
| - ParsePosition ppos;
|
| -
|
| - // DateFormat calling Format API
|
| - {
|
| - logln("DateFormat");
|
| - DateFormat *dateFmt = DateFormat::createInstance();
|
| - if (dateFmt) {
|
| - dateFmt->format(dateObj, str, status);
|
| - dateFmt->format(dateObj, str, fpos, status);
|
| - delete dateFmt;
|
| - } else {
|
| - dataerrln("FAIL: Can't create DateFormat");
|
| - }
|
| - }
|
| -
|
| - // SimpleDateFormat calling Format & DateFormat API
|
| - {
|
| - logln("SimpleDateFormat");
|
| - status = U_ZERO_ERROR;
|
| - SimpleDateFormat sdf(status);
|
| - if (U_SUCCESS(status)) {
|
| - // Format API
|
| - sdf.format(dateObj, str, status);
|
| - sdf.format(dateObj, str, fpos, status);
|
| - // DateFormat API
|
| - sdf.format((UDate)0, str, fpos);
|
| - sdf.format((UDate)0, str);
|
| - sdf.parse(str, status);
|
| - sdf.parse(str, ppos);
|
| - sdf.getNumberFormat();
|
| - } else {
|
| - dataerrln("FAIL: Can't create SimpleDateFormat() - %s", u_errorName(status));
|
| - }
|
| - }
|
| -
|
| - // NumberFormat calling Format API
|
| - {
|
| - logln("NumberFormat");
|
| - status = U_ZERO_ERROR;
|
| - NumberFormat *fmt = NumberFormat::createInstance(status);
|
| - if (fmt) {
|
| - fmt->format(numObj, str, status);
|
| - fmt->format(numObj, str, fpos, status);
|
| - delete fmt;
|
| - } else {
|
| - dataerrln("FAIL: Can't create NumberFormat()");
|
| - }
|
| - }
|
| -
|
| - // DecimalFormat calling Format & NumberFormat API
|
| - {
|
| - logln("DecimalFormat");
|
| - status = U_ZERO_ERROR;
|
| - DecimalFormat fmt(status);
|
| - if(U_SUCCESS(status)) {
|
| - // Format API
|
| - fmt.format(numObj, str, status);
|
| - fmt.format(numObj, str, fpos, status);
|
| - // NumberFormat API
|
| - fmt.format(2.71828, str);
|
| - fmt.format((int32_t)1234567, str);
|
| - fmt.format(1.41421, str, fpos);
|
| - fmt.format((int32_t)9876543, str, fpos);
|
| - fmt.parse(str, obj, ppos);
|
| - fmt.parse(str, obj, status);
|
| - } else {
|
| - errcheckln(status, "FAIL: Couldn't instantiate DecimalFormat, error %s. Quitting test", u_errorName(status));
|
| - }
|
| - }
|
| -
|
| - // ChoiceFormat calling Format & NumberFormat API
|
| - {
|
| - logln("ChoiceFormat");
|
| - status = U_ZERO_ERROR;
|
| - ChoiceFormat fmt("0#foo|1#foos|2#foos", status);
|
| - // Format API
|
| - fmt.format(numObj, str, status);
|
| - fmt.format(numObj, str, fpos, status);
|
| - // NumberFormat API
|
| - fmt.format(2.71828, str);
|
| - fmt.format((int32_t)1234567, str);
|
| - fmt.format(1.41421, str, fpos);
|
| - fmt.format((int32_t)9876543, str, fpos);
|
| - fmt.parse(str, obj, ppos);
|
| - fmt.parse(str, obj, status);
|
| - }
|
| -
|
| - // MessageFormat calling Format API
|
| - {
|
| - logln("MessageFormat");
|
| - status = U_ZERO_ERROR;
|
| - MessageFormat fmt("", status);
|
| - // Format API
|
| - // We use dateObj, which MessageFormat should reject.
|
| - // We're testing name hiding, not the format method.
|
| - fmt.format(dateObj, str, status);
|
| - fmt.format(dateObj, str, fpos, status);
|
| - }
|
| -}
|
| -
|
| -#endif /* #if !UCONFIG_NO_FORMATTING */
|
|
|