Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(332)

Side by Side Diff: tests/corelib/date_time_test.dart

Issue 11770004: Rename Date to DateTime. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // Dart test program for Date. 5 // Dart test program for DateTime.
6 6
7 class DateTest { 7 class DateTest {
8 // Tests if the time moves eventually forward. 8 // Tests if the time moves eventually forward.
9 static void testNow() { 9 static void testNow() {
10 var t1 = new Date.now(); 10 var t1 = new DateTime.now();
11 bool timeMovedForward = false; 11 bool timeMovedForward = false;
12 for (int i = 0; i < 1000000; i++) { 12 for (int i = 0; i < 1000000; i++) {
13 var t2 = new Date.now(); 13 var t2 = new DateTime.now();
14 if (t1.millisecondsSinceEpoch < t2.millisecondsSinceEpoch) { 14 if (t1.millisecondsSinceEpoch < t2.millisecondsSinceEpoch) {
15 timeMovedForward = true; 15 timeMovedForward = true;
16 break; 16 break;
17 } 17 }
18 } 18 }
19 Expect.equals(true, timeMovedForward); 19 Expect.equals(true, timeMovedForward);
20 Expect.isFalse(t1.isUtc); 20 Expect.isFalse(t1.isUtc);
21 } 21 }
22 22
23 static void testValue() { 23 static void testValue() {
24 var dt1 = new Date.now(); 24 var dt1 = new DateTime.now();
25 var millisecondsSinceEpoch = dt1.millisecondsSinceEpoch; 25 var millisecondsSinceEpoch = dt1.millisecondsSinceEpoch;
26 var dt2 = new Date.fromMillisecondsSinceEpoch(millisecondsSinceEpoch); 26 var dt2 = new DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch);
27 Expect.equals(millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); 27 Expect.equals(millisecondsSinceEpoch, dt2.millisecondsSinceEpoch);
28 } 28 }
29 29
30 static void testFarAwayDates() { 30 static void testFarAwayDates() {
31 Date dt = 31 DateTime dt =
32 new Date.fromMillisecondsSinceEpoch(1000000000000001, isUtc: true); 32 new DateTime.fromMillisecondsSinceEpoch(1000000000000001, isUtc: true);
33 Expect.equals(33658, dt.year); 33 Expect.equals(33658, dt.year);
34 Expect.equals(9, dt.month); 34 Expect.equals(9, dt.month);
35 Expect.equals(27, dt.day); 35 Expect.equals(27, dt.day);
36 Expect.equals(1, dt.hour); 36 Expect.equals(1, dt.hour);
37 Expect.equals(46, dt.minute); 37 Expect.equals(46, dt.minute);
38 Expect.equals(40, dt.second); 38 Expect.equals(40, dt.second);
39 Expect.equals(1, dt.millisecond); 39 Expect.equals(1, dt.millisecond);
40 dt = new Date.fromMillisecondsSinceEpoch(-1000000000000001, isUtc: true); 40 dt = new DateTime.fromMillisecondsSinceEpoch(-1000000000000001, isUtc: true) ;
41 Expect.equals(-29719, dt.year); 41 Expect.equals(-29719, dt.year);
42 Expect.equals(4, dt.month); 42 Expect.equals(4, dt.month);
43 Expect.equals(5, dt.day); 43 Expect.equals(5, dt.day);
44 Expect.equals(22, dt.hour); 44 Expect.equals(22, dt.hour);
45 Expect.equals(13, dt.minute); 45 Expect.equals(13, dt.minute);
46 Expect.equals(19, dt.second); 46 Expect.equals(19, dt.second);
47 Expect.equals(999, dt.millisecond); 47 Expect.equals(999, dt.millisecond);
48 // Same with local zone. 48 // Same with local zone.
49 dt = new Date.fromMillisecondsSinceEpoch(1000000000000001); 49 dt = new DateTime.fromMillisecondsSinceEpoch(1000000000000001);
50 Expect.equals(33658, dt.year); 50 Expect.equals(33658, dt.year);
51 Expect.equals(9, dt.month); 51 Expect.equals(9, dt.month);
52 Expect.equals(true, dt.day == 27 || dt.day == 26); 52 Expect.equals(true, dt.day == 27 || dt.day == 26);
53 // Not much we can test for local hour. 53 // Not much we can test for local hour.
54 Expect.equals(true, dt.hour >= 0 && dt.hour < 24); 54 Expect.equals(true, dt.hour >= 0 && dt.hour < 24);
55 // Timezones can have offsets down to 15 minute. 55 // Timezones can have offsets down to 15 minute.
56 Expect.equals(true, dt.minute % 15 == 46 % 15); 56 Expect.equals(true, dt.minute % 15 == 46 % 15);
57 Expect.equals(40, dt.second); 57 Expect.equals(40, dt.second);
58 Expect.equals(1, dt.millisecond); 58 Expect.equals(1, dt.millisecond);
59 dt = new Date.fromMillisecondsSinceEpoch(-1000000000000001); 59 dt = new DateTime.fromMillisecondsSinceEpoch(-1000000000000001);
60 Expect.equals(-29719, dt.year); 60 Expect.equals(-29719, dt.year);
61 Expect.equals(4, dt.month); 61 Expect.equals(4, dt.month);
62 Expect.equals(true, 5 == dt.day || 6 == dt.day); 62 Expect.equals(true, 5 == dt.day || 6 == dt.day);
63 // Not much we can test for local hour. 63 // Not much we can test for local hour.
64 Expect.equals(true, dt.hour >= 0 && dt.hour < 24); 64 Expect.equals(true, dt.hour >= 0 && dt.hour < 24);
65 // Timezones can have offsets down to 15 minute. 65 // Timezones can have offsets down to 15 minute.
66 Expect.equals(true, dt.minute % 15 == 13); 66 Expect.equals(true, dt.minute % 15 == 13);
67 Expect.equals(19, dt.second); 67 Expect.equals(19, dt.second);
68 Expect.equals(999, dt.millisecond); 68 Expect.equals(999, dt.millisecond);
69 } 69 }
70 70
71 static void testEquivalentYears() { 71 static void testEquivalentYears() {
72 // All hardcoded values come from V8. This means that the values are not 72 // All hardcoded values come from V8. This means that the values are not
73 // necessarily correct (see limitations of Date object in 73 // necessarily correct (see limitations of DateTime object in
74 // EcmaScript 15.9.1 and in particular 15.9.1.8/9). 74 // EcmaScript 15.9.1 and in particular 15.9.1.8/9).
75 Date dt = new Date.fromMillisecondsSinceEpoch(-31485600000, isUtc: true); 75 DateTime dt = new DateTime.fromMillisecondsSinceEpoch(-31485600000, isUtc: t rue);
76 Expect.equals(1969, dt.year); 76 Expect.equals(1969, dt.year);
77 Expect.equals(1, dt.month); 77 Expect.equals(1, dt.month);
78 Expect.equals(1, dt.day); 78 Expect.equals(1, dt.day);
79 Expect.equals(14, dt.hour); 79 Expect.equals(14, dt.hour);
80 Expect.equals(0, dt.minute); 80 Expect.equals(0, dt.minute);
81 Expect.equals(0, dt.second); 81 Expect.equals(0, dt.second);
82 Expect.equals(0, dt.millisecond); 82 Expect.equals(0, dt.millisecond);
83 dt = new Date.fromMillisecondsSinceEpoch(-63108000000, isUtc: true); 83 dt = new DateTime.fromMillisecondsSinceEpoch(-63108000000, isUtc: true);
84 Expect.equals(1968, dt.year); 84 Expect.equals(1968, dt.year);
85 Expect.equals(1, dt.month); 85 Expect.equals(1, dt.month);
86 Expect.equals(1, dt.day); 86 Expect.equals(1, dt.day);
87 Expect.equals(14, dt.hour); 87 Expect.equals(14, dt.hour);
88 Expect.equals(0, dt.minute); 88 Expect.equals(0, dt.minute);
89 Expect.equals(0, dt.second); 89 Expect.equals(0, dt.second);
90 Expect.equals(0, dt.millisecond); 90 Expect.equals(0, dt.millisecond);
91 dt = new Date.fromMillisecondsSinceEpoch(-94644000000, isUtc: true); 91 dt = new DateTime.fromMillisecondsSinceEpoch(-94644000000, isUtc: true);
92 Expect.equals(1967, dt.year); 92 Expect.equals(1967, dt.year);
93 Expect.equals(1, dt.month); 93 Expect.equals(1, dt.month);
94 Expect.equals(1, dt.day); 94 Expect.equals(1, dt.day);
95 Expect.equals(14, dt.hour); 95 Expect.equals(14, dt.hour);
96 Expect.equals(0, dt.minute); 96 Expect.equals(0, dt.minute);
97 Expect.equals(0, dt.second); 97 Expect.equals(0, dt.second);
98 Expect.equals(0, dt.millisecond); 98 Expect.equals(0, dt.millisecond);
99 dt = new Date.fromMillisecondsSinceEpoch(-126180000000, isUtc: true); 99 dt = new DateTime.fromMillisecondsSinceEpoch(-126180000000, isUtc: true);
100 Expect.equals(1966, dt.year); 100 Expect.equals(1966, dt.year);
101 Expect.equals(1, dt.month); 101 Expect.equals(1, dt.month);
102 Expect.equals(1, dt.day); 102 Expect.equals(1, dt.day);
103 Expect.equals(14, dt.hour); 103 Expect.equals(14, dt.hour);
104 Expect.equals(0, dt.minute); 104 Expect.equals(0, dt.minute);
105 Expect.equals(0, dt.second); 105 Expect.equals(0, dt.second);
106 Expect.equals(0, dt.millisecond); 106 Expect.equals(0, dt.millisecond);
107 dt = new Date.fromMillisecondsSinceEpoch(-157716000000, isUtc: true); 107 dt = new DateTime.fromMillisecondsSinceEpoch(-157716000000, isUtc: true);
108 Expect.equals(1965, dt.year); 108 Expect.equals(1965, dt.year);
109 Expect.equals(1, dt.month); 109 Expect.equals(1, dt.month);
110 Expect.equals(1, dt.day); 110 Expect.equals(1, dt.day);
111 Expect.equals(14, dt.hour); 111 Expect.equals(14, dt.hour);
112 Expect.equals(0, dt.minute); 112 Expect.equals(0, dt.minute);
113 Expect.equals(0, dt.second); 113 Expect.equals(0, dt.second);
114 Expect.equals(0, dt.millisecond); 114 Expect.equals(0, dt.millisecond);
115 dt = new Date.fromMillisecondsSinceEpoch(-2177402400000, isUtc: true); 115 dt = new DateTime.fromMillisecondsSinceEpoch(-2177402400000, isUtc: true);
116 Expect.equals(1901, dt.year); 116 Expect.equals(1901, dt.year);
117 Expect.equals(1, dt.month); 117 Expect.equals(1, dt.month);
118 Expect.equals(1, dt.day); 118 Expect.equals(1, dt.day);
119 Expect.equals(14, dt.hour); 119 Expect.equals(14, dt.hour);
120 Expect.equals(0, dt.minute); 120 Expect.equals(0, dt.minute);
121 Expect.equals(0, dt.second); 121 Expect.equals(0, dt.second);
122 Expect.equals(0, dt.millisecond); 122 Expect.equals(0, dt.millisecond);
123 dt = new Date.fromMillisecondsSinceEpoch(-5333076000000, isUtc: true); 123 dt = new DateTime.fromMillisecondsSinceEpoch(-5333076000000, isUtc: true);
124 Expect.equals(1801, dt.year); 124 Expect.equals(1801, dt.year);
125 Expect.equals(1, dt.month); 125 Expect.equals(1, dt.month);
126 Expect.equals(1, dt.day); 126 Expect.equals(1, dt.day);
127 Expect.equals(14, dt.hour); 127 Expect.equals(14, dt.hour);
128 Expect.equals(0, dt.minute); 128 Expect.equals(0, dt.minute);
129 Expect.equals(0, dt.second); 129 Expect.equals(0, dt.second);
130 Expect.equals(0, dt.millisecond); 130 Expect.equals(0, dt.millisecond);
131 dt = new Date.fromMillisecondsSinceEpoch(-8520285600000, isUtc: true); 131 dt = new DateTime.fromMillisecondsSinceEpoch(-8520285600000, isUtc: true);
132 Expect.equals(1700, dt.year); 132 Expect.equals(1700, dt.year);
133 Expect.equals(1, dt.month); 133 Expect.equals(1, dt.month);
134 Expect.equals(1, dt.day); 134 Expect.equals(1, dt.day);
135 Expect.equals(14, dt.hour); 135 Expect.equals(14, dt.hour);
136 Expect.equals(0, dt.minute); 136 Expect.equals(0, dt.minute);
137 Expect.equals(0, dt.second); 137 Expect.equals(0, dt.second);
138 Expect.equals(0, dt.millisecond); 138 Expect.equals(0, dt.millisecond);
139 dt = new Date.fromMillisecondsSinceEpoch(-14831719200000, isUtc: true); 139 dt = new DateTime.fromMillisecondsSinceEpoch(-14831719200000, isUtc: true);
140 Expect.equals(1500, dt.year); 140 Expect.equals(1500, dt.year);
141 Expect.equals(1, dt.month); 141 Expect.equals(1, dt.month);
142 Expect.equals(1, dt.day); 142 Expect.equals(1, dt.day);
143 Expect.equals(14, dt.hour); 143 Expect.equals(14, dt.hour);
144 Expect.equals(0, dt.minute); 144 Expect.equals(0, dt.minute);
145 Expect.equals(0, dt.second); 145 Expect.equals(0, dt.second);
146 Expect.equals(0, dt.millisecond); 146 Expect.equals(0, dt.millisecond);
147 dt = new Date.fromMillisecondsSinceEpoch(-59011408800000, isUtc: true); 147 dt = new DateTime.fromMillisecondsSinceEpoch(-59011408800000, isUtc: true);
148 Expect.equals(100, dt.year); 148 Expect.equals(100, dt.year);
149 Expect.equals(1, dt.month); 149 Expect.equals(1, dt.month);
150 Expect.equals(1, dt.day); 150 Expect.equals(1, dt.day);
151 Expect.equals(14, dt.hour); 151 Expect.equals(14, dt.hour);
152 Expect.equals(0, dt.minute); 152 Expect.equals(0, dt.minute);
153 Expect.equals(0, dt.second); 153 Expect.equals(0, dt.second);
154 Expect.equals(0, dt.millisecond); 154 Expect.equals(0, dt.millisecond);
155 dt = new Date.fromMillisecondsSinceEpoch(-62011408800000, isUtc: true); 155 dt = new DateTime.fromMillisecondsSinceEpoch(-62011408800000, isUtc: true);
156 Expect.equals(4, dt.year); 156 Expect.equals(4, dt.year);
157 Expect.equals(12, dt.month); 157 Expect.equals(12, dt.month);
158 Expect.equals(8, dt.day); 158 Expect.equals(8, dt.day);
159 Expect.equals(8, dt.hour); 159 Expect.equals(8, dt.hour);
160 Expect.equals(40, dt.minute); 160 Expect.equals(40, dt.minute);
161 Expect.equals(0, dt.second); 161 Expect.equals(0, dt.second);
162 Expect.equals(0, dt.millisecond); 162 Expect.equals(0, dt.millisecond);
163 dt = new Date.fromMillisecondsSinceEpoch(-64011408800000, isUtc: true); 163 dt = new DateTime.fromMillisecondsSinceEpoch(-64011408800000, isUtc: true);
164 Expect.equals(-59, dt.year); 164 Expect.equals(-59, dt.year);
165 Expect.equals(7, dt.month); 165 Expect.equals(7, dt.month);
166 Expect.equals(24, dt.day); 166 Expect.equals(24, dt.day);
167 Expect.equals(5, dt.hour); 167 Expect.equals(5, dt.hour);
168 Expect.equals(6, dt.minute); 168 Expect.equals(6, dt.minute);
169 Expect.equals(40, dt.second); 169 Expect.equals(40, dt.second);
170 Expect.equals(0, dt.millisecond); 170 Expect.equals(0, dt.millisecond);
171 final int SECONDS_YEAR_2035 = 2051222400; 171 final int SECONDS_YEAR_2035 = 2051222400;
172 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 + 1, 172 dt = new DateTime.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 + 1,
173 isUtc: true); 173 isUtc: true);
174 Expect.equals(2035, dt.year); 174 Expect.equals(2035, dt.year);
175 Expect.equals(1, dt.month); 175 Expect.equals(1, dt.month);
176 Expect.equals(1, dt.day); 176 Expect.equals(1, dt.day);
177 Expect.equals(0, dt.hour); 177 Expect.equals(0, dt.hour);
178 Expect.equals(0, dt.minute); 178 Expect.equals(0, dt.minute);
179 Expect.equals(0, dt.second); 179 Expect.equals(0, dt.second);
180 Expect.equals(1, dt.millisecond); 180 Expect.equals(1, dt.millisecond);
181 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 - 1, 181 dt = new DateTime.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 - 1,
182 isUtc: true); 182 isUtc: true);
183 Expect.equals(2034, dt.year); 183 Expect.equals(2034, dt.year);
184 Expect.equals(12, dt.month); 184 Expect.equals(12, dt.month);
185 Expect.equals(31, dt.day); 185 Expect.equals(31, dt.day);
186 Expect.equals(23, dt.hour); 186 Expect.equals(23, dt.hour);
187 Expect.equals(59, dt.minute); 187 Expect.equals(59, dt.minute);
188 Expect.equals(59, dt.second); 188 Expect.equals(59, dt.second);
189 Expect.equals(999, dt.millisecond); 189 Expect.equals(999, dt.millisecond);
190 dt = new Date.utc(2035, 1, 1, 0, 0, 0, 1); 190 dt = new DateTime.utc(2035, 1, 1, 0, 0, 0, 1);
191 Expect.equals(SECONDS_YEAR_2035 * 1000 + 1, dt.millisecondsSinceEpoch); 191 Expect.equals(SECONDS_YEAR_2035 * 1000 + 1, dt.millisecondsSinceEpoch);
192 dt = new Date.utc(2034, 12, 31, 23, 59, 59, 999); 192 dt = new DateTime.utc(2034, 12, 31, 23, 59, 59, 999);
193 Expect.equals(SECONDS_YEAR_2035 * 1000 - 1, dt.millisecondsSinceEpoch); 193 Expect.equals(SECONDS_YEAR_2035 * 1000 - 1, dt.millisecondsSinceEpoch);
194 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 + 1); 194 dt = new DateTime.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 + 1);
195 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || 195 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) ||
196 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); 196 (2034 == dt.year && 12 == dt.month && 31 == dt.day));
197 Expect.equals(0, dt.second); 197 Expect.equals(0, dt.second);
198 Expect.equals(1, dt.millisecond); 198 Expect.equals(1, dt.millisecond);
199 Date dt2 = new Date( 199 DateTime dt2 = new DateTime(
200 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, 200 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second,
201 dt.millisecond); 201 dt.millisecond);
202 Expect.equals(dt.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); 202 Expect.equals(dt.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch);
203 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 - 1); 203 dt = new DateTime.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 - 1);
204 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || 204 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) ||
205 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); 205 (2034 == dt.year && 12 == dt.month && 31 == dt.day));
206 Expect.equals(59, dt.second); 206 Expect.equals(59, dt.second);
207 Expect.equals(999, dt.millisecond); 207 Expect.equals(999, dt.millisecond);
208 dt2 = new Date( 208 dt2 = new DateTime(
209 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, 209 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second,
210 dt.millisecond); 210 dt.millisecond);
211 Expect.equals(dt.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); 211 Expect.equals(dt.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch);
212 dt = new Date.fromMillisecondsSinceEpoch(2100000000 * 1000, isUtc: true); 212 dt = new DateTime.fromMillisecondsSinceEpoch(2100000000 * 1000, isUtc: true) ;
213 Expect.equals(2036, dt.year); 213 Expect.equals(2036, dt.year);
214 Expect.equals(7, dt.month); 214 Expect.equals(7, dt.month);
215 Expect.equals(18, dt.day); 215 Expect.equals(18, dt.day);
216 Expect.equals(13, dt.hour); 216 Expect.equals(13, dt.hour);
217 Expect.equals(20, dt.minute); 217 Expect.equals(20, dt.minute);
218 Expect.equals(0, dt.second); 218 Expect.equals(0, dt.second);
219 Expect.equals(0, dt.millisecond); 219 Expect.equals(0, dt.millisecond);
220 // Internally this will use the maximum value for the native calls. 220 // Internally this will use the maximum value for the native calls.
221 dt = new Date(2036, 7, 18, 13, 20); 221 dt = new DateTime(2036, 7, 18, 13, 20);
222 Expect.equals(2036, dt.year); 222 Expect.equals(2036, dt.year);
223 Expect.equals(7, dt.month); 223 Expect.equals(7, dt.month);
224 Expect.equals(18, dt.day); 224 Expect.equals(18, dt.day);
225 Expect.equals(13, dt.hour); 225 Expect.equals(13, dt.hour);
226 Expect.equals(20, dt.minute); 226 Expect.equals(20, dt.minute);
227 Expect.equals(0, dt.second); 227 Expect.equals(0, dt.second);
228 Expect.equals(0, dt.millisecond); 228 Expect.equals(0, dt.millisecond);
229 Expect.equals("2036-07-18 13:20:00.000", dt.toString()); 229 Expect.equals("2036-07-18 13:20:00.000", dt.toString());
230 } 230 }
231 231
232 static void testExtremes() { 232 static void testExtremes() {
233 var dt = 233 var dt =
234 new Date.fromMillisecondsSinceEpoch(8640000000000000, isUtc: true); 234 new DateTime.fromMillisecondsSinceEpoch(8640000000000000, isUtc: true);
235 Expect.equals(275760, dt.year); 235 Expect.equals(275760, dt.year);
236 Expect.equals(9, dt.month); 236 Expect.equals(9, dt.month);
237 Expect.equals(13, dt.day); 237 Expect.equals(13, dt.day);
238 Expect.equals(0, dt.hour); 238 Expect.equals(0, dt.hour);
239 Expect.equals(0, dt.minute); 239 Expect.equals(0, dt.minute);
240 Expect.equals(0, dt.second); 240 Expect.equals(0, dt.second);
241 Expect.equals(0, dt.millisecond); 241 Expect.equals(0, dt.millisecond);
242 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000, isUtc: true); 242 dt = new DateTime.fromMillisecondsSinceEpoch(-8640000000000000, isUtc: true) ;
243 Expect.equals(-271821, dt.year); 243 Expect.equals(-271821, dt.year);
244 Expect.equals(4, dt.month); 244 Expect.equals(4, dt.month);
245 Expect.equals(20, dt.day); 245 Expect.equals(20, dt.day);
246 Expect.equals(0, dt.hour); 246 Expect.equals(0, dt.hour);
247 Expect.equals(0, dt.minute); 247 Expect.equals(0, dt.minute);
248 Expect.equals(0, dt.second); 248 Expect.equals(0, dt.second);
249 Expect.equals(0, dt.millisecond); 249 Expect.equals(0, dt.millisecond);
250 // Make sure that we can build the extreme dates in local too. 250 // Make sure that we can build the extreme dates in local too.
251 dt = new Date.fromMillisecondsSinceEpoch(8640000000000000); 251 dt = new DateTime.fromMillisecondsSinceEpoch(8640000000000000);
252 dt = new Date(dt.year, dt.month, dt.day, dt.hour, dt.minute); 252 dt = new DateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute);
253 Expect.equals(8640000000000000, dt.millisecondsSinceEpoch); 253 Expect.equals(8640000000000000, dt.millisecondsSinceEpoch);
254 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000); 254 dt = new DateTime.fromMillisecondsSinceEpoch(-8640000000000000);
255 dt = new Date(dt.year, dt.month, dt.day, dt.hour, dt.minute); 255 dt = new DateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute);
256 Expect.equals(-8640000000000000, dt.millisecondsSinceEpoch); 256 Expect.equals(-8640000000000000, dt.millisecondsSinceEpoch);
257 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(8640000000000001, 257 Expect.throws(() => new DateTime.fromMillisecondsSinceEpoch(8640000000000001 ,
258 isUtc: true)); 258 isUtc: true));
259 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(-8640000000000001, 259 Expect.throws(() => new DateTime.fromMillisecondsSinceEpoch(-864000000000000 1,
260 isUtc: true)); 260 isUtc: true));
261 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(8640000000000001)); 261 Expect.throws(() => new DateTime.fromMillisecondsSinceEpoch(8640000000000001 ));
262 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(-8640000000000001)); 262 Expect.throws(() => new DateTime.fromMillisecondsSinceEpoch(-864000000000000 1));
263 dt = new Date.fromMillisecondsSinceEpoch(8640000000000000); 263 dt = new DateTime.fromMillisecondsSinceEpoch(8640000000000000);
264 Expect.throws(() => new Date(dt.year, dt.month, dt.day, 264 Expect.throws(() => new DateTime(dt.year, dt.month, dt.day,
265 dt.hour, dt.minute, 0, 1)); 265 dt.hour, dt.minute, 0, 1));
266 dt = new Date.fromMillisecondsSinceEpoch(8640000000000000, isUtc: true); 266 dt = new DateTime.fromMillisecondsSinceEpoch(8640000000000000, isUtc: true);
267 Expect.throws(() => new Date.utc(dt.year, dt.month, dt.day, 267 Expect.throws(() => new DateTime.utc(dt.year, dt.month, dt.day,
268 dt.hour, dt.minute, 0, 1)); 268 dt.hour, dt.minute, 0, 1));
269 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000); 269 dt = new DateTime.fromMillisecondsSinceEpoch(-8640000000000000);
270 Expect.throws(() => new Date(dt.year, dt.month, dt.day, 270 Expect.throws(() => new DateTime(dt.year, dt.month, dt.day,
271 dt.hour, dt.minute, 0, -1)); 271 dt.hour, dt.minute, 0, -1));
272 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000, isUtc: true); 272 dt = new DateTime.fromMillisecondsSinceEpoch(-8640000000000000, isUtc: true) ;
273 Expect.throws(() => new Date.utc(dt.year, dt.month, dt.day, 273 Expect.throws(() => new DateTime.utc(dt.year, dt.month, dt.day,
274 dt.hour, dt.minute, 0, -1)); 274 dt.hour, dt.minute, 0, -1));
275 } 275 }
276 276
277 static void testUTCGetters() { 277 static void testUTCGetters() {
278 var dt = new Date.fromMillisecondsSinceEpoch(1305140315000, isUtc: true); 278 var dt = new DateTime.fromMillisecondsSinceEpoch(1305140315000, isUtc: true) ;
279 Expect.equals(2011, dt.year); 279 Expect.equals(2011, dt.year);
280 Expect.equals(5, dt.month); 280 Expect.equals(5, dt.month);
281 Expect.equals(11, dt.day); 281 Expect.equals(11, dt.day);
282 Expect.equals(18, dt.hour); 282 Expect.equals(18, dt.hour);
283 Expect.equals(58, dt.minute); 283 Expect.equals(58, dt.minute);
284 Expect.equals(35, dt.second); 284 Expect.equals(35, dt.second);
285 Expect.equals(0, dt.millisecond); 285 Expect.equals(0, dt.millisecond);
286 Expect.equals(true, dt.isUtc); 286 Expect.equals(true, dt.isUtc);
287 Expect.equals(1305140315000, dt.millisecondsSinceEpoch); 287 Expect.equals(1305140315000, dt.millisecondsSinceEpoch);
288 dt = new Date.fromMillisecondsSinceEpoch(-9999999, isUtc: true); 288 dt = new DateTime.fromMillisecondsSinceEpoch(-9999999, isUtc: true);
289 Expect.equals(1969, dt.year); 289 Expect.equals(1969, dt.year);
290 Expect.equals(12, dt.month); 290 Expect.equals(12, dt.month);
291 Expect.equals(31, dt.day); 291 Expect.equals(31, dt.day);
292 Expect.equals(21, dt.hour); 292 Expect.equals(21, dt.hour);
293 Expect.equals(13, dt.minute); 293 Expect.equals(13, dt.minute);
294 Expect.equals(20, dt.second); 294 Expect.equals(20, dt.second);
295 Expect.equals(1, dt.millisecond); 295 Expect.equals(1, dt.millisecond);
296 } 296 }
297 297
298 static void testLocalGetters() { 298 static void testLocalGetters() {
299 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); 299 var dt1 = new DateTime.fromMillisecondsSinceEpoch(1305140315000);
300 var dt2 = new Date.utc(dt1.year, dt1.month, dt1.day, 300 var dt2 = new DateTime.utc(dt1.year, dt1.month, dt1.day,
301 dt1.hour, dt1.minute, dt1.second, dt1.millisecond); 301 dt1.hour, dt1.minute, dt1.second, dt1.millisecond);
302 Duration zoneOffset = dt1.difference(dt2); 302 Duration zoneOffset = dt1.difference(dt2);
303 Expect.equals(true, zoneOffset.inDays == 0); 303 Expect.equals(true, zoneOffset.inDays == 0);
304 Expect.equals(true, zoneOffset.inHours.abs() <= 12); 304 Expect.equals(true, zoneOffset.inHours.abs() <= 12);
305 Expect.equals(dt1.year, dt2.year); 305 Expect.equals(dt1.year, dt2.year);
306 Expect.equals(dt1.month, dt2.month); 306 Expect.equals(dt1.month, dt2.month);
307 Expect.equals(true, (dt1.day - dt2.day).abs() <= 1); 307 Expect.equals(true, (dt1.day - dt2.day).abs() <= 1);
308 Expect.equals(true, dt1.hour < 24); 308 Expect.equals(true, dt1.hour < 24);
309 // There are timezones with 0.5 or 0.25 hour offsets. 309 // There are timezones with 0.5 or 0.25 hour offsets.
310 Expect.equals(true, 310 Expect.equals(true,
311 (dt1.minute == dt2.minute) || 311 (dt1.minute == dt2.minute) ||
312 ((dt1.minute - dt2.minute).abs() == 30) || 312 ((dt1.minute - dt2.minute).abs() == 30) ||
313 ((dt1.minute - dt2.minute).abs() == 15)); 313 ((dt1.minute - dt2.minute).abs() == 15));
314 Expect.equals(dt1.second, dt2.second); 314 Expect.equals(dt1.second, dt2.second);
315 Expect.equals(dt1.millisecond, dt2.millisecond); 315 Expect.equals(dt1.millisecond, dt2.millisecond);
316 } 316 }
317 317
318 static void testConstructors() { 318 static void testConstructors() {
319 var dt0 = new Date.utc(2011, 5, 11, 18, 58, 35, 0); 319 var dt0 = new DateTime.utc(2011, 5, 11, 18, 58, 35, 0);
320 Expect.equals(1305140315000, dt0.millisecondsSinceEpoch); 320 Expect.equals(1305140315000, dt0.millisecondsSinceEpoch);
321 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); 321 var dt1 = new DateTime.fromMillisecondsSinceEpoch(1305140315000);
322 Expect.equals(dt1.millisecondsSinceEpoch, dt0.millisecondsSinceEpoch); 322 Expect.equals(dt1.millisecondsSinceEpoch, dt0.millisecondsSinceEpoch);
323 Expect.equals(true, dt1 == dt0); 323 Expect.equals(true, dt1 == dt0);
324 var dt3 = new Date(dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, 324 var dt3 = new DateTime(dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute,
325 dt1.second, dt1.millisecond); 325 dt1.second, dt1.millisecond);
326 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); 326 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch);
327 Expect.equals(true, dt1 == dt3); 327 Expect.equals(true, dt1 == dt3);
328 dt3 = new Date( 328 dt3 = new DateTime(
329 dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, 329 dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute,
330 dt1.second, dt1.millisecond); 330 dt1.second, dt1.millisecond);
331 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); 331 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch);
332 Expect.equals(true, dt1 == dt3); 332 Expect.equals(true, dt1 == dt3);
333 var dt2 = dt1.toLocal(); 333 var dt2 = dt1.toLocal();
334 dt3 = new Date(2011, 5, dt1.day, dt1.hour, dt1.minute, 35, 0); 334 dt3 = new DateTime(2011, 5, dt1.day, dt1.hour, dt1.minute, 35, 0);
335 Expect.equals(dt2.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); 335 Expect.equals(dt2.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch);
336 Expect.equals(true, dt2 == dt3); 336 Expect.equals(true, dt2 == dt3);
337 dt1 = new Date.fromMillisecondsSinceEpoch(-9999999, isUtc: true); 337 dt1 = new DateTime.fromMillisecondsSinceEpoch(-9999999, isUtc: true);
338 dt3 = new Date.utc(dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, 338 dt3 = new DateTime.utc(dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute,
339 dt1.second, dt1.millisecond); 339 dt1.second, dt1.millisecond);
340 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); 340 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch);
341 dt3 = new Date.utc(99, 1, 2, 10, 11, 12, 0); 341 dt3 = new DateTime.utc(99, 1, 2, 10, 11, 12, 0);
342 Expect.equals(99, dt3.year); 342 Expect.equals(99, dt3.year);
343 Expect.equals(1, dt3.month); 343 Expect.equals(1, dt3.month);
344 Expect.equals(2, dt3.day); 344 Expect.equals(2, dt3.day);
345 Expect.equals(10, dt3.hour); 345 Expect.equals(10, dt3.hour);
346 Expect.equals(11, dt3.minute); 346 Expect.equals(11, dt3.minute);
347 Expect.equals(12, dt3.second); 347 Expect.equals(12, dt3.second);
348 Expect.equals(0, dt3.millisecond); 348 Expect.equals(0, dt3.millisecond);
349 Expect.equals(true, dt3.isUtc); 349 Expect.equals(true, dt3.isUtc);
350 var dt4 = new Date(99, 1, 2); 350 var dt4 = new DateTime(99, 1, 2);
351 Expect.equals(99, dt4.year); 351 Expect.equals(99, dt4.year);
352 Expect.equals(1, dt4.month); 352 Expect.equals(1, dt4.month);
353 Expect.equals(2, dt4.day); 353 Expect.equals(2, dt4.day);
354 Expect.equals(0, dt4.hour); 354 Expect.equals(0, dt4.hour);
355 Expect.equals(0, dt4.minute); 355 Expect.equals(0, dt4.minute);
356 Expect.equals(0, dt4.second); 356 Expect.equals(0, dt4.second);
357 Expect.equals(0, dt4.millisecond); 357 Expect.equals(0, dt4.millisecond);
358 Expect.isFalse(dt4.isUtc); 358 Expect.isFalse(dt4.isUtc);
359 var dt5 = new Date.utc(99, 1, 2); 359 var dt5 = new DateTime.utc(99, 1, 2);
360 Expect.equals(99, dt5.year); 360 Expect.equals(99, dt5.year);
361 Expect.equals(1, dt5.month); 361 Expect.equals(1, dt5.month);
362 Expect.equals(2, dt5.day); 362 Expect.equals(2, dt5.day);
363 Expect.equals(0, dt5.hour); 363 Expect.equals(0, dt5.hour);
364 Expect.equals(0, dt5.minute); 364 Expect.equals(0, dt5.minute);
365 Expect.equals(0, dt5.second); 365 Expect.equals(0, dt5.second);
366 Expect.equals(0, dt5.millisecond); 366 Expect.equals(0, dt5.millisecond);
367 Expect.isTrue(dt5.isUtc); 367 Expect.isTrue(dt5.isUtc);
368 var dt6 = new Date(2012, 2, 27, 13, 27, 0); 368 var dt6 = new DateTime(2012, 2, 27, 13, 27, 0);
369 Expect.equals(2012, dt6.year); 369 Expect.equals(2012, dt6.year);
370 Expect.equals(2, dt6.month); 370 Expect.equals(2, dt6.month);
371 Expect.equals(27, dt6.day); 371 Expect.equals(27, dt6.day);
372 Expect.equals(13, dt6.hour); 372 Expect.equals(13, dt6.hour);
373 Expect.equals(27, dt6.minute); 373 Expect.equals(27, dt6.minute);
374 Expect.equals(0, dt6.second); 374 Expect.equals(0, dt6.second);
375 Expect.equals(0, dt6.millisecond); 375 Expect.equals(0, dt6.millisecond);
376 Expect.isFalse(dt6.isUtc); 376 Expect.isFalse(dt6.isUtc);
377 var dt7 = new Date.utc(2012, 2, 27, 13, 27, 0); 377 var dt7 = new DateTime.utc(2012, 2, 27, 13, 27, 0);
378 Expect.equals(2012, dt7.year); 378 Expect.equals(2012, dt7.year);
379 Expect.equals(2, dt7.month); 379 Expect.equals(2, dt7.month);
380 Expect.equals(27, dt7.day); 380 Expect.equals(27, dt7.day);
381 Expect.equals(13, dt7.hour); 381 Expect.equals(13, dt7.hour);
382 Expect.equals(27, dt7.minute); 382 Expect.equals(27, dt7.minute);
383 Expect.equals(0, dt7.second); 383 Expect.equals(0, dt7.second);
384 Expect.equals(0, dt7.millisecond); 384 Expect.equals(0, dt7.millisecond);
385 Expect.isTrue(dt7.isUtc); 385 Expect.isTrue(dt7.isUtc);
386 } 386 }
387 387
388 static void testChangeTimeZone() { 388 static void testChangeTimeZone() {
389 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); 389 var dt1 = new DateTime.fromMillisecondsSinceEpoch(1305140315000);
390 var dt2 = dt1.toUtc(); 390 var dt2 = dt1.toUtc();
391 Expect.equals(dt1.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); 391 Expect.equals(dt1.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch);
392 var dt3 = new Date.fromMillisecondsSinceEpoch(1305140315000, isUtc: true); 392 var dt3 = new DateTime.fromMillisecondsSinceEpoch(1305140315000, isUtc: true );
393 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); 393 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch);
394 Expect.equals(dt2.year, dt3.year); 394 Expect.equals(dt2.year, dt3.year);
395 Expect.equals(dt2.month, dt3.month); 395 Expect.equals(dt2.month, dt3.month);
396 Expect.equals(dt2.day, dt3.day); 396 Expect.equals(dt2.day, dt3.day);
397 Expect.equals(dt2.hour, dt3.hour); 397 Expect.equals(dt2.hour, dt3.hour);
398 Expect.equals(dt2.minute, dt3.minute); 398 Expect.equals(dt2.minute, dt3.minute);
399 Expect.equals(dt2.second, dt3.second); 399 Expect.equals(dt2.second, dt3.second);
400 Expect.equals(dt2.millisecond, dt3.millisecond); 400 Expect.equals(dt2.millisecond, dt3.millisecond);
401 var dt4 = dt3.toLocal(); 401 var dt4 = dt3.toLocal();
402 Expect.equals(dt1.year, dt4.year); 402 Expect.equals(dt1.year, dt4.year);
403 Expect.equals(dt1.month, dt4.month); 403 Expect.equals(dt1.month, dt4.month);
404 Expect.equals(dt1.day, dt4.day); 404 Expect.equals(dt1.day, dt4.day);
405 Expect.equals(dt1.hour, dt4.hour); 405 Expect.equals(dt1.hour, dt4.hour);
406 Expect.equals(dt1.minute, dt4.minute); 406 Expect.equals(dt1.minute, dt4.minute);
407 Expect.equals(dt1.second, dt4.second); 407 Expect.equals(dt1.second, dt4.second);
408 Expect.equals(dt1.millisecond, dt4.millisecond); 408 Expect.equals(dt1.millisecond, dt4.millisecond);
409 } 409 }
410 410
411 static void testSubAdd() { 411 static void testSubAdd() {
412 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000, isUtc: true); 412 var dt1 = new DateTime.fromMillisecondsSinceEpoch(1305140315000, isUtc: true );
413 var dt2 = dt1.add(new Duration(milliseconds: 413 var dt2 = dt1.add(new Duration(milliseconds:
414 3 * Duration.MILLISECONDS_PER_SECOND + 5)); 414 3 * Duration.MILLISECONDS_PER_SECOND + 5));
415 Expect.equals(dt1.year, dt2.year); 415 Expect.equals(dt1.year, dt2.year);
416 Expect.equals(dt1.month, dt2.month); 416 Expect.equals(dt1.month, dt2.month);
417 Expect.equals(dt1.day, dt2.day); 417 Expect.equals(dt1.day, dt2.day);
418 Expect.equals(dt1.hour, dt2.hour); 418 Expect.equals(dt1.hour, dt2.hour);
419 Expect.equals(dt1.minute, dt2.minute); 419 Expect.equals(dt1.minute, dt2.minute);
420 Expect.equals(dt1.second + 3, dt2.second); 420 Expect.equals(dt1.second + 3, dt2.second);
421 Expect.equals(dt1.millisecond + 5, dt2.millisecond); 421 Expect.equals(dt1.millisecond + 5, dt2.millisecond);
422 var dt3 = dt2.subtract(new Duration(milliseconds: 422 var dt3 = dt2.subtract(new Duration(milliseconds:
423 3 * Duration.MILLISECONDS_PER_SECOND + 5)); 423 3 * Duration.MILLISECONDS_PER_SECOND + 5));
424 Expect.equals(true, dt1 == dt3); 424 Expect.equals(true, dt1 == dt3);
425 Expect.equals(false, dt1 == dt2); 425 Expect.equals(false, dt1 == dt2);
426 } 426 }
427 427
428 static void testUnderflowAndOverflow() { 428 static void testUnderflowAndOverflow() {
429 final dtBase = new Date(2012, 6, 20, 12, 30, 30, 500); 429 final dtBase = new DateTime(2012, 6, 20, 12, 30, 30, 500);
430 430
431 // Millisecond 431 // Millisecond
432 print(" >>> Millisecond+"); 432 print(" >>> Millisecond+");
433 var dt = new Date(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, 433 var dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, dtBase.hour,
434 dtBase.minute, dtBase.second, 1000); 434 dtBase.minute, dtBase.second, 1000);
435 Expect.equals(dtBase.year, dt.year); 435 Expect.equals(dtBase.year, dt.year);
436 Expect.equals(dtBase.month, dt.month); 436 Expect.equals(dtBase.month, dt.month);
437 Expect.equals(dtBase.day, dt.day); 437 Expect.equals(dtBase.day, dt.day);
438 Expect.equals(dtBase.hour, dt.hour); 438 Expect.equals(dtBase.hour, dt.hour);
439 Expect.equals(dtBase.minute, dt.minute); 439 Expect.equals(dtBase.minute, dt.minute);
440 Expect.equals(dtBase.second + 1, dt.second); 440 Expect.equals(dtBase.second + 1, dt.second);
441 Expect.equals(0, dt.millisecond); 441 Expect.equals(0, dt.millisecond);
442 442
443 print(" >>> Millisecond-"); 443 print(" >>> Millisecond-");
444 dt = new Date(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, 444 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, dtBase.hour,
445 dtBase.minute, dtBase.second, -1000); 445 dtBase.minute, dtBase.second, -1000);
446 Expect.equals(dtBase.year, dt.year); 446 Expect.equals(dtBase.year, dt.year);
447 Expect.equals(dtBase.month, dt.month); 447 Expect.equals(dtBase.month, dt.month);
448 Expect.equals(dtBase.day, dt.day); 448 Expect.equals(dtBase.day, dt.day);
449 Expect.equals(dtBase.hour, dt.hour); 449 Expect.equals(dtBase.hour, dt.hour);
450 Expect.equals(dtBase.minute, dt.minute); 450 Expect.equals(dtBase.minute, dt.minute);
451 Expect.equals(dtBase.second - 1, dt.second); 451 Expect.equals(dtBase.second - 1, dt.second);
452 Expect.equals(0, dt.millisecond); 452 Expect.equals(0, dt.millisecond);
453 453
454 // Second 454 // Second
455 print(" >>> Second+"); 455 print(" >>> Second+");
456 dt = new Date(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, 456 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, dtBase.hour,
457 dtBase.minute, 60, dtBase.millisecond); 457 dtBase.minute, 60, dtBase.millisecond);
458 Expect.equals(dtBase.year, dt.year); 458 Expect.equals(dtBase.year, dt.year);
459 Expect.equals(dtBase.month, dt.month); 459 Expect.equals(dtBase.month, dt.month);
460 Expect.equals(dtBase.day, dt.day); 460 Expect.equals(dtBase.day, dt.day);
461 Expect.equals(dtBase.hour, dt.hour); 461 Expect.equals(dtBase.hour, dt.hour);
462 Expect.equals(dtBase.minute + 1, dt.minute); 462 Expect.equals(dtBase.minute + 1, dt.minute);
463 Expect.equals(0, dt.second); 463 Expect.equals(0, dt.second);
464 Expect.equals(dtBase.millisecond, dt.millisecond); 464 Expect.equals(dtBase.millisecond, dt.millisecond);
465 465
466 print(" >>> Second-"); 466 print(" >>> Second-");
467 dt = new Date(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, 467 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, dtBase.hour,
468 dtBase.minute, -60, dtBase.millisecond); 468 dtBase.minute, -60, dtBase.millisecond);
469 Expect.equals(dtBase.year, dt.year); 469 Expect.equals(dtBase.year, dt.year);
470 Expect.equals(dtBase.month, dt.month); 470 Expect.equals(dtBase.month, dt.month);
471 Expect.equals(dtBase.day, dt.day); 471 Expect.equals(dtBase.day, dt.day);
472 Expect.equals(dtBase.hour, dt.hour); 472 Expect.equals(dtBase.hour, dt.hour);
473 Expect.equals(dtBase.minute - 1, dt.minute); 473 Expect.equals(dtBase.minute - 1, dt.minute);
474 Expect.equals(0, dt.second); 474 Expect.equals(0, dt.second);
475 Expect.equals(dtBase.millisecond, dt.millisecond); 475 Expect.equals(dtBase.millisecond, dt.millisecond);
476 476
477 // Minute 477 // Minute
478 print(" >>> Minute+"); 478 print(" >>> Minute+");
479 dt = new Date(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, 60, 479 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, 60,
480 dtBase.second, dtBase.millisecond); 480 dtBase.second, dtBase.millisecond);
481 Expect.equals(dtBase.year, dt.year); 481 Expect.equals(dtBase.year, dt.year);
482 Expect.equals(dtBase.month, dt.month); 482 Expect.equals(dtBase.month, dt.month);
483 Expect.equals(dtBase.day, dt.day); 483 Expect.equals(dtBase.day, dt.day);
484 Expect.equals(dtBase.hour + 1, dt.hour); 484 Expect.equals(dtBase.hour + 1, dt.hour);
485 Expect.equals(0, dt.minute); 485 Expect.equals(0, dt.minute);
486 Expect.equals(dtBase.second, dt.second); 486 Expect.equals(dtBase.second, dt.second);
487 Expect.equals(dtBase.millisecond, dt.millisecond); 487 Expect.equals(dtBase.millisecond, dt.millisecond);
488 488
489 print(" >>> Minute-"); 489 print(" >>> Minute-");
490 dt = new Date(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, -60, 490 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, -60,
491 dtBase.second, dtBase.millisecond); 491 dtBase.second, dtBase.millisecond);
492 Expect.equals(dtBase.year, dt.year); 492 Expect.equals(dtBase.year, dt.year);
493 Expect.equals(dtBase.month, dt.month); 493 Expect.equals(dtBase.month, dt.month);
494 Expect.equals(dtBase.day, dt.day); 494 Expect.equals(dtBase.day, dt.day);
495 Expect.equals(dtBase.hour - 1, dt.hour); 495 Expect.equals(dtBase.hour - 1, dt.hour);
496 Expect.equals(0, dt.minute); 496 Expect.equals(0, dt.minute);
497 Expect.equals(dtBase.second, dt.second); 497 Expect.equals(dtBase.second, dt.second);
498 Expect.equals(dtBase.millisecond, dt.millisecond); 498 Expect.equals(dtBase.millisecond, dt.millisecond);
499 499
500 // Hour 500 // Hour
501 print(" >>> Hour+"); 501 print(" >>> Hour+");
502 dt = new Date(dtBase.year, dtBase.month, dtBase.day, 24, dtBase.minute, 502 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, 24, dtBase.minute,
503 dtBase.second, dtBase.millisecond); 503 dtBase.second, dtBase.millisecond);
504 Expect.equals(dtBase.year, dt.year); 504 Expect.equals(dtBase.year, dt.year);
505 Expect.equals(dtBase.month, dt.month); 505 Expect.equals(dtBase.month, dt.month);
506 Expect.equals(dtBase.day + 1, dt.day); 506 Expect.equals(dtBase.day + 1, dt.day);
507 Expect.equals(0, dt.hour); 507 Expect.equals(0, dt.hour);
508 Expect.equals(dtBase.minute, dt.minute); 508 Expect.equals(dtBase.minute, dt.minute);
509 Expect.equals(dtBase.second, dt.second); 509 Expect.equals(dtBase.second, dt.second);
510 Expect.equals(dtBase.millisecond, dt.millisecond); 510 Expect.equals(dtBase.millisecond, dt.millisecond);
511 511
512 print(" >>> Hour-"); 512 print(" >>> Hour-");
513 dt = new Date(dtBase.year, dtBase.month, dtBase.day, -24, dtBase.minute, 513 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, -24, dtBase.minute,
514 dtBase.second, dtBase.millisecond); 514 dtBase.second, dtBase.millisecond);
515 Expect.equals(dtBase.year, dt.year); 515 Expect.equals(dtBase.year, dt.year);
516 Expect.equals(dtBase.month, dt.month); 516 Expect.equals(dtBase.month, dt.month);
517 Expect.equals(dtBase.day - 1, dt.day); 517 Expect.equals(dtBase.day - 1, dt.day);
518 Expect.equals(0, dt.hour); 518 Expect.equals(0, dt.hour);
519 Expect.equals(dtBase.minute, dt.minute); 519 Expect.equals(dtBase.minute, dt.minute);
520 Expect.equals(dtBase.second, dt.second); 520 Expect.equals(dtBase.second, dt.second);
521 Expect.equals(dtBase.millisecond, dt.millisecond); 521 Expect.equals(dtBase.millisecond, dt.millisecond);
522 522
523 // Day 523 // Day
524 print(" >>> Day+"); 524 print(" >>> Day+");
525 dt = new Date(dtBase.year, dtBase.month, 31, dtBase.hour, dtBase.minute, 525 dt = new DateTime(dtBase.year, dtBase.month, 31, dtBase.hour, dtBase.minute,
526 dtBase.second, dtBase.millisecond); 526 dtBase.second, dtBase.millisecond);
527 Expect.equals(dtBase.year, dt.year); 527 Expect.equals(dtBase.year, dt.year);
528 Expect.equals(dtBase.month + 1, dt.month); 528 Expect.equals(dtBase.month + 1, dt.month);
529 Expect.equals(1, dt.day); 529 Expect.equals(1, dt.day);
530 Expect.equals(dtBase.hour, dt.hour); 530 Expect.equals(dtBase.hour, dt.hour);
531 Expect.equals(dtBase.minute, dt.minute); 531 Expect.equals(dtBase.minute, dt.minute);
532 Expect.equals(dtBase.second, dt.second); 532 Expect.equals(dtBase.second, dt.second);
533 Expect.equals(dtBase.millisecond, dt.millisecond); 533 Expect.equals(dtBase.millisecond, dt.millisecond);
534 534
535 print(" >>> Day-"); 535 print(" >>> Day-");
536 dt = new Date(dtBase.year, dtBase.month, -30, dtBase.hour, dtBase.minute, 536 dt = new DateTime(dtBase.year, dtBase.month, -30, dtBase.hour, dtBase.minute ,
537 dtBase.second, dtBase.millisecond); 537 dtBase.second, dtBase.millisecond);
538 Expect.equals(dtBase.year, dt.year); 538 Expect.equals(dtBase.year, dt.year);
539 Expect.equals(dtBase.month - 1, dt.month); 539 Expect.equals(dtBase.month - 1, dt.month);
540 Expect.equals(1, dt.day); 540 Expect.equals(1, dt.day);
541 Expect.equals(dtBase.hour, dt.hour); 541 Expect.equals(dtBase.hour, dt.hour);
542 Expect.equals(dtBase.minute, dt.minute); 542 Expect.equals(dtBase.minute, dt.minute);
543 Expect.equals(dtBase.second, dt.second); 543 Expect.equals(dtBase.second, dt.second);
544 Expect.equals(dtBase.millisecond, dt.millisecond); 544 Expect.equals(dtBase.millisecond, dt.millisecond);
545 545
546 // Month 546 // Month
547 print(" >>> Month+"); 547 print(" >>> Month+");
548 dt = new Date(dtBase.year, 13, dtBase.day, dtBase.hour, dtBase.minute, 548 dt = new DateTime(dtBase.year, 13, dtBase.day, dtBase.hour, dtBase.minute,
549 dtBase.second, dtBase.millisecond); 549 dtBase.second, dtBase.millisecond);
550 Expect.equals(dtBase.year + 1, dt.year); 550 Expect.equals(dtBase.year + 1, dt.year);
551 Expect.equals(1, dt.month); 551 Expect.equals(1, dt.month);
552 Expect.equals(dtBase.day, dt.day); 552 Expect.equals(dtBase.day, dt.day);
553 Expect.equals(dtBase.hour, dt.hour); 553 Expect.equals(dtBase.hour, dt.hour);
554 Expect.equals(dtBase.minute, dt.minute); 554 Expect.equals(dtBase.minute, dt.minute);
555 Expect.equals(dtBase.second, dt.second); 555 Expect.equals(dtBase.second, dt.second);
556 Expect.equals(dtBase.millisecond, dt.millisecond); 556 Expect.equals(dtBase.millisecond, dt.millisecond);
557 557
558 print(" >>> Month-"); 558 print(" >>> Month-");
559 dt = new Date(dtBase.year, -11, dtBase.day, dtBase.hour, dtBase.minute, 559 dt = new DateTime(dtBase.year, -11, dtBase.day, dtBase.hour, dtBase.minute,
560 dtBase.second, dtBase.millisecond); 560 dtBase.second, dtBase.millisecond);
561 Expect.equals(dtBase.year - 1, dt.year); 561 Expect.equals(dtBase.year - 1, dt.year);
562 Expect.equals(1, dt.month); 562 Expect.equals(1, dt.month);
563 Expect.equals(dtBase.day, dt.day); 563 Expect.equals(dtBase.day, dt.day);
564 Expect.equals(dtBase.hour, dt.hour); 564 Expect.equals(dtBase.hour, dt.hour);
565 Expect.equals(dtBase.minute, dt.minute); 565 Expect.equals(dtBase.minute, dt.minute);
566 Expect.equals(dtBase.second, dt.second); 566 Expect.equals(dtBase.second, dt.second);
567 Expect.equals(dtBase.millisecond, dt.millisecond); 567 Expect.equals(dtBase.millisecond, dt.millisecond);
568 568
569 // Flowing all the way up the chain. 569 // Flowing all the way up the chain.
570 print(" >>> Flow+"); 570 print(" >>> Flow+");
571 var dtBase1 = new Date(2012, 12, 31, 23, 59, 59, 999); 571 var dtBase1 = new DateTime(2012, 12, 31, 23, 59, 59, 999);
572 var dtTick = new Date(dtBase1.year, dtBase1.month, dtBase1.day, 572 var dtTick = new DateTime(dtBase1.year, dtBase1.month, dtBase1.day,
573 dtBase1.hour, dtBase1.minute, dtBase1.second, 573 dtBase1.hour, dtBase1.minute, dtBase1.second,
574 dtBase1.millisecond + 1); 574 dtBase1.millisecond + 1);
575 Expect.equals(dtBase1.year + 1, dtTick.year); 575 Expect.equals(dtBase1.year + 1, dtTick.year);
576 Expect.equals(1, dtTick.month); 576 Expect.equals(1, dtTick.month);
577 Expect.equals(1, dtTick.day); 577 Expect.equals(1, dtTick.day);
578 Expect.equals(0, dtTick.hour); 578 Expect.equals(0, dtTick.hour);
579 Expect.equals(0, dtTick.minute); 579 Expect.equals(0, dtTick.minute);
580 Expect.equals(0, dtTick.second); 580 Expect.equals(0, dtTick.second);
581 Expect.equals(0, dtTick.millisecond); 581 Expect.equals(0, dtTick.millisecond);
582 582
583 print(" >>> Flow-"); 583 print(" >>> Flow-");
584 dtBase1 = new Date(2012, 1, 1, 0, 0, 0, 0); 584 dtBase1 = new DateTime(2012, 1, 1, 0, 0, 0, 0);
585 dtTick = new Date(dtBase1.year, dtBase1.month, dtBase1.day, dtBase1.hour, 585 dtTick = new DateTime(dtBase1.year, dtBase1.month, dtBase1.day, dtBase1.hour ,
586 dtBase1.minute, dtBase1.second, dtBase1.millisecond - 1); 586 dtBase1.minute, dtBase1.second, dtBase1.millisecond - 1);
587 Expect.equals(dtBase1.year - 1, dtTick.year); 587 Expect.equals(dtBase1.year - 1, dtTick.year);
588 Expect.equals(12, dtTick.month); 588 Expect.equals(12, dtTick.month);
589 Expect.equals(31, dtTick.day); 589 Expect.equals(31, dtTick.day);
590 Expect.equals(23, dtTick.hour); 590 Expect.equals(23, dtTick.hour);
591 Expect.equals(59, dtTick.minute); 591 Expect.equals(59, dtTick.minute);
592 Expect.equals(59, dtTick.second); 592 Expect.equals(59, dtTick.second);
593 Expect.equals(999, dtTick.millisecond); 593 Expect.equals(999, dtTick.millisecond);
594 594
595 print(" >>> extra underflow"); 595 print(" >>> extra underflow");
596 dtTick = new Date(dtBase1.year, dtBase1.month, dtBase1.day, -17520, 596 dtTick = new DateTime(dtBase1.year, dtBase1.month, dtBase1.day, -17520,
597 dtBase1.minute, dtBase1.second, dtBase1.millisecond); 597 dtBase1.minute, dtBase1.second, dtBase1.millisecond);
598 Expect.equals(dtBase1.year - 2, dtTick.year); 598 Expect.equals(dtBase1.year - 2, dtTick.year);
599 Expect.equals(dtBase1.month, dtTick.month); 599 Expect.equals(dtBase1.month, dtTick.month);
600 Expect.equals(dtBase1.day, dtTick.day); 600 Expect.equals(dtBase1.day, dtTick.day);
601 Expect.equals(dtBase1.hour, dtTick.hour); 601 Expect.equals(dtBase1.hour, dtTick.hour);
602 Expect.equals(dtBase1.minute, dtTick.minute); 602 Expect.equals(dtBase1.minute, dtTick.minute);
603 Expect.equals(dtBase1.second, dtTick.second); 603 Expect.equals(dtBase1.second, dtTick.second);
604 Expect.equals(dtBase1.millisecond, dtTick.millisecond); 604 Expect.equals(dtBase1.millisecond, dtTick.millisecond);
605 } 605 }
606 606
607 static void testDateStrings() { 607 static void testDateStrings() {
608 // TODO(floitsch): Clean up the Date API that deals with strings. 608 // TODO(floitsch): Clean up the DateTime API that deals with strings.
609 var dt1 = new Date.fromString("2011-05-11 18:58:35Z"); 609 var dt1 = new DateTime.fromString("2011-05-11 18:58:35Z");
610 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch); 610 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch);
611 Expect.isTrue(dt1.isUtc); 611 Expect.isTrue(dt1.isUtc);
612 dt1 = new Date.fromString("20110511 18:58:35z"); 612 dt1 = new DateTime.fromString("20110511 18:58:35z");
613 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch); 613 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch);
614 Expect.isTrue(dt1.isUtc); 614 Expect.isTrue(dt1.isUtc);
615 dt1 = new Date.fromString("+20110511 18:58:35z"); 615 dt1 = new DateTime.fromString("+20110511 18:58:35z");
616 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch); 616 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch);
617 Expect.isTrue(dt1.isUtc); 617 Expect.isTrue(dt1.isUtc);
618 var str = dt1.toString(); 618 var str = dt1.toString();
619 var dt2 = new Date.fromString(str); 619 var dt2 = new DateTime.fromString(str);
620 Expect.equals(true, dt1 == dt2); 620 Expect.equals(true, dt1 == dt2);
621 var dt3 = dt1.toUtc(); 621 var dt3 = dt1.toUtc();
622 str = dt3.toString(); 622 str = dt3.toString();
623 Expect.equals("2011-05-11 18:58:35.000Z", str); 623 Expect.equals("2011-05-11 18:58:35.000Z", str);
624 var dt4 = new Date.fromString("-1234-01-01 00:00:00Z"); 624 var dt4 = new DateTime.fromString("-1234-01-01 00:00:00Z");
625 Expect.equals(-1234, dt4.year); 625 Expect.equals(-1234, dt4.year);
626 Expect.equals(1, dt4.month); 626 Expect.equals(1, dt4.month);
627 Expect.equals(1, dt4.day); 627 Expect.equals(1, dt4.day);
628 Expect.equals(0, dt4.hour); 628 Expect.equals(0, dt4.hour);
629 Expect.equals(0, dt4.minute); 629 Expect.equals(0, dt4.minute);
630 Expect.equals(0, dt4.second); 630 Expect.equals(0, dt4.second);
631 Expect.equals(0, dt4.millisecond); 631 Expect.equals(0, dt4.millisecond);
632 Expect.isTrue(dt4.isUtc); 632 Expect.isTrue(dt4.isUtc);
633 var dt5 = new Date.fromString("0099-01-02"); 633 var dt5 = new DateTime.fromString("0099-01-02");
634 Expect.equals(99, dt5.year); 634 Expect.equals(99, dt5.year);
635 Expect.equals(1, dt5.month); 635 Expect.equals(1, dt5.month);
636 Expect.equals(2, dt5.day); 636 Expect.equals(2, dt5.day);
637 Expect.equals(0, dt5.hour); 637 Expect.equals(0, dt5.hour);
638 Expect.equals(0, dt5.minute); 638 Expect.equals(0, dt5.minute);
639 Expect.equals(0, dt5.second); 639 Expect.equals(0, dt5.second);
640 Expect.equals(0, dt5.millisecond); 640 Expect.equals(0, dt5.millisecond);
641 Expect.isFalse(dt5.isUtc); 641 Expect.isFalse(dt5.isUtc);
642 var dt6 = new Date.fromString("2012-01-01 00:00:10.012"); 642 var dt6 = new DateTime.fromString("2012-01-01 00:00:10.012");
643 Expect.equals(12, dt6.millisecond); 643 Expect.equals(12, dt6.millisecond);
644 dt6 = new Date.fromString("2012-01-01 00:00:10.003"); 644 dt6 = new DateTime.fromString("2012-01-01 00:00:10.003");
645 Expect.equals(3, dt6.millisecond); 645 Expect.equals(3, dt6.millisecond);
646 dt6 = new Date.fromString("2012-01-01 00:00:10.5"); 646 dt6 = new DateTime.fromString("2012-01-01 00:00:10.5");
647 Expect.equals(500, dt6.millisecond); 647 Expect.equals(500, dt6.millisecond);
648 dt6 = new Date.fromString("2012-01-01 00:00:10.003Z"); 648 dt6 = new DateTime.fromString("2012-01-01 00:00:10.003Z");
649 Expect.equals(3, dt6.millisecond); 649 Expect.equals(3, dt6.millisecond);
650 dt6 = new Date.fromString("2012-01-01 00:00:10.5z"); 650 dt6 = new DateTime.fromString("2012-01-01 00:00:10.5z");
651 Expect.equals(500, dt6.millisecond); 651 Expect.equals(500, dt6.millisecond);
652 var dt7 = new Date.fromString("2011-05-11T18:58:35Z"); 652 var dt7 = new DateTime.fromString("2011-05-11T18:58:35Z");
653 Expect.equals(1305140315000, dt7.millisecondsSinceEpoch); 653 Expect.equals(1305140315000, dt7.millisecondsSinceEpoch);
654 var dt8 = new Date.fromString("-1234-01-01T00:00:00Z"); 654 var dt8 = new DateTime.fromString("-1234-01-01T00:00:00Z");
655 Expect.equals(-1234, dt8.year); 655 Expect.equals(-1234, dt8.year);
656 Expect.equals(1, dt8.month); 656 Expect.equals(1, dt8.month);
657 Expect.equals(1, dt8.day); 657 Expect.equals(1, dt8.day);
658 Expect.equals(0, dt8.hour); 658 Expect.equals(0, dt8.hour);
659 Expect.equals(0, dt8.minute); 659 Expect.equals(0, dt8.minute);
660 Expect.equals(0, dt8.second); 660 Expect.equals(0, dt8.second);
661 Expect.equals(0, dt8.millisecond); 661 Expect.equals(0, dt8.millisecond);
662 Expect.isTrue(dt8.isUtc); 662 Expect.isTrue(dt8.isUtc);
663 var dt9 = new Date.fromString("-1234-01-01T00:00:00"); 663 var dt9 = new DateTime.fromString("-1234-01-01T00:00:00");
664 Expect.equals(-1234, dt9.year); 664 Expect.equals(-1234, dt9.year);
665 Expect.equals(1, dt9.month); 665 Expect.equals(1, dt9.month);
666 Expect.equals(1, dt9.day); 666 Expect.equals(1, dt9.day);
667 Expect.equals(0, dt9.hour); 667 Expect.equals(0, dt9.hour);
668 Expect.equals(0, dt9.minute); 668 Expect.equals(0, dt9.minute);
669 Expect.equals(0, dt9.second); 669 Expect.equals(0, dt9.second);
670 Expect.equals(0, dt9.millisecond); 670 Expect.equals(0, dt9.millisecond);
671 Expect.isFalse(dt9.isUtc); 671 Expect.isFalse(dt9.isUtc);
672 var dt10 = new Date.fromString("-12340101"); 672 var dt10 = new DateTime.fromString("-12340101");
673 Expect.equals(-1234, dt10.year); 673 Expect.equals(-1234, dt10.year);
674 Expect.equals(1, dt10.month); 674 Expect.equals(1, dt10.month);
675 Expect.equals(1, dt10.day); 675 Expect.equals(1, dt10.day);
676 Expect.equals(0, dt10.hour); 676 Expect.equals(0, dt10.hour);
677 Expect.equals(0, dt10.minute); 677 Expect.equals(0, dt10.minute);
678 Expect.equals(0, dt10.second); 678 Expect.equals(0, dt10.second);
679 Expect.equals(0, dt10.millisecond); 679 Expect.equals(0, dt10.millisecond);
680 Expect.isFalse(dt10.isUtc); 680 Expect.isFalse(dt10.isUtc);
681 dt1 = new Date.fromString("2012-02-27 13:27:00"); 681 dt1 = new DateTime.fromString("2012-02-27 13:27:00");
682 Expect.equals(2012, dt1.year); 682 Expect.equals(2012, dt1.year);
683 Expect.equals(2, dt1.month); 683 Expect.equals(2, dt1.month);
684 Expect.equals(27, dt1.day); 684 Expect.equals(27, dt1.day);
685 Expect.equals(13, dt1.hour); 685 Expect.equals(13, dt1.hour);
686 Expect.equals(27, dt1.minute); 686 Expect.equals(27, dt1.minute);
687 Expect.equals(0, dt1.second); 687 Expect.equals(0, dt1.second);
688 Expect.equals(0, dt1.millisecond); 688 Expect.equals(0, dt1.millisecond);
689 Expect.equals(false, dt1.isUtc); 689 Expect.equals(false, dt1.isUtc);
690 dt1 = new Date.fromString("2012-02-27 13:27:00.423z"); 690 dt1 = new DateTime.fromString("2012-02-27 13:27:00.423z");
691 Expect.equals(2012, dt1.year); 691 Expect.equals(2012, dt1.year);
692 Expect.equals(2, dt1.month); 692 Expect.equals(2, dt1.month);
693 Expect.equals(27, dt1.day); 693 Expect.equals(27, dt1.day);
694 Expect.equals(13, dt1.hour); 694 Expect.equals(13, dt1.hour);
695 Expect.equals(27, dt1.minute); 695 Expect.equals(27, dt1.minute);
696 Expect.equals(0, dt1.second); 696 Expect.equals(0, dt1.second);
697 Expect.equals(423, dt1.millisecond); 697 Expect.equals(423, dt1.millisecond);
698 Expect.equals(true, dt1.isUtc); 698 Expect.equals(true, dt1.isUtc);
699 dt1 = new Date.fromString("20120227 13:27:00"); 699 dt1 = new DateTime.fromString("20120227 13:27:00");
700 Expect.equals(2012, dt1.year); 700 Expect.equals(2012, dt1.year);
701 Expect.equals(2, dt1.month); 701 Expect.equals(2, dt1.month);
702 Expect.equals(27, dt1.day); 702 Expect.equals(27, dt1.day);
703 Expect.equals(13, dt1.hour); 703 Expect.equals(13, dt1.hour);
704 Expect.equals(27, dt1.minute); 704 Expect.equals(27, dt1.minute);
705 Expect.equals(0, dt1.second); 705 Expect.equals(0, dt1.second);
706 Expect.equals(0, dt1.millisecond); 706 Expect.equals(0, dt1.millisecond);
707 Expect.equals(false, dt1.isUtc); 707 Expect.equals(false, dt1.isUtc);
708 dt1 = new Date.fromString("20120227T132700"); 708 dt1 = new DateTime.fromString("20120227T132700");
709 Expect.equals(2012, dt1.year); 709 Expect.equals(2012, dt1.year);
710 Expect.equals(2, dt1.month); 710 Expect.equals(2, dt1.month);
711 Expect.equals(27, dt1.day); 711 Expect.equals(27, dt1.day);
712 Expect.equals(13, dt1.hour); 712 Expect.equals(13, dt1.hour);
713 Expect.equals(27, dt1.minute); 713 Expect.equals(27, dt1.minute);
714 Expect.equals(0, dt1.second); 714 Expect.equals(0, dt1.second);
715 Expect.equals(0, dt1.millisecond); 715 Expect.equals(0, dt1.millisecond);
716 Expect.equals(false, dt1.isUtc); 716 Expect.equals(false, dt1.isUtc);
717 dt1 = new Date.fromString("20120227"); 717 dt1 = new DateTime.fromString("20120227");
718 Expect.equals(2012, dt1.year); 718 Expect.equals(2012, dt1.year);
719 Expect.equals(2, dt1.month); 719 Expect.equals(2, dt1.month);
720 Expect.equals(27, dt1.day); 720 Expect.equals(27, dt1.day);
721 Expect.equals(0, dt1.hour); 721 Expect.equals(0, dt1.hour);
722 Expect.equals(0, dt1.minute); 722 Expect.equals(0, dt1.minute);
723 Expect.equals(0, dt1.second); 723 Expect.equals(0, dt1.second);
724 Expect.equals(0, dt1.millisecond); 724 Expect.equals(0, dt1.millisecond);
725 Expect.equals(false, dt1.isUtc); 725 Expect.equals(false, dt1.isUtc);
726 dt1 = new Date.fromString("2012-02-27T14Z"); 726 dt1 = new DateTime.fromString("2012-02-27T14Z");
727 Expect.equals(2012, dt1.year); 727 Expect.equals(2012, dt1.year);
728 Expect.equals(2, dt1.month); 728 Expect.equals(2, dt1.month);
729 Expect.equals(27, dt1.day); 729 Expect.equals(27, dt1.day);
730 Expect.equals(14, dt1.hour); 730 Expect.equals(14, dt1.hour);
731 Expect.equals(0, dt1.minute); 731 Expect.equals(0, dt1.minute);
732 Expect.equals(0, dt1.second); 732 Expect.equals(0, dt1.second);
733 Expect.equals(0, dt1.millisecond); 733 Expect.equals(0, dt1.millisecond);
734 Expect.equals(true, dt1.isUtc); 734 Expect.equals(true, dt1.isUtc);
735 dt1 = new Date.fromString("-123450101 00:00:00 Z"); 735 dt1 = new DateTime.fromString("-123450101 00:00:00 Z");
736 Expect.equals(-12345, dt1.year); 736 Expect.equals(-12345, dt1.year);
737 Expect.equals(1, dt1.month); 737 Expect.equals(1, dt1.month);
738 Expect.equals(1, dt1.day); 738 Expect.equals(1, dt1.day);
739 Expect.equals(0, dt1.hour); 739 Expect.equals(0, dt1.hour);
740 Expect.equals(0, dt1.minute); 740 Expect.equals(0, dt1.minute);
741 Expect.equals(0, dt1.second); 741 Expect.equals(0, dt1.second);
742 Expect.equals(0, dt1.millisecond); 742 Expect.equals(0, dt1.millisecond);
743 Expect.equals(true, dt1.isUtc); 743 Expect.equals(true, dt1.isUtc);
744 // We only support millisecond. If the user supplies more data (the "51" 744 // We only support millisecond. If the user supplies more data (the "51"
745 // here), we round. 745 // here), we round.
746 // If (eventually) we support more than just millisecond this test could 746 // If (eventually) we support more than just millisecond this test could
747 // fail. Please update the test in this case. 747 // fail. Please update the test in this case.
748 dt1 = new Date.fromString("1999-01-02 23:59:59.99951"); 748 dt1 = new DateTime.fromString("1999-01-02 23:59:59.99951");
749 Expect.equals(1999, dt1.year); 749 Expect.equals(1999, dt1.year);
750 Expect.equals(1, dt1.month); 750 Expect.equals(1, dt1.month);
751 Expect.equals(3, dt1.day); 751 Expect.equals(3, dt1.day);
752 Expect.equals(0, dt1.hour); 752 Expect.equals(0, dt1.hour);
753 Expect.equals(0, dt1.minute); 753 Expect.equals(0, dt1.minute);
754 Expect.equals(0, dt1.second); 754 Expect.equals(0, dt1.second);
755 Expect.equals(0, dt1.millisecond); 755 Expect.equals(0, dt1.millisecond);
756 Expect.equals(false, dt1.isUtc); 756 Expect.equals(false, dt1.isUtc);
757 dt1 = new Date.fromString("1999-01-02 23:58:59.99951Z"); 757 dt1 = new DateTime.fromString("1999-01-02 23:58:59.99951Z");
758 Expect.equals(1999, dt1.year); 758 Expect.equals(1999, dt1.year);
759 Expect.equals(1, dt1.month); 759 Expect.equals(1, dt1.month);
760 Expect.equals(2, dt1.day); 760 Expect.equals(2, dt1.day);
761 Expect.equals(23, dt1.hour); 761 Expect.equals(23, dt1.hour);
762 Expect.equals(59, dt1.minute); 762 Expect.equals(59, dt1.minute);
763 Expect.equals(0, dt1.second); 763 Expect.equals(0, dt1.second);
764 Expect.equals(0, dt1.millisecond); 764 Expect.equals(0, dt1.millisecond);
765 Expect.equals(true, dt1.isUtc); 765 Expect.equals(true, dt1.isUtc);
766 dt1 = new Date.fromString("0009-09-09 09:09:09.009Z"); 766 dt1 = new DateTime.fromString("0009-09-09 09:09:09.009Z");
767 Expect.equals(9, dt1.year); 767 Expect.equals(9, dt1.year);
768 Expect.equals(9, dt1.month); 768 Expect.equals(9, dt1.month);
769 Expect.equals(9, dt1.day); 769 Expect.equals(9, dt1.day);
770 Expect.equals(9, dt1.hour); 770 Expect.equals(9, dt1.hour);
771 Expect.equals(9, dt1.minute); 771 Expect.equals(9, dt1.minute);
772 Expect.equals(9, dt1.second); 772 Expect.equals(9, dt1.second);
773 Expect.equals(9, dt1.millisecond); 773 Expect.equals(9, dt1.millisecond);
774 Expect.equals(true, dt1.isUtc); 774 Expect.equals(true, dt1.isUtc);
775 } 775 }
776 776
777 static void testWeekday() { 777 static void testWeekday() {
778 // 2011-10-06 is Summertime. 778 // 2011-10-06 is Summertime.
779 var d = new Date(2011, 10, 6, 0, 45, 37, 0); 779 var d = new DateTime(2011, 10, 6, 0, 45, 37, 0);
780 Expect.equals(Date.THU, d.weekday); 780 Expect.equals(DateTime.THU, d.weekday);
781 d = new Date.utc(2011, 10, 6, 0, 45, 37, 0); 781 d = new DateTime.utc(2011, 10, 6, 0, 45, 37, 0);
782 Expect.equals(Date.THU, d.weekday); 782 Expect.equals(DateTime.THU, d.weekday);
783 d = new Date(2011, 10, 5, 23, 45, 37, 0); 783 d = new DateTime(2011, 10, 5, 23, 45, 37, 0);
784 Expect.equals(Date.WED, d.weekday); 784 Expect.equals(DateTime.WED, d.weekday);
785 d = new Date.utc(2011, 10, 5, 23, 45, 37, 0); 785 d = new DateTime.utc(2011, 10, 5, 23, 45, 37, 0);
786 Expect.equals(Date.WED, d.weekday); 786 Expect.equals(DateTime.WED, d.weekday);
787 // 1970-01-01 is Wintertime. 787 // 1970-01-01 is Wintertime.
788 d = new Date(1970, 1, 1, 0, 0, 0, 1); 788 d = new DateTime(1970, 1, 1, 0, 0, 0, 1);
789 Expect.equals(Date.THU, d.weekday); 789 Expect.equals(DateTime.THU, d.weekday);
790 d = new Date.utc(1970, 1, 1, 0, 0, 0, 1); 790 d = new DateTime.utc(1970, 1, 1, 0, 0, 0, 1);
791 Expect.equals(Date.THU, d.weekday); 791 Expect.equals(DateTime.THU, d.weekday);
792 d = new Date.utc(1969, 12, 31, 23, 59, 59, 999); 792 d = new DateTime.utc(1969, 12, 31, 23, 59, 59, 999);
793 Expect.equals(Date.WED, d.weekday); 793 Expect.equals(DateTime.WED, d.weekday);
794 d = new Date(1969, 12, 31, 23, 59, 59, 999); 794 d = new DateTime(1969, 12, 31, 23, 59, 59, 999);
795 Expect.equals(Date.WED, d.weekday); 795 Expect.equals(DateTime.WED, d.weekday);
796 d = new Date(2011, 10, 4, 23, 45, 37, 0); 796 d = new DateTime(2011, 10, 4, 23, 45, 37, 0);
797 Expect.equals(Date.TUE, d.weekday); 797 Expect.equals(DateTime.TUE, d.weekday);
798 d = new Date(2011, 10, 3, 23, 45, 37, 0); 798 d = new DateTime(2011, 10, 3, 23, 45, 37, 0);
799 Expect.equals(Date.MON, d.weekday); 799 Expect.equals(DateTime.MON, d.weekday);
800 d = new Date(2011, 10, 2, 23, 45, 37, 0); 800 d = new DateTime(2011, 10, 2, 23, 45, 37, 0);
801 Expect.equals(Date.SUN, d.weekday); 801 Expect.equals(DateTime.SUN, d.weekday);
802 d = new Date(2011, 10, 1, 23, 45, 37, 0); 802 d = new DateTime(2011, 10, 1, 23, 45, 37, 0);
803 Expect.equals(Date.SAT, d.weekday); 803 Expect.equals(DateTime.SAT, d.weekday);
804 d = new Date(2011, 9, 30, 23, 45, 37, 0); 804 d = new DateTime(2011, 9, 30, 23, 45, 37, 0);
805 Expect.equals(Date.FRI, d.weekday); 805 Expect.equals(DateTime.FRI, d.weekday);
806 } 806 }
807 807
808 static void testMain() { 808 static void testMain() {
809 testNow(); 809 testNow();
810 testValue(); 810 testValue();
811 testConstructors(); 811 testConstructors();
812 testUTCGetters(); 812 testUTCGetters();
813 testLocalGetters(); 813 testLocalGetters();
814 testChangeTimeZone(); 814 testChangeTimeZone();
815 testSubAdd(); 815 testSubAdd();
816 testUnderflowAndOverflow(); 816 testUnderflowAndOverflow();
817 testDateStrings(); 817 testDateStrings();
818 testEquivalentYears(); 818 testEquivalentYears();
819 testExtremes(); 819 testExtremes();
820 testFarAwayDates(); 820 testFarAwayDates();
821 testWeekday(); 821 testWeekday();
822 } 822 }
823 } 823 }
824 824
825 main() { 825 main() {
826 DateTest.testMain(); 826 DateTest.testMain();
827 } 827 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698