| // © 2016 and later: Unicode, Inc. and others. |
| // License & terms of use: http://www.unicode.org/copyright.html |
| /* |
| ******************************************************************************* |
| * Copyright (C) 1996-2015, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| */ |
| |
| #ifndef ITRBNF_H |
| #define ITRBNF_H |
| |
| #include "unicode/utypes.h" |
| |
| #if !UCONFIG_NO_FORMATTING |
| |
| #include "intltest.h" |
| #include "unicode/rbnf.h" |
| |
| |
| class IntlTestRBNF : public IntlTest { |
| public: |
| |
| // IntlTest override |
| virtual void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par); |
| |
| #if U_HAVE_RBNF |
| /** |
| * Perform an API test |
| */ |
| virtual void TestAPI(); |
| |
| void TestMultiplePluralRules(); |
| |
| /** |
| * Perform a simple spot check on the FractionalRuleSet logic |
| */ |
| virtual void TestFractionalRuleSet(); |
| |
| #if 0 |
| /** |
| * Perform API tests on llong |
| */ |
| virtual void TestLLong(); |
| virtual void TestLLongConstructors(); |
| virtual void TestLLongSimpleOperators(); |
| #endif |
| |
| /** |
| * Perform a simple spot check on the English spellout rules |
| */ |
| void TestEnglishSpellout(); |
| |
| /** |
| * Perform a simple spot check on the English ordinal-abbreviation rules |
| */ |
| void TestOrdinalAbbreviations(); |
| |
| /** |
| * Perform a simple spot check on the duration-formatting rules |
| */ |
| void TestDurations(); |
| |
| /** |
| * Perform a simple spot check on the Spanish spellout rules |
| */ |
| void TestSpanishSpellout(); |
| |
| /** |
| * Perform a simple spot check on the French spellout rules |
| */ |
| void TestFrenchSpellout(); |
| |
| /** |
| * Perform a simple spot check on the Swiss French spellout rules |
| */ |
| void TestSwissFrenchSpellout(); |
| |
| /** |
| * Check that Belgian French matches Swiss French spellout rules |
| */ |
| void TestBelgianFrenchSpellout(); |
| |
| /** |
| * Perform a simple spot check on the Italian spellout rules |
| */ |
| void TestItalianSpellout(); |
| |
| /** |
| * Perform a simple spot check on the Portuguese spellout rules |
| */ |
| void TestPortugueseSpellout(); |
| |
| /** |
| * Perform a simple spot check on the German spellout rules |
| */ |
| void TestGermanSpellout(); |
| |
| /** |
| * Perform a simple spot check on the Thai spellout rules |
| */ |
| void TestThaiSpellout(); |
| |
| /** |
| * Perform a simple spot check on the Swedish spellout rules |
| */ |
| void TestSwedishSpellout(); |
| |
| /** |
| * Perform a simple spot check on small values |
| */ |
| void TestSmallValues(); |
| |
| /** |
| * Test localizations using string data. |
| */ |
| void TestLocalizations(); |
| |
| /** |
| * Test that all locales construct ok. |
| */ |
| void TestAllLocales(); |
| |
| /** |
| * Test that hebrew fractions format without trailing '<' |
| */ |
| void TestHebrewFraction(); |
| |
| /** |
| * Regression test, don't truncate |
| * when doing multiplier substitution to a number format rule. |
| */ |
| void TestMultiplierSubstitution(); |
| |
| /** |
| * Test the setDecimalFormatSymbols in RBNF |
| */ |
| void TestSetDecimalFormatSymbols(); |
| |
| /** |
| * Test the plural rules in RBNF |
| */ |
| void TestPluralRules(); |
| |
| void TestInfinityNaN(); |
| void TestVariableDecimalPoint(); |
| void TestRounding(); |
| void TestLargeNumbers(); |
| void TestCompactDecimalFormatStyle(); |
| void TestParseFailure(); |
| void TestMinMaxIntegerDigitsIgnored(); |
| |
| protected: |
| virtual void doTest(RuleBasedNumberFormat* formatter, const char* const testData[][2], UBool testParsing); |
| virtual void doLenientParseTest(RuleBasedNumberFormat* formatter, const char* testData[][2]); |
| |
| /* U_HAVE_RBNF */ |
| #else |
| |
| virtual void TestRBNFDisabled(); |
| |
| /* U_HAVE_RBNF */ |
| #endif |
| }; |
| |
| #endif /* #if !UCONFIG_NO_FORMATTING */ |
| |
| // endif ITRBNF_H |
| #endif |