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