| /******************************************************************** |
| * COPYRIGHT: |
| * Copyright (c) 1997-2003, International Business Machines Corporation and |
| * others. All Rights Reserved. |
| ********************************************************************/ |
| |
| #ifndef _INTLTESTNUMBERFORMAT |
| #define _INTLTESTNUMBERFORMAT |
| |
| |
| #include "unicode/utypes.h" |
| |
| #if !UCONFIG_NO_FORMATTING |
| |
| #include "unicode/numfmt.h" |
| #include "unicode/locid.h" |
| #include "intltest.h" |
| |
| |
| /** |
| * This test does round-trip testing (format -> parse -> format -> parse -> etc.) of |
| * NumberFormat. |
| */ |
| class IntlTestNumberFormat: public IntlTest { |
| void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); |
| |
| private: |
| |
| /** |
| * call tryIt with many variations, called by testLocale |
| **/ |
| void testFormat(/* char* par */); |
| /** |
| * perform tests using aNumber and fFormat, called in many variations |
| **/ |
| void tryIt(double aNumber); |
| /** |
| * perform tests using aNumber and fFormat, called in many variations |
| **/ |
| void tryIt(int32_t aNumber); |
| /** |
| * test NumberFormat::getAvailableLocales |
| **/ |
| void testAvailableLocales(/* char* par */); |
| /** |
| * call testLocale for all locales |
| **/ |
| void monsterTest(/* char *par */); |
| /** |
| * call testFormat for currency, percent and plain number instances |
| **/ |
| void testLocale(/* char *par, */const Locale& locale, const UnicodeString& localeName); |
| |
| NumberFormat* fFormat; |
| UErrorCode fStatus; |
| Locale fLocale; |
| |
| public: |
| |
| virtual ~IntlTestNumberFormat(); |
| |
| /* |
| * Return a random double that isn't too large. |
| */ |
| static double getSafeDouble(double smallerThanMax); |
| |
| /* |
| * Return a random double |
| **/ |
| static double randDouble(); |
| |
| /* |
| * Return a random uint32_t |
| **/ |
| static uint32_t randLong(); |
| |
| /** |
| * Return a random double 0 <= x < 1.0 |
| **/ |
| static double randFraction() |
| { |
| return (double)randLong() / (double)0xFFFFFFFF; |
| } |
| |
| }; |
| |
| #endif /* #if !UCONFIG_NO_FORMATTING */ |
| |
| #endif |