185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho/********************************************************************
285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * COPYRIGHT:
359d709d503bab6e2b61931737e662dd293b40578ccornelius * Copyright (c) 2008-2013, International Business Machines Corporation
427f654740f2a26ad62a5c155af9199af9e69b889claireho * and others. All Rights Reserved.
585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho ********************************************************************/
685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#ifndef __INTLTESTTIMEUNITTEST__
885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#define __INTLTESTTIMEUNITTEST__
985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
1085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
1185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#if !UCONFIG_NO_FORMATTING
1285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
1385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#include "unicode/utypes.h"
1485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#include "unicode/locid.h"
1585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#include "intltest.h"
1685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
1785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho/**
1885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * Test basic functionality of various API functions
1985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho **/
2085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Hoclass TimeUnitTest: public IntlTest {
2185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
2285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
2385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Hopublic:
2485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    /**
2585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     * Performs basic tests
2685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     **/
2785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    void testBasic();
2885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
2985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    /**
3085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     * Performs API tests
3185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     **/
3285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    void testAPI();
3327f654740f2a26ad62a5c155af9199af9e69b889claireho
3427f654740f2a26ad62a5c155af9199af9e69b889claireho    /**
3527f654740f2a26ad62a5c155af9199af9e69b889claireho     * Performs tests for Greek
3627f654740f2a26ad62a5c155af9199af9e69b889claireho     * This tests that requests for short unit names correctly fall back
3727f654740f2a26ad62a5c155af9199af9e69b889claireho     * to long unit names for a locale where the locale data does not
3827f654740f2a26ad62a5c155af9199af9e69b889claireho     * provide short unit names. As of CLDR 1.9, Greek is one such language.
3927f654740f2a26ad62a5c155af9199af9e69b889claireho     **/
4054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius    void testGreekWithFallback();
4154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius
4254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius    /**
4354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius     * Performs tests for Greek
4454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius     * This tests that if the plural count listed in time unit format does not
4554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius     * match those in the plural rules for the locale, those plural count in
4654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius     * time unit format will be ingored and subsequently, fall back will kick in
4754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius     * which is tested above.
4854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius     * Without data sanitization, setNumberFormat() would crash.
4954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius     * As of CLDR shiped in ICU4.8, Greek is one such language.
5054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius     */
5154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius    void testGreekWithSanitization();
5259d709d503bab6e2b61931737e662dd293b40578ccornelius
53fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius    /**
54fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius     * Performs unit test for ticket 10219 making sure that plurals work
55fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius     * correctly with rounding.
56fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius     */
57fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius    void test10219Plurals();
58fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius
5985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho};
6085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
6185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#endif /* #if !UCONFIG_NO_FORMATTING */
6285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
6385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#endif
64