150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/******************************************************************** 250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * COPYRIGHT: 354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * Copyright (c) 2010-2012, International Business Machines Corporation and 450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * others. All Rights Reserved. 550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho ********************************************************************/ 650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho// 850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho// file: dcfmtest.h 950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho// 1050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho// Data driven decimal formatter test. 1150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho// Includes testing of both parsing and formatting. 1250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho// Tests are in the text file dcfmtest.txt, in the source/test/testdata/ directory. 1350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho// 1450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 1550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#ifndef DCFMTEST_H 1650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#define DCFMTEST_H 1750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 1850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include "unicode/utypes.h" 1950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if !UCONFIG_NO_REGULAR_EXPRESSIONS 2050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 2150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include "intltest.h" 2250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 2350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 2450294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoclass DecimalFormatTest: public IntlTest { 2550294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehopublic: 2650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 2750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho DecimalFormatTest(); 2850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho virtual ~DecimalFormatTest(); 2950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 3050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho virtual void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par = NULL ); 3150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 3250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho // The following are test functions that are visible from the intltest test framework. 3350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho virtual void DataDrivenTests(); 3450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 3550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho // The following functions are internal to the decimal format tests. 3650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho virtual UChar *ReadAndConvertFile(const char *fileName, int32_t &len, UErrorCode &status); 3750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho virtual const char *getPath(char buffer[2048], const char *filename); 3850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho virtual void execParseTest(int32_t lineNum, 3950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho const UnicodeString &inputText, 4050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho const UnicodeString &expectedType, 4150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho const UnicodeString &expectedDecimal, 4250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho UErrorCode &status); 4350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 4454dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusprivate: 4554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius enum EFormatInputType { 4654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius kFormattable, 4754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius kStringPiece 4854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius }; 4954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 5054dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliuspublic: 5150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho virtual void execFormatTest(int32_t lineNum, 5250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho const UnicodeString &pattern, 5350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho const UnicodeString &round, 5450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho const UnicodeString &input, 5550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho const UnicodeString &expected, 5654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius EFormatInputType inType, 5750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho UErrorCode &status); 5850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho}; 5950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 6050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif // !UCONFIG_NO_REGULAR_EXPRESSIONS 6150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif 62