OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 // Testing Bigints with and without intrinsics. | 5 // Testing Bigints with and without intrinsics. |
6 // VMOptions= | 6 // VMOptions= |
7 // VMOptions=--no_intrinsify | 7 // VMOptions=--no_intrinsify |
8 | 8 |
9 library big_integer_test; | 9 library big_integer_test; |
| 10 |
10 import "package:expect/expect.dart"; | 11 import "package:expect/expect.dart"; |
11 | 12 |
12 testBigintHugeMul() { | 13 testBigintHugeMul() { |
13 var bits = 65536; | 14 var bits = 65536; |
14 var a = 1 << bits; | 15 var a = 1 << bits; |
15 var a1 = a - 1; // all 1's | 16 var a1 = a - 1; // all 1's |
16 var p1 = a1 * a1; | 17 var p1 = a1 * a1; |
17 var p2 = a * a - a - a + 1; | 18 var p2 = a * a - a - a + 1; |
18 // Use isTrue instead of equals to avoid trying to print such big numbers. | 19 // Use isTrue instead of equals to avoid trying to print such big numbers. |
19 Expect.isTrue(p1 == p2, 'products do not match'); | 20 Expect.isTrue(p1 == p2, 'products do not match'); |
20 } | 21 } |
21 | 22 |
22 main() { | 23 main() { |
23 testBigintHugeMul(); | 24 testBigintHugeMul(); |
24 } | 25 } |
OLD | NEW |