tzinfo 1.2.11 → 2.0.0

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