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
20class 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