1/*
2 *******************************************************************************
3 * Copyright (C) 1996-2012, International Business Machines Corporation and    *
4 * others. All Rights Reserved.                                                *
5 *******************************************************************************
6 */
7
8#ifndef ITRBNF_H
9#define ITRBNF_H
10
11#include "unicode/utypes.h"
12
13#if !UCONFIG_NO_FORMATTING
14
15#include "intltest.h"
16#include "unicode/rbnf.h"
17
18
19class IntlTestRBNF : public IntlTest {
20 public:
21
22  // IntlTest override
23  virtual void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par);
24
25#if U_HAVE_RBNF
26  /**
27   * Perform an API test
28   */
29  virtual void TestAPI();
30
31  /**
32   * Perform a simple spot check on the FractionalRuleSet logic
33   */
34  virtual void TestFractionalRuleSet();
35
36#if 0
37  /**
38   * Perform API tests on llong
39   */
40  virtual void TestLLong();
41  virtual void TestLLongConstructors();
42  virtual void TestLLongSimpleOperators();
43#endif
44
45  /**
46   * Perform a simple spot check on the English spellout rules
47   */
48  virtual void TestEnglishSpellout();
49
50  /**
51   * Perform a simple spot check on the English ordinal-abbreviation rules
52   */
53  virtual void TestOrdinalAbbreviations();
54
55  /**
56   * Perform a simple spot check on the duration-formatting rules
57   */
58  virtual void TestDurations();
59
60  /**
61   * Perform a simple spot check on the Spanish spellout rules
62   */
63  virtual void TestSpanishSpellout();
64
65  /**
66   * Perform a simple spot check on the French spellout rules
67   */
68  virtual void TestFrenchSpellout();
69
70  /**
71   * Perform a simple spot check on the Swiss French spellout rules
72   */
73  virtual void TestSwissFrenchSpellout();
74
75  /**
76   * Check that Belgian French matches Swiss French spellout rules
77   */
78  virtual void TestBelgianFrenchSpellout();
79
80  /**
81   * Perform a simple spot check on the Italian spellout rules
82   */
83  virtual void TestItalianSpellout();
84
85  /**
86   * Perform a simple spot check on the Portuguese spellout rules
87   */
88  virtual void TestPortugueseSpellout();
89
90  /**
91   * Perform a simple spot check on the German spellout rules
92   */
93  virtual void TestGermanSpellout();
94
95  /**
96   * Perform a simple spot check on the Thai spellout rules
97   */
98  virtual void TestThaiSpellout();
99
100  /**
101   * Perform a simple spot check on the Swedish spellout rules
102   */
103  virtual void TestSwedishSpellout();
104
105  /**
106   * Perform a simple spot check on small values
107   */
108  virtual void TestSmallValues();
109
110  /**
111   * Test localizations using string data.
112   */
113  virtual void TestLocalizations();
114
115  /**
116   * Test that all locales construct ok.
117   */
118  virtual void TestAllLocales();
119
120  /**
121   * Test that hebrew fractions format without trailing '<'
122   */
123  virtual void TestHebrewFraction();
124
125  /**
126   * Regression test, don't truncate
127   * when doing multiplier substitution to a number format rule.
128   */
129  virtual void TestMultiplierSubstitution();
130
131  /**
132   * Test the setDecimalFormatSymbols in RBNF
133   */
134  virtual void TestSetDecimalFormatSymbols();
135
136 protected:
137  virtual void doTest(RuleBasedNumberFormat* formatter, const char* const testData[][2], UBool testParsing);
138  virtual void doLenientParseTest(RuleBasedNumberFormat* formatter, const char* testData[][2]);
139
140/* U_HAVE_RBNF */
141#else
142
143  virtual void TestRBNFDisabled();
144
145/* U_HAVE_RBNF */
146#endif
147};
148
149#endif /* #if !UCONFIG_NO_FORMATTING */
150
151// endif ITRBNF_H
152#endif
153