• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
19 class 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