tufmtts.h revision c73f511526464f8e56c242df80552e9b0d94ae3d
1/********************************************************************
2 * COPYRIGHT:
3 * Copyright (c) 2008-2013, International Business Machines Corporation
4 * and others. All Rights Reserved.
5 ********************************************************************/
6
7#ifndef __INTLTESTTIMEUNITTEST__
8#define __INTLTESTTIMEUNITTEST__
9
10
11#if !UCONFIG_NO_FORMATTING
12
13#include "unicode/utypes.h"
14#include "unicode/locid.h"
15#include "intltest.h"
16
17/**
18 * Test basic functionality of various API functions
19 **/
20class TimeUnitTest: public IntlTest {
21    void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
22
23public:
24    /**
25     * Performs basic tests
26     **/
27    void testBasic();
28
29    /**
30     * Performs API tests
31     **/
32    void testAPI();
33
34    /**
35     * Performs tests for Greek
36     * This tests that requests for short unit names correctly fall back
37     * to long unit names for a locale where the locale data does not
38     * provide short unit names. As of CLDR 1.9, Greek is one such language.
39     **/
40    void testGreekWithFallback();
41
42    /**
43     * Performs tests for Greek
44     * This tests that if the plural count listed in time unit format does not
45     * match those in the plural rules for the locale, those plural count in
46     * time unit format will be ingored and subsequently, fall back will kick in
47     * which is tested above.
48     * Without data sanitization, setNumberFormat() would crash.
49     * As of CLDR shiped in ICU4.8, Greek is one such language.
50     */
51    void testGreekWithSanitization();
52
53    /**
54     * Performs unit test for ticket 10219 making sure that plurals work
55     * correctly with rounding.
56     */
57    void test10219Plurals();
58
59};
60
61#endif /* #if !UCONFIG_NO_FORMATTING */
62
63#endif
64