1/********************************************************************
2 * COPYRIGHT:
3 * Copyright (c) 2008-2013 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
55private:
56    /**
57     * Test formatting against expected result
58     */
59    void expect(const char** data, int32_t data_length);
60
61    /**
62     * Test formatting against expected result using user defined
63     * DateIntervalInfo
64     */
65    void expectUserDII(const char** data, int32_t data_length);
66
67    /**
68     * Stress test formatting
69     */
70    void stress(const char** data, int32_t data_length, const Locale& loc,
71                const char* locName);
72};
73
74#endif /* #if !UCONFIG_NO_FORMATTING */
75
76#endif
77