]>
git.saurik.com Git - apple/icu.git/blob - icuSources/test/intltest/numfmtst.h
   1 /************************************************************************ 
   3  * Copyright (c) 1997-2012, International Business Machines Corporation 
   4  * and others. All Rights Reserved. 
   5  ************************************************************************/ 
   7 #ifndef _NUMBERFORMATTEST_ 
   8 #define _NUMBERFORMATTEST_ 
  10 #include "unicode/utypes.h" 
  12 #if !UCONFIG_NO_FORMATTING 
  14 #include "unicode/numfmt.h" 
  15 #include "unicode/decimfmt.h" 
  19  * Performs various in-depth test on NumberFormat 
  21 class NumberFormatTest
: public CalendarTimeZoneTest 
{ 
  24     void runIndexedTest( int32_t index
, UBool exec
, const char* &name
, char* par 
); 
  28      * Test APIs (to increase code coverage) 
  32     void TestCoverage(void); 
  35      * Test the handling of quotes 
  37     void TestQuotes(void); 
  39      * Test patterns with exponential representation 
  41     void TestExponential(void); 
  43      * Test handling of patterns with currency symbols 
  45     void TestCurrencySign(void); 
  47      * Test different format patterns 
  49     void TestPatterns(void); 
  51      * API coverage for DigitList 
  53     //void TestDigitList(void); 
  56      * Test localized currency patterns. 
  58     void TestCurrency(void); 
  61      * Test the Currency object handling, new as of ICU 2.2. 
  63     void TestCurrencyObject(void); 
  65     void TestCurrencyPatterns(void); 
  68      * Do rudimentary testing of parsing. 
  72      * Test proper rounding by the format method. 
  74     void TestRounding487(void); 
  76     // New tests for alphaWorks upgrade 
  77     void TestExponent(void); 
  79     void TestScientific(void); 
  81     void TestScientific2(void); 
  83     void TestScientificGrouping(void); 
  87     void TestSurrogateSupport(void); 
  90      * Test the functioning of the secondary grouping value. 
  92     void TestSecondaryGrouping(void); 
  94     void TestWhiteSpaceParsing(void); 
  96     void TestComplexCurrency(void); 
  99     void TestPatterns2(void); 
 102      * Test currency registration. 
 104     void TestRegCurrency(void); 
 106     void TestCurrencyNames(void); 
 108     void TestCurrencyAmount(void); 
 110     void TestCurrencyUnit(void); 
 112     void TestSymbolsWithBadLocale(void); 
 114     void TestAdoptDecimalFormatSymbols(void); 
 116     void TestPerMill(void); 
 118     void TestIllegalPatterns(void); 
 120     void TestCases(void); 
 122     void TestJB3832(void); 
 126     void TestHostClone(void); 
 128     void TestCurrencyFormat(void); 
 130     /* Port of ICU4J rounding test. */ 
 131     void TestRounding(void); 
 133     void TestRoundingPattern(void); 
 135     void TestNonpositiveMultiplier(void); 
 137     void TestNumberingSystems(); 
 140     void TestSpaceParsing(); 
 141     void TestMultiCurrencySign(); 
 142     void TestCurrencyFormatForMixParsing(); 
 143     void TestDecimalFormatCurrencyParse(); 
 144     void TestCurrencyIsoPluralFormat(); 
 145     void TestCurrencyParsing(); 
 146     void TestParseCurrencyInUCurr(); 
 147     void TestFormatAttributes(); 
 148     void TestFieldPositionIterator(); 
 150     void TestLenientParse(); 
 153     void TestCurrencyFractionDigits(); 
 155     void TestExponentParse(); 
 156     void TestExplicitParents(); 
 157     void TestAvailableNumberingSystems(); 
 159     void TestFormatFastpaths(); 
 161     void TestFormattableSize(); 
 167     static UBool 
equalValue(const Formattable
& a
, const Formattable
& b
); 
 169     void expectPositions(FieldPositionIterator
& iter
, int32_t *values
, int32_t tupleCount
, 
 170                          const UnicodeString
& str
); 
 172     void expectPosition(FieldPosition
& pos
, int32_t id
, int32_t start
, int32_t limit
, 
 173                         const UnicodeString
& str
); 
 175     void expect2(NumberFormat
& fmt
, const Formattable
& n
, const UnicodeString
& str
); 
 177     void expect3(NumberFormat
& fmt
, const Formattable
& n
, const UnicodeString
& str
); 
 179     void expect2(NumberFormat
& fmt
, const Formattable
& n
, const char* str
) { 
 180         expect2(fmt
, n
, UnicodeString(str
, "")); 
 183     void expect2(NumberFormat
* fmt
, const Formattable
& n
, const UnicodeString
& str
, UErrorCode ec
); 
 185     void expect2(NumberFormat
* fmt
, const Formattable
& n
, const char* str
, UErrorCode ec
) { 
 186         expect2(fmt
, n
, UnicodeString(str
, ""), ec
); 
 189     void expect(NumberFormat
& fmt
, const UnicodeString
& str
, const Formattable
& n
); 
 191     void expect(NumberFormat
& fmt
, const char *str
, const Formattable
& n
) { 
 192         expect(fmt
, UnicodeString(str
, ""), n
); 
 195     void expect(NumberFormat
& fmt
, const Formattable
& n
, 
 196                 const UnicodeString
& exp
, UBool rt
=TRUE
); 
 198     void expect(NumberFormat
& fmt
, const Formattable
& n
, 
 199                 const char *exp
, UBool rt
=TRUE
) { 
 200         expect(fmt
, n
, UnicodeString(exp
, ""), rt
); 
 203     void expect(NumberFormat
* fmt
, const Formattable
& n
, 
 204                 const UnicodeString
& exp
, UErrorCode
); 
 206     void expect(NumberFormat
* fmt
, const Formattable
& n
, 
 207                 const char *exp
, UErrorCode errorCode
) { 
 208         expect(fmt
, n
, UnicodeString(exp
, ""), errorCode
); 
 211     void expectCurrency(NumberFormat
& nf
, const Locale
& locale
, 
 212                         double value
, const UnicodeString
& string
); 
 214     void expectPad(DecimalFormat
& fmt
, const UnicodeString
& pat
, 
 215                    int32_t pos
, int32_t width
, UChar pad
); 
 217     void expectPad(DecimalFormat
& fmt
, const char *pat
, 
 218                    int32_t pos
, int32_t width
, UChar pad
) { 
 219         expectPad(fmt
, UnicodeString(pat
, ""), pos
, width
, pad
); 
 222     void expectPad(DecimalFormat
& fmt
, const UnicodeString
& pat
, 
 223                    int32_t pos
, int32_t width
, const UnicodeString
& pad
); 
 225     void expectPad(DecimalFormat
& fmt
, const char *pat
, 
 226                    int32_t pos
, int32_t width
, const UnicodeString
& pad
) { 
 227         expectPad(fmt
, UnicodeString(pat
, ""), pos
, width
, pad
); 
 230     void expectPat(DecimalFormat
& fmt
, const UnicodeString
& exp
); 
 232     void expectPat(DecimalFormat
& fmt
, const char *exp
) { 
 233         expectPat(fmt
, UnicodeString(exp
, "")); 
 236     void expectPad(DecimalFormat
& fmt
, const UnicodeString
& pat
, 
 239     void expectPad(DecimalFormat
& fmt
, const char *pat
, 
 241         expectPad(fmt
, pat
, pos
, 0, (UChar
)0); 
 244     void expect_rbnf(NumberFormat
& fmt
, const UnicodeString
& str
, const Formattable
& n
); 
 246     void expect_rbnf(NumberFormat
& fmt
, const Formattable
& n
, 
 247                 const UnicodeString
& exp
, UBool rt
=TRUE
); 
 249     // internal utility routine 
 250     static UnicodeString
& escape(UnicodeString
& s
); 
 252     enum { ILLEGAL 
= -1 }; 
 254     // internal subtest used by TestRounding487 
 255     void roundingTest(NumberFormat
& nf
, double x
, int32_t maxFractionDigits
, const char* expected
); 
 257     // internal rounding checking for TestRounding 
 258     void checkRounding(DecimalFormat
* df
, double base
, int iterations
, double increment
); 
 260     double checkRound(DecimalFormat
* df
, double iValue
, double lastParsed
); 
 263 #endif /* #if !UCONFIG_NO_FORMATTING */ 
 265 #endif // _NUMBERFORMATTEST_