1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4  *******************************************************************************
5  * Copyright (C) 1996-2006, International Business Machines Corporation and    *
6  * others. All Rights Reserved.                                                *
7  *******************************************************************************
8  */
9 
10 #ifndef ITRBNFRT_H
11 #define ITRBNFRT_H
12 
13 #include "unicode/utypes.h"
14 
15 #if !UCONFIG_NO_FORMATTING
16 
17 #include "intltest.h"
18 #include "unicode/rbnf.h"
19 
20 class RbnfRoundTripTest : public IntlTest {
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 exhaustive round-trip test on the English spellout rules
28    */
29   virtual void TestEnglishSpelloutRT();
30 
31   /**
32    * Perform an exhaustive round-trip test on the duration-formatting rules
33    */
34   virtual void TestDurationsRT();
35 
36   /**
37    * Perform an exhaustive round-trip test on the Spanish spellout rules
38    */
39   virtual void TestSpanishSpelloutRT();
40 
41   /**
42    * Perform an exhaustive round-trip test on the French spellout rules
43    */
44   virtual void TestFrenchSpelloutRT();
45 
46   /**
47    * Perform an exhaustive round-trip test on the Swiss French spellout rules
48    */
49   virtual void TestSwissFrenchSpelloutRT();
50 
51   /**
52    * Perform an exhaustive round-trip test on the Italian spellout rules
53    */
54   virtual void TestItalianSpelloutRT();
55 
56   /**
57    * Perform an exhaustive round-trip test on the German spellout rules
58    */
59   virtual void TestGermanSpelloutRT();
60 
61   /**
62    * Perform an exhaustive round-trip test on the Swedish spellout rules
63    */
64   virtual void TestSwedishSpelloutRT();
65 
66   /**
67    * Perform an exhaustive round-trip test on the Dutch spellout rules
68    */
69   virtual void TestDutchSpelloutRT();
70 
71   /**
72    * Perform an exhaustive round-trip test on the Japanese spellout rules
73    */
74   virtual void TestJapaneseSpelloutRT();
75 
76   /**
77    * Perform an exhaustive round-trip test on the Russian spellout rules
78    */
79   virtual void TestRussianSpelloutRT();
80 
81   /**
82    * Perform an exhaustive round-trip test on the Portuguese spellout rules
83    */
84   virtual void TestPortugueseSpelloutRT();
85 
86  protected:
87   void doTest(const RuleBasedNumberFormat* formatter,  double lowLimit, double highLimit);
88 
89   /* U_HAVE_RBNF */
90 #else
91 
92   void TestRBNFDisabled();
93 
94   /* U_HAVE_RBNF */
95 #endif
96 };
97 
98 #endif /* #if !UCONFIG_NO_FORMATTING */
99 
100 // endif ITRBNFRT_H
101 #endif
102