Home | History | Annotate | Download | only in intltest
      1 /*
      2  *******************************************************************************
      3  * Copyright (C) 1996-2007, 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  protected:
    132   virtual void doTest(RuleBasedNumberFormat* formatter, const char* const testData[][2], UBool testParsing);
    133   virtual void doLenientParseTest(RuleBasedNumberFormat* formatter, const char* testData[][2]);
    134 
    135 /* U_HAVE_RBNF */
    136 #else
    137 
    138   virtual void TestRBNFDisabled();
    139 
    140 /* U_HAVE_RBNF */
    141 #endif
    142 };
    143 
    144 #endif /* #if !UCONFIG_NO_FORMATTING */
    145 
    146 // endif ITRBNF_H
    147 #endif
    148