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

Side by Side Diff: pkg/fixnum/test/int_64_test.dart

Issue 20803006: Don't throw exception for non-integer args to fixnum int32,int64 op == (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 4 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
« no previous file with comments | « pkg/fixnum/test/int_32_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 library int64test; 5 library int64test;
6 import 'package:fixnum/fixnum.dart'; 6 import 'package:fixnum/fixnum.dart';
7 import 'package:unittest/unittest.dart'; 7 import 'package:unittest/unittest.dart';
8 8
9 void main() { 9 void main() {
10 group("arithmetic operators", () { 10 group("arithmetic operators", () {
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 new int32.fromInt(432461)); 152 new int32.fromInt(432461));
153 expect(new int64.fromInt(829893893) ~/ 1919, 153 expect(new int64.fromInt(829893893) ~/ 1919,
154 new int32.fromInt(432461)); 154 new int32.fromInt(432461));
155 expect(() => new int64.fromInt(1) ~/ new int64.fromInt(0), 155 expect(() => new int64.fromInt(1) ~/ new int64.fromInt(0),
156 throwsA(new isInstanceOf<IntegerDivisionByZeroException>())); 156 throwsA(new isInstanceOf<IntegerDivisionByZeroException>()));
157 expect(int64.MIN_VALUE ~/ new int64.fromInt(2), 157 expect(int64.MIN_VALUE ~/ new int64.fromInt(2),
158 new int64.fromInts(0xc0000000, 0x00000000)); 158 new int64.fromInts(0xc0000000, 0x00000000));
159 expect(int64.MIN_VALUE ~/ new int64.fromInt(1), int64.MIN_VALUE); 159 expect(int64.MIN_VALUE ~/ new int64.fromInt(1), int64.MIN_VALUE);
160 expect(int64.MIN_VALUE ~/ new int64.fromInt(-1), int64.MIN_VALUE); 160 expect(int64.MIN_VALUE ~/ new int64.fromInt(-1), int64.MIN_VALUE);
161 expect(() => new int64.fromInt(17) ~/ int64.ZERO, throws); 161 expect(() => new int64.fromInt(17) ~/ int64.ZERO, throws);
162 expect(() => new int64.fromInt(17) ~/ null, throws); 162 expect(() => new int64.fromInt(17) ~/ null, throwsArgumentError);
163 }); 163 });
164 164
165 test("%", () { 165 test("%", () {
166 // Define % as Euclidean mod, with positive result for all arguments 166 // Define % as Euclidean mod, with positive result for all arguments
167 expect(int64.ZERO % new int64.fromInt(1000), new int64.fromInt(0)); 167 expect(int64.ZERO % new int64.fromInt(1000), new int64.fromInt(0));
168 expect(int64.MIN_VALUE % int64.MIN_VALUE, new int64.fromInt(0)); 168 expect(int64.MIN_VALUE % int64.MIN_VALUE, new int64.fromInt(0));
169 expect(new int64.fromInt(1000) % int64.MIN_VALUE, 169 expect(new int64.fromInt(1000) % int64.MIN_VALUE,
170 new int64.fromInt(1000)); 170 new int64.fromInt(1000));
171 expect(int64.MIN_VALUE % new int64.fromInt(8192), new int64.fromInt(0)); 171 expect(int64.MIN_VALUE % new int64.fromInt(8192), new int64.fromInt(0));
172 expect(int64.MIN_VALUE % new int64.fromInt(8193), 172 expect(int64.MIN_VALUE % new int64.fromInt(8193),
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 }); 211 });
212 212
213 group("comparison operators", () { 213 group("comparison operators", () {
214 int64 largeNeg = new int64.fromInts(0x82341234, 0x0); 214 int64 largeNeg = new int64.fromInts(0x82341234, 0x0);
215 int64 largePos = new int64.fromInts(0x12341234, 0x0); 215 int64 largePos = new int64.fromInts(0x12341234, 0x0);
216 int64 largePosPlusOne = largePos + new int64.fromInt(1); 216 int64 largePosPlusOne = largePos + new int64.fromInt(1);
217 217
218 test("<", () { 218 test("<", () {
219 expect(new int64.fromInt(10) < new int64.fromInt(11), true); 219 expect(new int64.fromInt(10) < new int64.fromInt(11), true);
220 expect(new int64.fromInt(10) < new int64.fromInt(10), false); 220 expect(new int64.fromInt(10) < new int64.fromInt(10), false);
221 expect(new int64.fromInt(12) < new int64.fromInt(11), false); 221 expect(new int64.fromInt(10) < new int64.fromInt(9), false);
222 expect(new int64.fromInt(10) < new int32.fromInt(11), true);
223 expect(new int64.fromInt(10) < new int32.fromInt(10), false);
224 expect(new int64.fromInt(10) < new int32.fromInt(9), false);
222 expect(new int64.fromInt(-10) < new int64.fromInt(-11), false); 225 expect(new int64.fromInt(-10) < new int64.fromInt(-11), false);
223 expect(int64.MIN_VALUE < new int64.fromInt(0), true); 226 expect(int64.MIN_VALUE < new int64.fromInt(0), true);
224 expect(largeNeg < largePos, true); 227 expect(largeNeg < largePos, true);
225 expect(largePos < largePosPlusOne, true); 228 expect(largePos < largePosPlusOne, true);
226 expect(largePos < largePos, false); 229 expect(largePos < largePos, false);
227 expect(largePosPlusOne < largePos, false); 230 expect(largePosPlusOne < largePos, false);
228 expect(int64.MIN_VALUE < int64.MAX_VALUE, true); 231 expect(int64.MIN_VALUE < int64.MAX_VALUE, true);
229 expect(int64.MAX_VALUE < int64.MIN_VALUE, false); 232 expect(int64.MAX_VALUE < int64.MIN_VALUE, false);
230 expect(() => new int64.fromInt(17) < null, throwsArgumentError); 233 expect(() => new int64.fromInt(17) < null, throwsArgumentError);
231 }); 234 });
232 235
233 test("<=", () { 236 test("<=", () {
234 expect(new int64.fromInt(10) <= new int64.fromInt(11), true); 237 expect(new int64.fromInt(10) <= new int64.fromInt(11), true);
235 expect(new int64.fromInt(10) <= new int64.fromInt(10), true); 238 expect(new int64.fromInt(10) <= new int64.fromInt(10), true);
236 expect(new int64.fromInt(12) <= new int64.fromInt(11), false); 239 expect(new int64.fromInt(10) <= new int64.fromInt(9), false);
240 expect(new int64.fromInt(10) <= new int32.fromInt(11), true);
241 expect(new int64.fromInt(10) <= new int32.fromInt(10), true);
242 expect(new int64.fromInt(10) <= new int64.fromInt(9), false);
237 expect(new int64.fromInt(-10) <= new int64.fromInt(-11), false); 243 expect(new int64.fromInt(-10) <= new int64.fromInt(-11), false);
238 expect(new int64.fromInt(-10) <= new int64.fromInt(-10), true); 244 expect(new int64.fromInt(-10) <= new int64.fromInt(-10), true);
239 expect(largeNeg <= largePos, true); 245 expect(largeNeg <= largePos, true);
240 expect(largePos <= largeNeg, false); 246 expect(largePos <= largeNeg, false);
241 expect(largePos <= largePosPlusOne, true); 247 expect(largePos <= largePosPlusOne, true);
242 expect(largePos <= largePos, true); 248 expect(largePos <= largePos, true);
243 expect(largePosPlusOne <= largePos, false); 249 expect(largePosPlusOne <= largePos, false);
244 expect(int64.MIN_VALUE <= int64.MAX_VALUE, true); 250 expect(int64.MIN_VALUE <= int64.MAX_VALUE, true);
245 expect(int64.MAX_VALUE <= int64.MIN_VALUE, false); 251 expect(int64.MAX_VALUE <= int64.MIN_VALUE, false);
246 expect(() => new int64.fromInt(17) <= null, throwsArgumentError); 252 expect(() => new int64.fromInt(17) <= null, throwsArgumentError);
247 }); 253 });
248 254
249 test("==", () { 255 test("==", () {
250 expect(new int64.fromInt(10) == new int64.fromInt(11), false); 256 expect(new int64.fromInt(10) == new int64.fromInt(11), false);
251 expect(new int64.fromInt(10) == new int64.fromInt(10), true); 257 expect(new int64.fromInt(10) == new int64.fromInt(10), true);
252 expect(new int64.fromInt(12) == new int64.fromInt(11), false); 258 expect(new int64.fromInt(10) == new int64.fromInt(9), false);
259 expect(new int64.fromInt(10) == new int32.fromInt(11), false);
260 expect(new int64.fromInt(10) == new int32.fromInt(10), true);
261 expect(new int64.fromInt(10) == new int32.fromInt(9), false);
253 expect(new int64.fromInt(-10) == new int64.fromInt(-10), true); 262 expect(new int64.fromInt(-10) == new int64.fromInt(-10), true);
254 expect(new int64.fromInt(-10) != new int64.fromInt(-10), false); 263 expect(new int64.fromInt(-10) != new int64.fromInt(-10), false);
255 expect(largePos == largePos, true); 264 expect(largePos == largePos, true);
256 expect(largePos == largePosPlusOne, false); 265 expect(largePos == largePosPlusOne, false);
257 expect(largePosPlusOne == largePos, false); 266 expect(largePosPlusOne == largePos, false);
258 expect(int64.MIN_VALUE == int64.MAX_VALUE, false); 267 expect(int64.MIN_VALUE == int64.MAX_VALUE, false);
268 expect(new int64.fromInt(17) == new Object(), false);
259 expect(new int64.fromInt(17) == null, false); 269 expect(new int64.fromInt(17) == null, false);
260 }); 270 });
261 271
262 test(">=", () { 272 test(">=", () {
263 expect(new int64.fromInt(10) >= new int64.fromInt(11), false); 273 expect(new int64.fromInt(10) >= new int64.fromInt(11), false);
264 expect(new int64.fromInt(10) >= new int64.fromInt(10), true); 274 expect(new int64.fromInt(10) >= new int64.fromInt(10), true);
265 expect(new int64.fromInt(12) >= new int64.fromInt(11), true); 275 expect(new int64.fromInt(10) >= new int64.fromInt(9), true);
276 expect(new int64.fromInt(10) >= new int32.fromInt(11), false);
277 expect(new int64.fromInt(10) >= new int32.fromInt(10), true);
278 expect(new int64.fromInt(10) >= new int32.fromInt(9), true);
266 expect(new int64.fromInt(-10) >= new int64.fromInt(-11), true); 279 expect(new int64.fromInt(-10) >= new int64.fromInt(-11), true);
267 expect(new int64.fromInt(-10) >= new int64.fromInt(-10), true); 280 expect(new int64.fromInt(-10) >= new int64.fromInt(-10), true);
268 expect(largePos >= largeNeg, true); 281 expect(largePos >= largeNeg, true);
269 expect(largeNeg >= largePos, false); 282 expect(largeNeg >= largePos, false);
270 expect(largePos >= largePosPlusOne, false); 283 expect(largePos >= largePosPlusOne, false);
271 expect(largePos >= largePos, true); 284 expect(largePos >= largePos, true);
272 expect(largePosPlusOne >= largePos, true); 285 expect(largePosPlusOne >= largePos, true);
273 expect(int64.MIN_VALUE >= int64.MAX_VALUE, false); 286 expect(int64.MIN_VALUE >= int64.MAX_VALUE, false);
274 expect(int64.MAX_VALUE >= int64.MIN_VALUE, true); 287 expect(int64.MAX_VALUE >= int64.MIN_VALUE, true);
275 expect(() => new int64.fromInt(17) >= null, throwsArgumentError); 288 expect(() => new int64.fromInt(17) >= null, throwsArgumentError);
276 }); 289 });
277 290
278 test(">", () { 291 test(">", () {
279 expect(new int64.fromInt(10) > new int64.fromInt(11), false); 292 expect(new int64.fromInt(10) > new int64.fromInt(11), false);
280 expect(new int64.fromInt(10) > new int64.fromInt(10), false); 293 expect(new int64.fromInt(10) > new int64.fromInt(10), false);
281 expect(new int64.fromInt(12) > new int64.fromInt(11), true); 294 expect(new int64.fromInt(10) > new int64.fromInt(9), true);
295 expect(new int64.fromInt(10) > new int32.fromInt(11), false);
296 expect(new int64.fromInt(10) > new int32.fromInt(10), false);
297 expect(new int64.fromInt(10) > new int32.fromInt(9), true);
282 expect(new int64.fromInt(-10) > new int64.fromInt(-11), true); 298 expect(new int64.fromInt(-10) > new int64.fromInt(-11), true);
283 expect(new int64.fromInt(10) > new int64.fromInt(-11), true); 299 expect(new int64.fromInt(10) > new int64.fromInt(-11), true);
284 expect(new int64.fromInt(-10) > new int64.fromInt(11), false); 300 expect(new int64.fromInt(-10) > new int64.fromInt(11), false);
285 expect(largePos > largeNeg, true); 301 expect(largePos > largeNeg, true);
286 expect(largeNeg > largePos, false); 302 expect(largeNeg > largePos, false);
287 expect(largePos > largePosPlusOne, false); 303 expect(largePos > largePosPlusOne, false);
288 expect(largePos > largePos, false); 304 expect(largePos > largePos, false);
289 expect(largePosPlusOne > largePos, true); 305 expect(largePosPlusOne > largePos, true);
290 expect(new int64.fromInt(0) > int64.MIN_VALUE, true); 306 expect(new int64.fromInt(0) > int64.MIN_VALUE, true);
291 expect(int64.MIN_VALUE > int64.MAX_VALUE, false); 307 expect(int64.MIN_VALUE > int64.MAX_VALUE, false);
292 expect(int64.MAX_VALUE > int64.MIN_VALUE, true); 308 expect(int64.MAX_VALUE > int64.MIN_VALUE, true);
293 expect(() => new int64.fromInt(17) > null, throwsArgumentError); 309 expect(() => new int64.fromInt(17) > null, throwsArgumentError);
294 }); 310 });
295 }); 311 });
296 312
297 group("bitwise operators", () { 313 group("bitwise operators", () {
298 int64 n1 = new int64.fromInt(1234); 314 int64 n1 = new int64.fromInt(1234);
299 int64 n2 = new int64.fromInt(9876); 315 int64 n2 = new int64.fromInt(9876);
300 int64 n3 = new int64.fromInt(-1234); 316 int64 n3 = new int64.fromInt(-1234);
301 int64 n4 = new int64.fromInt(0x1234) << 32; 317 int64 n4 = new int64.fromInt(0x1234) << 32;
302 int64 n5 = new int64.fromInt(0x9876) << 32; 318 int64 n5 = new int64.fromInt(0x9876) << 32;
303 319
304 test("&", () { 320 test("&", () {
305 expect(n1 & n2, new int64.fromInt(1168)); 321 expect(n1 & n2, new int64.fromInt(1168));
306 expect(n3 & n2, new int64.fromInt(8708)); 322 expect(n3 & n2, new int64.fromInt(8708));
307 expect(n4 & n5, new int64.fromInt(0x1034) << 32); 323 expect(n4 & n5, new int64.fromInt(0x1034) << 32);
308 expect(() => n1 & null, throws); 324 expect(() => n1 & null, throwsArgumentError);
309 }); 325 });
310 326
311 test("|", () { 327 test("|", () {
312 expect(n1 | n2, new int64.fromInt(9942)); 328 expect(n1 | n2, new int64.fromInt(9942));
313 expect(n3 | n2, new int64.fromInt(-66)); 329 expect(n3 | n2, new int64.fromInt(-66));
314 expect(n4 | n5, new int64.fromInt(0x9a76) << 32); 330 expect(n4 | n5, new int64.fromInt(0x9a76) << 32);
315 expect(() => n1 | null, throws); 331 expect(() => n1 | null, throwsArgumentError);
316 }); 332 });
317 333
318 test("^", () { 334 test("^", () {
319 expect(n1 ^ n2, new int64.fromInt(8774)); 335 expect(n1 ^ n2, new int64.fromInt(8774));
320 expect(n3 ^ n2, new int64.fromInt(-8774)); 336 expect(n3 ^ n2, new int64.fromInt(-8774));
321 expect(n4 ^ n5, new int64.fromInt(0x8a42) << 32); 337 expect(n4 ^ n5, new int64.fromInt(0x8a42) << 32);
322 expect(() => n1 ^ null, throws); 338 expect(() => n1 ^ null, throwsArgumentError);
323 }); 339 });
324 340
325 test("~", () { 341 test("~", () {
326 expect(-new int64.fromInt(1), new int64.fromInt(-1)); 342 expect(-new int64.fromInt(1), new int64.fromInt(-1));
327 expect(-new int64.fromInt(-1), new int64.fromInt(1)); 343 expect(-new int64.fromInt(-1), new int64.fromInt(1));
328 expect(-int64.MIN_VALUE, int64.MIN_VALUE); 344 expect(-int64.MIN_VALUE, int64.MIN_VALUE);
329 345
330 expect(~n1, new int64.fromInt(-1235)); 346 expect(~n1, new int64.fromInt(-1235));
331 expect(~n2, new int64.fromInt(-9877)); 347 expect(~n2, new int64.fromInt(-9877));
332 expect(~n3, new int64.fromInt(1233)); 348 expect(~n3, new int64.fromInt(1233));
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 expect(int64.MAX_VALUE.toRadixString(10), "9223372036854775807"); 590 expect(int64.MAX_VALUE.toRadixString(10), "9223372036854775807");
575 expect(int64.MAX_VALUE.toRadixString(11), "1728002635214590697"); 591 expect(int64.MAX_VALUE.toRadixString(11), "1728002635214590697");
576 expect(int64.MAX_VALUE.toRadixString(12), "41A792678515120367"); 592 expect(int64.MAX_VALUE.toRadixString(12), "41A792678515120367");
577 expect(int64.MAX_VALUE.toRadixString(13), "10B269549075433C37"); 593 expect(int64.MAX_VALUE.toRadixString(13), "10B269549075433C37");
578 expect(int64.MAX_VALUE.toRadixString(14), "4340724C6C71DC7A7"); 594 expect(int64.MAX_VALUE.toRadixString(14), "4340724C6C71DC7A7");
579 expect(int64.MAX_VALUE.toRadixString(15), "160E2AD3246366807"); 595 expect(int64.MAX_VALUE.toRadixString(15), "160E2AD3246366807");
580 expect(int64.MAX_VALUE.toRadixString(16), "7FFFFFFFFFFFFFFF"); 596 expect(int64.MAX_VALUE.toRadixString(16), "7FFFFFFFFFFFFFFF");
581 }); 597 });
582 }); 598 });
583 } 599 }
OLDNEW
« no previous file with comments | « pkg/fixnum/test/int_32_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698