1/********************************************************************
2 * COPYRIGHT:
3 * Copyright (c) 2008-2015 International Business Machines Corporation and
4 * others. All Rights Reserved.
5 ********************************************************************/
6
7#ifndef _INTLTESTDATEINTERVALFORMAT
8#define _INTLTESTDATEINTERVALFORMAT
9
10#include "unicode/utypes.h"
11#include "unicode/locid.h"
12
13#if !UCONFIG_NO_FORMATTING
14
15#include "intltest.h"
16
17/**
18 * Test basic functionality of various API functions
19 **/
20class DateIntervalFormatTest: public IntlTest {
21    void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
22
23public:
24    /**
25     * Performs tests on many API functions, see detailed comments in source code
26     **/
27    void testAPI();
28
29    /**
30     * Test formatting
31     */
32    void testFormat();
33
34    /**
35     * Test formatting using user defined DateIntervalInfo
36     */
37    void testFormatUserDII();
38
39    /**
40     * Test for no unwanted side effects when setting
41     * interval patterns.
42     */
43    void testSetIntervalPatternNoSideEffect();
44
45    /**
46     * Tests different year formats.
47     */
48    void testYearFormats();
49
50    /**
51     * Stress test -- stress test formatting on 40 locales
52     */
53    void testStress();
54
55    void testTicket11583_2();
56
57private:
58    /**
59     * Test formatting against expected result
60     */
61    void expect(const char** data, int32_t data_length);
62
63    /**
64     * Test formatting against expected result using user defined
65     * DateIntervalInfo
66     */
67    void expectUserDII(const char** data, int32_t data_length);
68
69    /**
70     * Stress test formatting
71     */
72    void stress(const char** data, int32_t data_length, const Locale& loc,
73                const char* locName);
74};
75
76#endif /* #if !UCONFIG_NO_FORMATTING */
77
78#endif
79