tzinfo 1.2.1 → 2.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data/.yardopts +3 -0
  4. data/CHANGES.md +693 -315
  5. data/LICENSE +13 -13
  6. data/README.md +368 -113
  7. data/lib/tzinfo/annual_rules.rb +71 -0
  8. data/lib/tzinfo/country.rb +148 -120
  9. data/lib/tzinfo/country_timezone.rb +71 -101
  10. data/lib/tzinfo/data_source.rb +400 -144
  11. data/lib/tzinfo/data_sources/constant_offset_data_timezone_info.rb +56 -0
  12. data/lib/tzinfo/data_sources/country_info.rb +42 -0
  13. data/lib/tzinfo/data_sources/data_timezone_info.rb +91 -0
  14. data/lib/tzinfo/data_sources/linked_timezone_info.rb +33 -0
  15. data/lib/tzinfo/data_sources/posix_time_zone_parser.rb +181 -0
  16. data/lib/tzinfo/data_sources/ruby_data_source.rb +145 -0
  17. data/lib/tzinfo/data_sources/timezone_info.rb +47 -0
  18. data/lib/tzinfo/data_sources/transitions_data_timezone_info.rb +214 -0
  19. data/lib/tzinfo/data_sources/zoneinfo_data_source.rb +596 -0
  20. data/lib/tzinfo/data_sources/zoneinfo_reader.rb +486 -0
  21. data/lib/tzinfo/data_sources.rb +8 -0
  22. data/lib/tzinfo/data_timezone.rb +33 -47
  23. data/lib/tzinfo/datetime_with_offset.rb +153 -0
  24. data/lib/tzinfo/format1/country_definer.rb +17 -0
  25. data/lib/tzinfo/format1/country_index_definition.rb +64 -0
  26. data/lib/tzinfo/format1/timezone_definer.rb +64 -0
  27. data/lib/tzinfo/format1/timezone_definition.rb +39 -0
  28. data/lib/tzinfo/format1/timezone_index_definition.rb +77 -0
  29. data/lib/tzinfo/format1.rb +10 -0
  30. data/lib/tzinfo/format2/country_definer.rb +68 -0
  31. data/lib/tzinfo/format2/country_index_definer.rb +68 -0
  32. data/lib/tzinfo/format2/country_index_definition.rb +46 -0
  33. data/lib/tzinfo/format2/timezone_definer.rb +94 -0
  34. data/lib/tzinfo/format2/timezone_definition.rb +73 -0
  35. data/lib/tzinfo/format2/timezone_index_definer.rb +45 -0
  36. data/lib/tzinfo/format2/timezone_index_definition.rb +55 -0
  37. data/lib/tzinfo/format2.rb +10 -0
  38. data/lib/tzinfo/info_timezone.rb +26 -21
  39. data/lib/tzinfo/linked_timezone.rb +33 -52
  40. data/lib/tzinfo/offset_timezone_period.rb +42 -0
  41. data/lib/tzinfo/string_deduper.rb +118 -0
  42. data/lib/tzinfo/time_with_offset.rb +154 -0
  43. data/lib/tzinfo/timestamp.rb +552 -0
  44. data/lib/tzinfo/timestamp_with_offset.rb +85 -0
  45. data/lib/tzinfo/timezone.rb +997 -473
  46. data/lib/tzinfo/timezone_offset.rb +91 -54
  47. data/lib/tzinfo/timezone_period.rb +163 -188
  48. data/lib/tzinfo/timezone_proxy.rb +75 -49
  49. data/lib/tzinfo/timezone_transition.rb +77 -99
  50. data/lib/tzinfo/transition_rule.rb +455 -0
  51. data/lib/tzinfo/transitions_timezone_period.rb +63 -0
  52. data/lib/tzinfo/untaint_ext.rb +18 -0
  53. data/lib/tzinfo/version.rb +7 -0
  54. data/lib/tzinfo/with_offset.rb +61 -0
  55. data/lib/tzinfo.rb +74 -29
  56. data.tar.gz.sig +0 -0
  57. metadata +72 -120
  58. metadata.gz.sig +0 -0
  59. data/Rakefile +0 -104
  60. data/lib/tzinfo/country_index_definition.rb +0 -31
  61. data/lib/tzinfo/country_info.rb +0 -42
  62. data/lib/tzinfo/data_timezone_info.rb +0 -55
  63. data/lib/tzinfo/linked_timezone_info.rb +0 -26
  64. data/lib/tzinfo/offset_rationals.rb +0 -77
  65. data/lib/tzinfo/ruby_core_support.rb +0 -146
  66. data/lib/tzinfo/ruby_country_info.rb +0 -70
  67. data/lib/tzinfo/ruby_data_source.rb +0 -136
  68. data/lib/tzinfo/time_or_datetime.rb +0 -333
  69. data/lib/tzinfo/timezone_definition.rb +0 -36
  70. data/lib/tzinfo/timezone_index_definition.rb +0 -54
  71. data/lib/tzinfo/timezone_info.rb +0 -30
  72. data/lib/tzinfo/timezone_transition_definition.rb +0 -101
  73. data/lib/tzinfo/transition_data_timezone_info.rb +0 -274
  74. data/lib/tzinfo/zoneinfo_country_info.rb +0 -35
  75. data/lib/tzinfo/zoneinfo_data_source.rb +0 -460
  76. data/lib/tzinfo/zoneinfo_timezone_info.rb +0 -245
  77. data/test/tc_country.rb +0 -236
  78. data/test/tc_country_index_definition.rb +0 -69
  79. data/test/tc_country_info.rb +0 -16
  80. data/test/tc_country_timezone.rb +0 -161
  81. data/test/tc_data_source.rb +0 -192
  82. data/test/tc_data_timezone.rb +0 -99
  83. data/test/tc_data_timezone_info.rb +0 -18
  84. data/test/tc_info_timezone.rb +0 -34
  85. data/test/tc_linked_timezone.rb +0 -155
  86. data/test/tc_linked_timezone_info.rb +0 -23
  87. data/test/tc_offset_rationals.rb +0 -23
  88. data/test/tc_ruby_core_support.rb +0 -168
  89. data/test/tc_ruby_country_info.rb +0 -80
  90. data/test/tc_ruby_data_source.rb +0 -143
  91. data/test/tc_time_or_datetime.rb +0 -639
  92. data/test/tc_timezone.rb +0 -1334
  93. data/test/tc_timezone_definition.rb +0 -113
  94. data/test/tc_timezone_index_definition.rb +0 -73
  95. data/test/tc_timezone_info.rb +0 -11
  96. data/test/tc_timezone_london.rb +0 -143
  97. data/test/tc_timezone_melbourne.rb +0 -142
  98. data/test/tc_timezone_new_york.rb +0 -142
  99. data/test/tc_timezone_offset.rb +0 -126
  100. data/test/tc_timezone_period.rb +0 -548
  101. data/test/tc_timezone_proxy.rb +0 -113
  102. data/test/tc_timezone_transition.rb +0 -352
  103. data/test/tc_timezone_transition_definition.rb +0 -284
  104. data/test/tc_timezone_utc.rb +0 -27
  105. data/test/tc_transition_data_timezone_info.rb +0 -423
  106. data/test/tc_zoneinfo_country_info.rb +0 -64
  107. data/test/tc_zoneinfo_data_source.rb +0 -985
  108. data/test/tc_zoneinfo_timezone_info.rb +0 -814
  109. data/test/test_utils.rb +0 -132
  110. data/test/ts_all.rb +0 -7
  111. data/test/ts_all_ruby.rb +0 -5
  112. data/test/ts_all_zoneinfo.rb +0 -7
  113. data/test/tzinfo-data/tzinfo/data/definitions/America/Argentina/Buenos_Aires.rb +0 -89
  114. data/test/tzinfo-data/tzinfo/data/definitions/America/New_York.rb +0 -315
  115. data/test/tzinfo-data/tzinfo/data/definitions/Australia/Melbourne.rb +0 -218
  116. data/test/tzinfo-data/tzinfo/data/definitions/EST.rb +0 -19
  117. data/test/tzinfo-data/tzinfo/data/definitions/Etc/GMT__m__1.rb +0 -21
  118. data/test/tzinfo-data/tzinfo/data/definitions/Etc/GMT__p__1.rb +0 -21
  119. data/test/tzinfo-data/tzinfo/data/definitions/Etc/UTC.rb +0 -21
  120. data/test/tzinfo-data/tzinfo/data/definitions/Europe/Amsterdam.rb +0 -261
  121. data/test/tzinfo-data/tzinfo/data/definitions/Europe/Andorra.rb +0 -186
  122. data/test/tzinfo-data/tzinfo/data/definitions/Europe/London.rb +0 -321
  123. data/test/tzinfo-data/tzinfo/data/definitions/Europe/Paris.rb +0 -265
  124. data/test/tzinfo-data/tzinfo/data/definitions/Europe/Prague.rb +0 -220
  125. data/test/tzinfo-data/tzinfo/data/definitions/UTC.rb +0 -16
  126. data/test/tzinfo-data/tzinfo/data/indexes/countries.rb +0 -927
  127. data/test/tzinfo-data/tzinfo/data/indexes/timezones.rb +0 -594
  128. data/test/tzinfo-data/tzinfo/data/version.rb +0 -14
  129. data/test/tzinfo-data/tzinfo/data.rb +0 -8
  130. data/test/zoneinfo/America/Argentina/Buenos_Aires +0 -0
  131. data/test/zoneinfo/America/New_York +0 -0
  132. data/test/zoneinfo/Australia/Melbourne +0 -0
  133. data/test/zoneinfo/EST +0 -0
  134. data/test/zoneinfo/Etc/UTC +0 -0
  135. data/test/zoneinfo/Europe/Amsterdam +0 -0
  136. data/test/zoneinfo/Europe/Andorra +0 -0
  137. data/test/zoneinfo/Europe/London +0 -0
  138. data/test/zoneinfo/Europe/Paris +0 -0
  139. data/test/zoneinfo/Europe/Prague +0 -0
  140. data/test/zoneinfo/Factory +0 -0
  141. data/test/zoneinfo/iso3166.tab +0 -275
  142. data/test/zoneinfo/posix/Europe/London +0 -0
  143. data/test/zoneinfo/posixrules +0 -0
  144. data/test/zoneinfo/right/Europe/London +0 -0
  145. data/test/zoneinfo/zone.tab +0 -452
  146. data/tzinfo.gemspec +0 -21
