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