X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/374ca955a76ecab1204ca8bfa63ff9238d998416..4388f060552cc537e71e957d32f35e9d75a61233:/icuSources/test/intltest/tsnmfmt.cpp?ds=sidebyside diff --git a/icuSources/test/intltest/tsnmfmt.cpp b/icuSources/test/intltest/tsnmfmt.cpp index 57d49ecc..9e417a3c 100644 --- a/icuSources/test/intltest/tsnmfmt.cpp +++ b/icuSources/test/intltest/tsnmfmt.cpp @@ -1,6 +1,6 @@ /*********************************************************************** * COPYRIGHT: - * Copyright (c) 1997-2004, International Business Machines Corporation + * Copyright (c) 1997-2011, International Business Machines Corporation * and others. All Rights Reserved. ***********************************************************************/ @@ -11,6 +11,7 @@ #include "unicode/decimfmt.h" #include "tsnmfmt.h" #include "putilimp.h" +#include "cstring.h" #include #include @@ -93,6 +94,14 @@ IntlTestNumberFormat::testLocale(/* char* par, */const Locale& locale, const Uni fStatus = U_ZERO_ERROR; fFormat = NumberFormat::createPercentInstance(locale, fStatus); testFormat(/* par */); + + if (uprv_strcmp(locale.getName(), "en_US_POSIX") != 0) { + name = "Scientific test"; + logln((UnicodeString)name + " (" + localeName + ")"); + fStatus = U_ZERO_ERROR; + fFormat = NumberFormat::createScientificInstance(locale, fStatus); + testFormat(/* par */); + } } double IntlTestNumberFormat::randDouble() @@ -150,7 +159,7 @@ IntlTestNumberFormat::testFormat(/* char* par */) { if (U_FAILURE(fStatus)) { - errln((UnicodeString)"**** FAIL: createXxxInstance failed."); + dataerrln((UnicodeString)"**** FAIL: createXxxInstance failed. - " + u_errorName(fStatus)); if (fFormat != 0) errln("**** FAIL: Non-null format returned by createXxxInstance upon failure."); delete fFormat; @@ -170,7 +179,7 @@ IntlTestNumberFormat::testFormat(/* char* par */) DecimalFormat *s = (DecimalFormat*)fFormat; logln((UnicodeString)" Pattern " + s->toPattern(str)); -#if defined(OS390) || defined(OS400) +#if U_PF_OS390 <= U_PLATFORM && U_PLATFORM <= U_PF_OS400 tryIt(-2.02147304840132e-68); tryIt(3.88057859588817e-68); // Test rounding when only some digits are shown because exponent is close to -maxfrac tryIt(-2.64651110485945e+65); // Overflows to +INF when shown as a percent @@ -187,7 +196,7 @@ IntlTestNumberFormat::testFormat(/* char* par */) // These fail due to round-off // The least significant digit drops by one during each format-parse cycle. // Both numbers DON'T have a round-off problem when multiplied by 100! (shown as %) -#ifdef OS390 +#if U_PLATFORM == U_PF_OS390 tryIt(-9.18228054496402e+64); tryIt(-9.69413034454191e+64); #else @@ -195,7 +204,7 @@ IntlTestNumberFormat::testFormat(/* char* par */) tryIt(-9.69413034454191e+273); #endif -#ifndef OS390 +#if U_PLATFORM != U_PF_OS390 tryIt(1.234e-200); tryIt(-2.3e-168); @@ -210,6 +219,8 @@ IntlTestNumberFormat::testFormat(/* char* par */) tryIt(1.234e-50); tryIt(9.99999999999996); tryIt(9.999999999999996); + + tryIt(5.06e-27); tryIt((int32_t)INT32_MIN); tryIt((int32_t)INT32_MAX); @@ -401,7 +412,7 @@ void IntlTestNumberFormat::testAvailableLocales(/* char* par */) logln(all); } else - errln((UnicodeString)"**** FAIL: Zero available locales or null array pointer"); + dataerrln((UnicodeString)"**** FAIL: Zero available locales or null array pointer"); } void IntlTestNumberFormat::monsterTest(/* char* par */)