OLD | NEW |
| (Empty) |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | |
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. | |
4 | |
5 import "package:expect/expect.dart"; | |
6 | |
7 main() { | |
8 Duration d; | |
9 d = new Duration(days: 1); | |
10 Expect.equals(86400000000, d.inMicroseconds); | |
11 Expect.equals(86400000, d.inMilliseconds); | |
12 Expect.equals(86400, d.inSeconds); | |
13 Expect.equals(1440, d.inMinutes); | |
14 Expect.equals(24, d.inHours); | |
15 Expect.equals(1, d.inDays); | |
16 d = const Duration(hours: 1); | |
17 Expect.equals(3600000000, d.inMicroseconds); | |
18 Expect.equals(3600000, d.inMilliseconds); | |
19 Expect.equals(3600, d.inSeconds); | |
20 Expect.equals(60, d.inMinutes); | |
21 Expect.equals(1, d.inHours); | |
22 Expect.equals(0, d.inDays); | |
23 d = new Duration(minutes: 1); | |
24 Expect.equals(60000000, d.inMicroseconds); | |
25 Expect.equals(60000, d.inMilliseconds); | |
26 Expect.equals(60, d.inSeconds); | |
27 Expect.equals(1, d.inMinutes); | |
28 Expect.equals(0, d.inHours); | |
29 Expect.equals(0, d.inDays); | |
30 d = const Duration(seconds: 1); | |
31 Expect.equals(1000000, d.inMicroseconds); | |
32 Expect.equals(1000, d.inMilliseconds); | |
33 Expect.equals(1, d.inSeconds); | |
34 Expect.equals(0, d.inMinutes); | |
35 Expect.equals(0, d.inHours); | |
36 Expect.equals(0, d.inDays); | |
37 d = new Duration(milliseconds: 1); | |
38 Expect.equals(1000, d.inMicroseconds); | |
39 Expect.equals(1, d.inMilliseconds); | |
40 Expect.equals(0, d.inSeconds); | |
41 Expect.equals(0, d.inMinutes); | |
42 Expect.equals(0, d.inHours); | |
43 Expect.equals(0, d.inDays); | |
44 d = new Duration(microseconds: 1); | |
45 Expect.equals(1, d.inMicroseconds); | |
46 Expect.equals(0, d.inMilliseconds); | |
47 Expect.equals(0, d.inSeconds); | |
48 Expect.equals(0, d.inMinutes); | |
49 Expect.equals(0, d.inHours); | |
50 Expect.equals(0, d.inDays); | |
51 | |
52 d = const Duration(milliseconds: 1, microseconds: 999); | |
53 Expect.equals(1999, d.inMicroseconds); | |
54 Expect.equals(1, d.inMilliseconds); | |
55 d = const Duration(seconds: 1, milliseconds: 999); | |
56 Expect.equals(1999, d.inMilliseconds); | |
57 Expect.equals(1, d.inSeconds); | |
58 d = new Duration(minutes: 1, seconds: 59); | |
59 Expect.equals(119, d.inSeconds); | |
60 Expect.equals(1, d.inMinutes); | |
61 d = const Duration(hours: 1, minutes: 59); | |
62 Expect.equals(119, d.inMinutes); | |
63 Expect.equals(1, d.inHours); | |
64 d = new Duration(days: 1, hours: 23); | |
65 Expect.equals(47, d.inHours); | |
66 Expect.equals(1, d.inDays); | |
67 d = const Duration( | |
68 days: 0, | |
69 hours: 23, | |
70 minutes: 59, | |
71 seconds: 59, | |
72 milliseconds: 999, | |
73 microseconds: 999); | |
74 Expect.equals(0, d.inDays); | |
75 | |
76 d = new Duration(days: -1); | |
77 Expect.equals(-86400000000, d.inMicroseconds); | |
78 Expect.equals(-86400000, d.inMilliseconds); | |
79 Expect.equals(-86400, d.inSeconds); | |
80 Expect.equals(-1440, d.inMinutes); | |
81 Expect.equals(-24, d.inHours); | |
82 Expect.equals(-1, d.inDays); | |
83 d = const Duration(hours: -1); | |
84 Expect.equals(-3600000000, d.inMicroseconds); | |
85 Expect.equals(-3600000, d.inMilliseconds); | |
86 Expect.equals(-3600, d.inSeconds); | |
87 Expect.equals(-60, d.inMinutes); | |
88 Expect.equals(-1, d.inHours); | |
89 Expect.equals(0, d.inDays); | |
90 d = new Duration(minutes: -1); | |
91 Expect.equals(-60000000, d.inMicroseconds); | |
92 Expect.equals(-60000, d.inMilliseconds); | |
93 Expect.equals(-60, d.inSeconds); | |
94 Expect.equals(-1, d.inMinutes); | |
95 Expect.equals(0, d.inHours); | |
96 Expect.equals(0, d.inDays); | |
97 d = const Duration(seconds: -1); | |
98 Expect.equals(-1000000, d.inMicroseconds); | |
99 Expect.equals(-1000, d.inMilliseconds); | |
100 Expect.equals(-1, d.inSeconds); | |
101 Expect.equals(0, d.inMinutes); | |
102 Expect.equals(0, d.inHours); | |
103 Expect.equals(0, d.inDays); | |
104 d = new Duration(milliseconds: -1); | |
105 Expect.equals(-1000, d.inMicroseconds); | |
106 Expect.equals(-1, d.inMilliseconds); | |
107 Expect.equals(0, d.inSeconds); | |
108 Expect.equals(0, d.inMinutes); | |
109 Expect.equals(0, d.inHours); | |
110 Expect.equals(0, d.inDays); | |
111 d = new Duration(microseconds: -1); | |
112 Expect.equals(-1, d.inMicroseconds); | |
113 Expect.equals(0, d.inMilliseconds); | |
114 Expect.equals(0, d.inSeconds); | |
115 Expect.equals(0, d.inMinutes); | |
116 Expect.equals(0, d.inHours); | |
117 Expect.equals(0, d.inDays); | |
118 | |
119 d = const Duration(days: 1, hours: -24); | |
120 Expect.equals(0, d.inMicroseconds); | |
121 d = new Duration(hours: 1, minutes: -60); | |
122 Expect.equals(0, d.inMicroseconds); | |
123 d = const Duration(minutes: 1, seconds: -60); | |
124 Expect.equals(0, d.inMicroseconds); | |
125 d = new Duration(seconds: 1, milliseconds: -1000); | |
126 Expect.equals(0, d.inMicroseconds); | |
127 d = new Duration(milliseconds: 1, microseconds: -1000); | |
128 Expect.equals(0, d.inMicroseconds); | |
129 | |
130 d = const Duration(hours: 25); | |
131 Expect.equals(1, d.inDays); | |
132 Expect.equals(25, d.inHours); | |
133 Expect.equals(1500, d.inMinutes); | |
134 Expect.equals(90000, d.inSeconds); | |
135 Expect.equals(90000000, d.inMilliseconds); | |
136 Expect.equals(90000000000, d.inMicroseconds); | |
137 d = new Duration(minutes: 61); | |
138 Expect.equals(0, d.inDays); | |
139 Expect.equals(1, d.inHours); | |
140 Expect.equals(61, d.inMinutes); | |
141 Expect.equals(3660, d.inSeconds); | |
142 Expect.equals(3660000, d.inMilliseconds); | |
143 Expect.equals(3660000000, d.inMicroseconds); | |
144 d = const Duration(seconds: 61); | |
145 Expect.equals(0, d.inDays); | |
146 Expect.equals(0, d.inHours); | |
147 Expect.equals(1, d.inMinutes); | |
148 Expect.equals(61, d.inSeconds); | |
149 Expect.equals(61000, d.inMilliseconds); | |
150 Expect.equals(61000000, d.inMicroseconds); | |
151 d = new Duration(milliseconds: 1001); | |
152 Expect.equals(0, d.inDays); | |
153 Expect.equals(0, d.inHours); | |
154 Expect.equals(0, d.inMinutes); | |
155 Expect.equals(1, d.inSeconds); | |
156 Expect.equals(1001, d.inMilliseconds); | |
157 Expect.equals(1001000, d.inMicroseconds); | |
158 d = new Duration(microseconds: 1001); | |
159 Expect.equals(0, d.inDays); | |
160 Expect.equals(0, d.inHours); | |
161 Expect.equals(0, d.inMinutes); | |
162 Expect.equals(0, d.inSeconds); | |
163 Expect.equals(1, d.inMilliseconds); | |
164 Expect.equals(1001, d.inMicroseconds); | |
165 | |
166 var d1 = const Duration(milliseconds: 1000); | |
167 var d2 = const Duration(seconds: 1); | |
168 Expect.identical(d1, d2); | |
169 | |
170 d1 = const Duration(microseconds: 1000); | |
171 d2 = const Duration(milliseconds: 1); | |
172 Expect.identical(d1, d2); | |
173 | |
174 d1 = new Duration(hours: 1); | |
175 d2 = new Duration(hours: -1); | |
176 d = d1 + d2; | |
177 Expect.equals(0, d.inMicroseconds); | |
178 d = d1 - d2; | |
179 Expect.equals(3600000000 * 2, d.inMicroseconds); | |
180 | |
181 d2 = new Duration(hours: 1); | |
182 d = d1 + d2; | |
183 Expect.equals(3600000000 * 2, d.inMicroseconds); | |
184 d = d1 - d2; | |
185 Expect.equals(0, d.inMicroseconds); | |
186 | |
187 d = d1 * 2; | |
188 Expect.equals(3600000000 * 2, d.inMicroseconds); | |
189 d = d1 * -1; | |
190 Expect.equals(-3600000000, d.inMicroseconds); | |
191 d = d1 * 0; | |
192 Expect.equals(0, d.inMicroseconds); | |
193 | |
194 d = d1 ~/ 2; | |
195 Expect.equals(1800000000, d.inMicroseconds); | |
196 d = d1 ~/ 3600000001; | |
197 Expect.equals(0, d.inMicroseconds); | |
198 d = d1 ~/ -3600000001; | |
199 Expect.equals(0, d.inMicroseconds); | |
200 d = d1 ~/ 3599999999; | |
201 Expect.equals(1, d.inMicroseconds); | |
202 d = d1 ~/ -3599999999; | |
203 Expect.equals(-1, d.inMicroseconds); | |
204 d = d1 ~/ -1; | |
205 Expect.equals(-3600000000, d.inMicroseconds); | |
206 d = d1 * 0; | |
207 Expect.equals(0, d.inMicroseconds); | |
208 Expect.throws(() => d1 ~/ 0, (e) => e is IntegerDivisionByZeroException); | |
209 | |
210 d = new Duration(microseconds: 0); | |
211 Expect.isTrue(d < new Duration(microseconds: 1)); | |
212 Expect.isTrue(d <= new Duration(microseconds: 1)); | |
213 Expect.isTrue(d <= d); | |
214 Expect.isTrue(d > new Duration(microseconds: -1)); | |
215 Expect.isTrue(d >= new Duration(microseconds: -1)); | |
216 Expect.isTrue(d >= d); | |
217 | |
218 d = const Duration( | |
219 days: 1, | |
220 hours: 3, | |
221 minutes: 17, | |
222 seconds: 42, | |
223 milliseconds: 823, | |
224 microseconds: 127); | |
225 Expect.equals("27:17:42.823127", d.toString()); | |
226 | |
227 d = const Duration(hours: 1999, minutes: 17, seconds: 42); | |
228 Expect.equals("1999:17:42.000000", d.toString()); | |
229 | |
230 d = const Duration( | |
231 days: -1, | |
232 hours: -3, | |
233 minutes: -17, | |
234 seconds: -42, | |
235 milliseconds: -823, | |
236 microseconds: -127); | |
237 Expect.equals("-27:17:42.823127", d.toString()); | |
238 | |
239 d = const Duration(hours: -1999, minutes: -17, seconds: -42); | |
240 Expect.equals("-1999:17:42.000000", d.toString()); | |
241 | |
242 // Edge conditions for toString of microseconds. | |
243 // Regression test for http://dartbug.com/15678 | |
244 | |
245 d = const Duration(microseconds: 1); | |
246 Expect.equals("0:00:00.000001", d.toString()); | |
247 | |
248 d = const Duration(microseconds: 9); | |
249 Expect.equals("0:00:00.000009", d.toString()); | |
250 | |
251 d = const Duration(microseconds: 10); | |
252 Expect.equals("0:00:00.000010", d.toString()); | |
253 | |
254 d = const Duration(microseconds: 99); | |
255 Expect.equals("0:00:00.000099", d.toString()); | |
256 | |
257 d = const Duration(microseconds: 100); | |
258 Expect.equals("0:00:00.000100", d.toString()); | |
259 | |
260 d = const Duration(microseconds: 999); | |
261 Expect.equals("0:00:00.000999", d.toString()); | |
262 | |
263 d = const Duration(microseconds: 1000); | |
264 Expect.equals("0:00:00.001000", d.toString()); | |
265 | |
266 d = const Duration(microseconds: 9999); | |
267 Expect.equals("0:00:00.009999", d.toString()); | |
268 | |
269 d = const Duration(microseconds: 10000); | |
270 Expect.equals("0:00:00.010000", d.toString()); | |
271 | |
272 d = const Duration(microseconds: 99999); | |
273 Expect.equals("0:00:00.099999", d.toString()); | |
274 | |
275 d = const Duration(microseconds: 100000); | |
276 Expect.equals("0:00:00.100000", d.toString()); | |
277 | |
278 d = const Duration(microseconds: 999999); | |
279 Expect.equals("0:00:00.999999", d.toString()); | |
280 | |
281 d = const Duration(microseconds: 1000000); | |
282 Expect.equals("0:00:01.000000", d.toString()); | |
283 | |
284 d1 = const Duration(hours: 1); | |
285 d2 = const Duration(hours: -1); | |
286 Expect.isFalse(d1.isNegative); | |
287 Expect.isTrue(d2.isNegative); | |
288 Expect.equals(d1, d1.abs()); | |
289 Expect.equals(d1, d2.abs()); | |
290 | |
291 Expect.equals(d2, -d1); | |
292 Expect.equals(d1, -d2); | |
293 } | |
OLD | NEW |