1/********************************************************************
2 * COPYRIGHT:
3 * Copyright (c) 2008, 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     * Stress test -- stress test formatting on 40 locales
41     */
42    void testStress();
43
44private:
45    /**
46     * Test formatting against expected result
47     */
48    void expect(const char** data, int32_t data_length);
49
50    /**
51     * Test formatting against expected result using user defined
52     * DateIntervalInfo
53     */
54    void expectUserDII(const char** data, int32_t data_length);
55
56    /**
57     * Stress test formatting
58     */
59    void stress(const char** data, int32_t data_length, const Locale& loc,
60                const char* locName);
61};
62
63#endif /* #if !UCONFIG_NO_FORMATTING */
64
65#endif
66