1 /* 2 ******************************************************************************* 3 * Copyright (C) 1996-2015, 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 void TestMultiplePluralRules(); 32 33 /** 34 * Perform a simple spot check on the FractionalRuleSet logic 35 */ 36 virtual void TestFractionalRuleSet(); 37 38 #if 0 39 /** 40 * Perform API tests on llong 41 */ 42 virtual void TestLLong(); 43 virtual void TestLLongConstructors(); 44 virtual void TestLLongSimpleOperators(); 45 #endif 46 47 /** 48 * Perform a simple spot check on the English spellout rules 49 */ 50 void TestEnglishSpellout(); 51 52 /** 53 * Perform a simple spot check on the English ordinal-abbreviation rules 54 */ 55 void TestOrdinalAbbreviations(); 56 57 /** 58 * Perform a simple spot check on the duration-formatting rules 59 */ 60 void TestDurations(); 61 62 /** 63 * Perform a simple spot check on the Spanish spellout rules 64 */ 65 void TestSpanishSpellout(); 66 67 /** 68 * Perform a simple spot check on the French spellout rules 69 */ 70 void TestFrenchSpellout(); 71 72 /** 73 * Perform a simple spot check on the Swiss French spellout rules 74 */ 75 void TestSwissFrenchSpellout(); 76 77 /** 78 * Check that Belgian French matches Swiss French spellout rules 79 */ 80 void TestBelgianFrenchSpellout(); 81 82 /** 83 * Perform a simple spot check on the Italian spellout rules 84 */ 85 void TestItalianSpellout(); 86 87 /** 88 * Perform a simple spot check on the Portuguese spellout rules 89 */ 90 void TestPortugueseSpellout(); 91 92 /** 93 * Perform a simple spot check on the German spellout rules 94 */ 95 void TestGermanSpellout(); 96 97 /** 98 * Perform a simple spot check on the Thai spellout rules 99 */ 100 void TestThaiSpellout(); 101 102 /** 103 * Perform a simple spot check on the Swedish spellout rules 104 */ 105 void TestSwedishSpellout(); 106 107 /** 108 * Perform a simple spot check on small values 109 */ 110 void TestSmallValues(); 111 112 /** 113 * Test localizations using string data. 114 */ 115 void TestLocalizations(); 116 117 /** 118 * Test that all locales construct ok. 119 */ 120 void TestAllLocales(); 121 122 /** 123 * Test that hebrew fractions format without trailing '<' 124 */ 125 void TestHebrewFraction(); 126 127 /** 128 * Regression test, don't truncate 129 * when doing multiplier substitution to a number format rule. 130 */ 131 void TestMultiplierSubstitution(); 132 133 /** 134 * Test the setDecimalFormatSymbols in RBNF 135 */ 136 void TestSetDecimalFormatSymbols(); 137 138 /** 139 * Test the plural rules in RBNF 140 */ 141 void TestPluralRules(); 142 143 void TestInfinityNaN(); 144 void TestVariableDecimalPoint(); 145 void TestRounding(); 146 147 protected: 148 virtual void doTest(RuleBasedNumberFormat* formatter, const char* const testData[][2], UBool testParsing); 149 virtual void doLenientParseTest(RuleBasedNumberFormat* formatter, const char* testData[][2]); 150 151 /* U_HAVE_RBNF */ 152 #else 153 154 virtual void TestRBNFDisabled(); 155 156 /* U_HAVE_RBNF */ 157 #endif 158 }; 159 160 #endif /* #if !UCONFIG_NO_FORMATTING */ 161 162 // endif ITRBNF_H 163 #endif 164