// © 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