]> git.saurik.com Git - apple/icu.git/blame_incremental - icuSources/test/intltest/tztest.h
ICU-66108.tar.gz
[apple/icu.git] / icuSources / test / intltest / tztest.h
... / ...
CommitLineData
1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3
4/********************************************************************
5 * Copyright (c) 1997-2014, International Business Machines
6 * Corporation and others. All Rights Reserved.
7 ********************************************************************/
8
9#ifndef __TimeZoneTest__
10#define __TimeZoneTest__
11
12#include "unicode/utypes.h"
13
14#if !UCONFIG_NO_FORMATTING
15
16#include "unicode/simpletz.h"
17#include "caltztst.h"
18
19/**
20 * Various tests for TimeZone
21 **/
22class TimeZoneTest: public CalendarTimeZoneTest {
23 // IntlTest override
24 void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par );
25public: // package
26 static const int32_t millisPerHour;
27
28public:
29 /**
30 * Test the offset of the PRT timezone.
31 */
32 virtual void TestPRTOffset(void);
33 /**
34 * Regress a specific bug with a sequence of API calls.
35 */
36 virtual void TestVariousAPI518(void);
37 /**
38 * Test the call which retrieves the available IDs.
39 */
40 virtual void TestGetAvailableIDs913(void);
41
42 virtual void TestGetAvailableIDsNew(void);
43
44 /**
45 * Generic API testing for API coverage.
46 */
47 virtual void TestGenericAPI(void);
48 /**
49 * Test the setStartRule/setEndRule API calls.
50 */
51 virtual void TestRuleAPI(void);
52
53 void findTransition(const TimeZone& tz,
54 UDate min, UDate max);
55
56 /**
57 * subtest used by TestRuleAPI
58 **/
59 void testUsingBinarySearch(const TimeZone& tz,
60 UDate min, UDate max,
61 UDate expectedBoundary);
62
63
64 /**
65 * Test short zone IDs for compliance
66 */
67 virtual void TestShortZoneIDs(void);
68
69
70 /**
71 * Test parsing custom zones
72 */
73 virtual void TestCustomParse(void);
74
75 /**
76 * Test new getDisplayName() API
77 */
78 virtual void TestDisplayName(void);
79
80 void TestDSTSavings(void);
81 void TestAlternateRules(void);
82
83 void TestCountries(void);
84
85 void TestHistorical(void);
86
87 void TestEquivalentIDs(void);
88
89 void TestAliasedNames(void);
90
91 void TestFractionalDST(void);
92
93 void TestFebruary(void);
94
95 void TestCanonicalIDAPI();
96 void TestCanonicalID(void);
97
98 virtual void TestDisplayNamesMeta();
99
100 void TestGetRegion(void);
101 void TestGetUnknown();
102 void TestGetGMT();
103
104 void TestGetWindowsID(void);
105 void TestGetIDForWindowsID(void);
106
107 static const UDate INTERVAL;
108
109private:
110 // internal functions
111 static UnicodeString& formatOffset(int32_t offset, UnicodeString& rv);
112 static UnicodeString& formatTZID(int32_t offset, UnicodeString& rv);
113
114 // Some test case data is current date/tzdata version sensitive and producing errors
115 // when year/rule are changed.
116 static const int32_t REFERENCE_YEAR;
117 static const char *REFERENCE_DATA_VERSION;
118
119 void checkContainsAll(StringEnumeration *s1, const char *name1,
120 StringEnumeration *s2, const char *name2);
121};
122
123#endif /* #if !UCONFIG_NO_FORMATTING */
124
125#endif // __TimeZoneTest__