Imported Upstream version 58.1
[platform/upstream/icu.git] / source / test / intltest / dcfmtest.h
1 // Copyright (C) 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /********************************************************************
4  * COPYRIGHT:
5  * Copyright (c) 2010-2012, International Business Machines Corporation and
6  * others. All Rights Reserved.
7  ********************************************************************/
8
9 //
10 //   file:  dcfmtest.h
11 //
12 //   Data driven decimal formatter test.
13 //      Includes testing of both parsing and formatting.
14 //      Tests are in the text file dcfmtest.txt, in the source/test/testdata/ directory.
15 //
16
17 #ifndef DCFMTEST_H
18 #define DCFMTEST_H
19
20 #include "unicode/utypes.h"
21 #if !UCONFIG_NO_REGULAR_EXPRESSIONS
22
23 #include "intltest.h"
24
25
26 class DecimalFormatTest: public IntlTest {
27 public:
28
29     DecimalFormatTest();
30     virtual ~DecimalFormatTest();
31
32     virtual void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par = NULL );
33
34     // The following are test functions that are visible from the intltest test framework.
35     virtual void DataDrivenTests();
36
37     // The following functions are internal to the decimal format tests.
38     virtual UChar *ReadAndConvertFile(const char *fileName, int32_t &len, UErrorCode &status);
39     virtual const char *getPath(char buffer[2048], const char *filename);
40     virtual void execParseTest(int32_t lineNum,
41                               const UnicodeString &inputText,
42                               const UnicodeString &expectedType,
43                               const UnicodeString &expectedDecimal,
44                               UErrorCode &status);
45
46 private:
47     enum EFormatInputType {
48         kFormattable,
49         kStringPiece
50     };
51
52 public:
53     virtual void execFormatTest(int32_t lineNum,
54                                const UnicodeString &pattern,
55                                const UnicodeString &round, 
56                                const UnicodeString &input,
57                                const UnicodeString &expected,
58                                EFormatInputType inType,
59                                UErrorCode &status);
60 };
61
62 #endif   // !UCONFIG_NO_REGULAR_EXPRESSIONS
63 #endif