blob: ff042ef6b963114ac6630631f3b1bacca9901c2c [file] [log] [blame]
/*
********************************************************************
* COPYRIGHT:
* (C) Copyright Taligent, Inc., 1997
* (C) Copyright International Business Machines Corporation, 1997 - 1998
* Licensed Material - Program-Property of IBM - All Rights Reserved.
* US Government Users Restricted Rights - Use, duplication, or disclosure
* restricted by GSA ADP Schedule Contract with IBM Corp.
*
********************************************************************
*/
#ifndef _NUMBERFORMATTEST_
#define _NUMBERFORMATTEST_
#include "utypes.h"
#include "caltztst.h"
class NumberFormat;
class DecimalFormat;
/**
* Performs various in-depth test on NumberFormat
**/
class NumberFormatTest: public CalendarTimeZoneTest {
// IntlTest override
void runIndexedTest( int32_t index, bool_t exec, char* &name, char* par );
public:
/*
* Test the handling of quotes
**/
virtual void TestQuotes();
/**
* Test patterns with exponential representation
**/
virtual void TestExponential();
/**
* Test handling of patterns with currency symbols
**/
virtual void TestCurrencySign();
/**
* Test different format patterns
**/
virtual void TestPatterns();
public: // package
// internal utility routine
static UnicodeString& escape(UnicodeString& s);
public:
/**
* Test localized currency patterns.
*/
virtual void TestCurrency();
/**
* Do rudimentary testing of parsing.
*/
virtual void TestParse();
/**
* Test proper rounding by the format method.
*/
virtual void TestRounding487();
// New tests for alphaWorks upgrade
virtual void TestExponent();
virtual void TestScientific();
void expect(NumberFormat& fmt, const UnicodeString& str, int32_t n);
void expect(NumberFormat& fmt, const Formattable& n,
const UnicodeString& exp);
void expect(NumberFormat* fmt, const Formattable& n,
const UnicodeString& exp, UErrorCode);
void TestPad();
void TestPatterns2();
void expectPad(DecimalFormat& fmt, const UnicodeString& pat,
int32_t pos);
void expectPad(DecimalFormat& fmt, const UnicodeString& pat,
int32_t pos, int32_t width, UChar pad);
void expectPat(DecimalFormat& fmt, const UnicodeString& exp);
enum { ILLEGAL = -1 };
public: // package
// internal subtest used by TestRounding487
virtual void roundingTest(NumberFormat& nf, double x, int32_t maxFractionDigits, const char* expected);
};
#endif // _NUMBERFORMATTEST_