@@ -1,284 +0,0 @@
1
- require File.join(File.expand_path(File.dirname(__FILE__)), 'test_utils')
2
- require 'date'
3
-
4
- include TZInfo
5
-
6
- class TCTimezoneTransitionDefinition < Minitest::Test
7
- def test_initialize_timestamp_only
8
- assert_nothing_raised do
9
- TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
10
- TimezoneOffset.new(3600, 0, :TST), 1148949080)
11
- end
12
- end
13
-
14
- def test_initialize_timestamp_and_datetime
15
- assert_nothing_raised do
16
- TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
17
- TimezoneOffset.new(3600, 0, :TST), 1148949080, 5300392727, 2160)
18
- end
19
- end
20
-
21
- def test_initialize_datetime_only
22
- assert_nothing_raised do
23
- TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
24
- TimezoneOffset.new(3600, 0, :TST), 5300392727, 2160)
25
- end
26
- end
27
-
28
- def test_at
29
- t1 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
30
- TimezoneOffset.new(3600, 0, :TST), 1148949080)
31
- t2 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
32
- TimezoneOffset.new(3600, 0, :TST), 5300392727, 2160)
33
- t3 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
34
- TimezoneOffset.new(3600, 0, :TST), 1148949080, 5300392727, 2160)
35
-
36
- assert(TimeOrDateTime.new(1148949080).eql?(t1.at))
37
- assert(TimeOrDateTime.new(DateTime.new(2006, 5, 30, 0, 31, 20)).eql?(t2.at))
38
- assert(TimeOrDateTime.new(1148949080).eql?(t3.at))
39
- end
40
-
41
- def test_at_before_negative_32_bit
42
- t = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
43
- TimezoneOffset.new(3600, 0, :TST), -2147483649, 69573092117, 28800)
44
-
45
- if RubyCoreSupport.time_supports_negative && RubyCoreSupport.time_supports_64bit
46
- assert(TimeOrDateTime.new(-2147483649).eql?(t.at))
47
- else
48
- assert(TimeOrDateTime.new(DateTime.new(1901, 12, 13, 20, 45, 51)).eql?(t.at))
49
- end
50
- end
51
-
52
- def test_at_before_epoch
53
- t = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
54
- TimezoneOffset.new(3600, 0, :TST), -1, 210866759999, 86400)
55
-
56
- if RubyCoreSupport.time_supports_negative
57
- assert(TimeOrDateTime.new(-1).eql?(t.at))
58
- else
59
- assert(TimeOrDateTime.new(DateTime.new(1969, 12, 31, 23, 59, 59)).eql?(t.at))
60
- end
61
- end
62
-
63
- def test_at_after_32bit
64
- t = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
65
- TimezoneOffset.new(3600, 0, :TST), 2147483648, 3328347557, 1350)
66
-
67
- if RubyCoreSupport.time_supports_64bit
68
- assert(TimeOrDateTime.new(2147483648).eql?(t.at))
69
- else
70
- assert(TimeOrDateTime.new(DateTime.new(2038, 1, 19, 3, 14, 8)).eql?(t.at))
71
- end
72
- end
73
-
74
- def test_eql_timestamp
75
- t1 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
76
- TimezoneOffset.new(3600, 0, :TST), 1148949080)
77
- t2 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
78
- TimezoneOffset.new(3600, 0, :TST), 1148949080)
79
- t3 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
80
- TimezoneOffset.new(3600, 0, :TST), 5300392727, 2160)
81
- t4 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
82
- TimezoneOffset.new(3600, 0, :TST), 1148949080, 5300392727, 2160)
83
- t5 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
84
- TimezoneOffset.new(3600, 0, :TST), 1148949081)
85
- t6 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3601, 3600, :TDT),
86
- TimezoneOffset.new(3600, 0, :TST), 1148949080)
87
- t7 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
88
- TimezoneOffset.new(3601, 0, :TST), 1148949080)
89
-
90
- assert_equal(true, t1.eql?(t1))
91
- assert_equal(true, t1.eql?(t2))
92
- assert_equal(false, t1.eql?(t3))
93
- assert_equal(true, t1.eql?(t4))
94
- assert_equal(false, t1.eql?(t5))
95
- assert_equal(false, t1.eql?(t6))
96
- assert_equal(false, t1.eql?(t7))
97
- assert_equal(false, t1.eql?(Object.new))
98
- end
99
-
100
- def test_eql_datetime
101
- t1 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
102
- TimezoneOffset.new(3600, 0, :TST), 5300392727, 2160)
103
- t2 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
104
- TimezoneOffset.new(3600, 0, :TST), 5300392727, 2160)
105
- t3 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
106
- TimezoneOffset.new(3600, 0, :TST), 1148949080)
107
- t4 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
108
- TimezoneOffset.new(3600, 0, :TST), 1148949080, 5300392727, 2160)
109
- t5 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
110
- TimezoneOffset.new(3600, 0, :TST), 7852433803, 3200)
111
- t6 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3601, 3600, :TDT),
112
- TimezoneOffset.new(3600, 0, :TST), 5300392727, 2160)
113
- t7 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
114
- TimezoneOffset.new(3601, 0, :TST), 5300392727, 2160)
115
-
116
- assert_equal(true, t1.eql?(t1))
117
- assert_equal(true, t1.eql?(t2))
118
- assert_equal(false, t1.eql?(t3))
119
- assert_equal(false, t1.eql?(t4))
120
- assert_equal(false, t1.eql?(t5))
121
- assert_equal(false, t1.eql?(t6))
122
- assert_equal(false, t1.eql?(t7))
123
- assert_equal(false, t1.eql?(Object.new))
124
- end
125
-
126
- def test_eql_timestamp_and_datetime
127
- t1 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
128
- TimezoneOffset.new(3600, 0, :TST), 1148949080, 5300392727, 2160)
129
- t2 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
130
- TimezoneOffset.new(3600, 0, :TST), 1148949080, 5300392727, 2160)
131
- t3 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
132
- TimezoneOffset.new(3600, 0, :TST), 1148949080)
133
- t4 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
134
- TimezoneOffset.new(3600, 0, :TST), 5300392727, 2160)
135
- t5 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
136
- TimezoneOffset.new(3600, 0, :TST), 1148952681, 7852433803, 3200)
137
- t6 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3601, 3600, :TDT),
138
- TimezoneOffset.new(3600, 0, :TST), 1148949080, 5300392727, 2160)
139
- t7 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
140
- TimezoneOffset.new(3601, 0, :TST), 1148949080, 5300392727, 2160)
141
-
142
- assert_equal(true, t1.eql?(t1))
143
- assert_equal(true, t1.eql?(t2))
144
- assert_equal(true, t1.eql?(t3))
145
- assert_equal(false, t1.eql?(t4))
146
- assert_equal(false, t1.eql?(t5))
147
- assert_equal(false, t1.eql?(t6))
148
- assert_equal(false, t1.eql?(t7))
149
- assert_equal(false, t1.eql?(Object.new))
150
- end
151
-
152
- def test_eql_timestamp_and_datetime_before_negative_32bit
153
- t1 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
154
- TimezoneOffset.new(3600, 0, :TST), -2147483649, 69573092117, 28800)
155
- t2 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
156
- TimezoneOffset.new(3600, 0, :TST), -2147483649, 69573092117, 28800)
157
- t3 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
158
- TimezoneOffset.new(3600, 0, :TST), -2147483649)
159
- t4 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
160
- TimezoneOffset.new(3600, 0, :TST), 69573092117, 28800)
161
-
162
- assert_equal(true, t1.eql?(t1))
163
- assert_equal(true, t1.eql?(t2))
164
-
165
- if RubyCoreSupport.time_supports_negative && RubyCoreSupport.time_supports_64bit
166
- assert_equal(true, t1.eql?(t3))
167
- assert_equal(false, t1.eql?(t4))
168
- assert_equal(true, t3.eql?(t1))
169
- assert_equal(false, t4.eql?(t1))
170
- else
171
- assert_equal(false, t1.eql?(t3))
172
- assert_equal(true, t1.eql?(t4))
173
- assert_equal(false, t3.eql?(t1))
174
- assert_equal(true, t4.eql?(t1))
175
- end
176
- end
177
-
178
- def test_eql_timestamp_and_datetime_before_epoch
179
- t1 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
180
- TimezoneOffset.new(3600, 0, :TST), -1, 210866759999, 86400)
181
- t2 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
182
- TimezoneOffset.new(3600, 0, :TST), -1, 210866759999, 86400)
183
- t3 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
184
- TimezoneOffset.new(3600, 0, :TST), -1)
185
- t4 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
186
- TimezoneOffset.new(3600, 0, :TST), 210866759999, 86400)
187
-
188
- assert_equal(true, t1.eql?(t1))
189
- assert_equal(true, t1.eql?(t2))
190
-
191
- if RubyCoreSupport.time_supports_negative
192
- assert_equal(true, t1.eql?(t3))
193
- assert_equal(false, t1.eql?(t4))
194
- assert_equal(true, t3.eql?(t1))
195
- assert_equal(false, t4.eql?(t1))
196
- else
197
- assert_equal(false, t1.eql?(t3))
198
- assert_equal(true, t1.eql?(t4))
199
- assert_equal(false, t3.eql?(t1))
200
- assert_equal(true, t4.eql?(t1))
201
- end
202
- end
203
-
204
- def test_eql_timestamp_and_datetime_after_32bit
205
- t1 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
206
- TimezoneOffset.new(3600, 0, :TST), 2147483648, 3328347557, 1350)
207
- t2 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
208
- TimezoneOffset.new(3600, 0, :TST), 2147483648, 3328347557, 1350)
209
- t3 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
210
- TimezoneOffset.new(3600, 0, :TST), 2147483648)
211
- t4 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
212
- TimezoneOffset.new(3600, 0, :TST), 3328347557, 1350)
213
-
214
- assert_equal(true, t1.eql?(t1))
215
- assert_equal(true, t1.eql?(t2))
216
-
217
- if RubyCoreSupport.time_supports_64bit
218
- assert_equal(true, t1.eql?(t3))
219
- assert_equal(false, t1.eql?(t4))
220
- assert_equal(true, t3.eql?(t1))
221
- assert_equal(false, t4.eql?(t1))
222
- else
223
- assert_equal(false, t1.eql?(t3))
224
- assert_equal(true, t1.eql?(t4))
225
- assert_equal(false, t3.eql?(t1))
226
- assert_equal(true, t4.eql?(t1))
227
- end
228
- end
229
-
230
- def test_hash
231
- t1 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
232
- TimezoneOffset.new(3600, 0, :TST), 1148949080)
233
- t2 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
234
- TimezoneOffset.new(3600, 0, :TST), 5300392727, 2160)
235
- t3 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
236
- TimezoneOffset.new(3600, 0, :TST), 1148949080, 5300392727, 2160)
237
- t4 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
238
- TimezoneOffset.new(3600, 0, :TST), -2147483649, 69573092117, 28800)
239
- t5 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
240
- TimezoneOffset.new(3600, 0, :TST), -1, 210866759999, 86400)
241
- t6 = TimezoneTransitionDefinition.new(TimezoneOffset.new(3600, 3600, :TDT),
242
- TimezoneOffset.new(3600, 0, :TST), 2147483648, 3328347557, 1350)
243
-
244
- assert_equal(TimezoneOffset.new(3600, 3600, :TDT).hash ^
245
- TimezoneOffset.new(3600, 0, :TST).hash ^ 1148949080.hash ^ nil.hash,
246
- t1.hash)
247
- assert_equal(TimezoneOffset.new(3600, 3600, :TDT).hash ^
248
- TimezoneOffset.new(3600, 0, :TST).hash ^ 5300392727.hash ^ 2160.hash,
249
- t2.hash)
250
- assert_equal(TimezoneOffset.new(3600, 3600, :TDT).hash ^
251
- TimezoneOffset.new(3600, 0, :TST).hash ^ 1148949080.hash ^ nil.hash,
252
- t3.hash)
253
-
254
- if RubyCoreSupport.time_supports_negative && RubyCoreSupport.time_supports_64bit
255
- assert_equal(TimezoneOffset.new(3600, 3600, :TDT).hash ^
256
- TimezoneOffset.new(3600, 0, :TST).hash ^ -2147483649.hash ^ nil.hash,
257
- t4.hash)
258
- else
259
- assert_equal(TimezoneOffset.new(3600, 3600, :TDT).hash ^
260
- TimezoneOffset.new(3600, 0, :TST).hash ^ 69573092117.hash ^ 28800.hash,
261
- t4.hash)
262
- end
263
-
264
- if RubyCoreSupport.time_supports_negative
265
- assert_equal(TimezoneOffset.new(3600, 3600, :TDT).hash ^
266
- TimezoneOffset.new(3600, 0, :TST).hash ^ -1.hash ^ nil.hash,
267
- t5.hash)
268
- else
269
- assert_equal(TimezoneOffset.new(3600, 3600, :TDT).hash ^
270
- TimezoneOffset.new(3600, 0, :TST).hash ^ 210866759999.hash ^ 86400.hash,
271
- t5.hash)
272
- end
273
-
274
- if RubyCoreSupport.time_supports_64bit
275
- assert_equal(TimezoneOffset.new(3600, 3600, :TDT).hash ^
276
- TimezoneOffset.new(3600, 0, :TST).hash ^ 2147483648.hash ^ nil.hash,
277
- t6.hash)
278
- else
279
- assert_equal(TimezoneOffset.new(3600, 3600, :TDT).hash ^
280
- TimezoneOffset.new(3600, 0, :TST).hash ^ 3328347557.hash ^ 1350.hash,
281
- t6.hash)
282
- end
283
- end
284
- end
@@ -1,27 +0,0 @@
1
- require File.join(File.expand_path(File.dirname(__FILE__)), 'test_utils')
2
-
3
- include TZInfo
4
-
5
- class TCTimezoneUTC < Minitest::Test
6
- def test_2004
7
- tz = Timezone.get('UTC')
8
-
9
- assert_equal(DateTime.new(2004,1,1,0,0,0), tz.utc_to_local(DateTime.new(2004,1,1,0,0,0)))
10
- assert_equal(DateTime.new(2004,12,31,23,59,59), tz.utc_to_local(DateTime.new(2004,12,31,23,59,59)))
11
-
12
- assert_equal(DateTime.new(2004,1,1,0,0,0), tz.local_to_utc(DateTime.new(2004,1,1,0,0,0)))
13
- assert_equal(DateTime.new(2004,12,31,23,59,59), tz.local_to_utc(DateTime.new(2004,12,31,23,59,59)))
14
-
15
- assert_equal(:UTC, tz.period_for_utc(DateTime.new(2004,1,1,0,0,0)).zone_identifier)
16
- assert_equal(:UTC, tz.period_for_utc(DateTime.new(2004,12,31,23,59,59)).zone_identifier)
17
-
18
- assert_equal(:UTC, tz.period_for_local(DateTime.new(2004,1,1,0,0,0)).zone_identifier)
19
- assert_equal(:UTC, tz.period_for_local(DateTime.new(2004,12,31,23,59,59)).zone_identifier)
20
-
21
- assert_equal(0, tz.period_for_utc(DateTime.new(2004,1,1,0,0,0)).utc_total_offset)
22
- assert_equal(0, tz.period_for_utc(DateTime.new(2004,12,31,23,59,59)).utc_total_offset)
23
-
24
- assert_equal(0, tz.period_for_local(DateTime.new(2004,1,1,0,0,0)).utc_total_offset)
25
- assert_equal(0, tz.period_for_local(DateTime.new(2004,12,31,23,59,59)).utc_total_offset)
26
- end
27
- end