OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 import "package:expect/expect.dart"; | 5 import "package:expect/expect.dart"; |
6 | 6 |
7 import "dart:math" show pow; | 7 import "dart:math" show pow; |
8 | 8 |
9 var smallNumber = 1234567890; // is 31-bit integer. | 9 var smallNumber = 1234567890; // is 31-bit integer. |
10 var mediumNumber = 1234567890123456; // is 53-bit integer | 10 var mediumNumber = 1234567890123456; // is 53-bit integer |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 test(19, 1234567890, 519818059); | 111 test(19, 1234567890, 519818059); |
112 test(1000000001, 1234567890, 1001100101); | 112 test(1000000001, 1234567890, 1001100101); |
113 | 113 |
114 test(12345, 12346, 12345); | 114 test(12345, 12346, 12345); |
115 test(12345, 12346, 12345); | 115 test(12345, 12346, 12345); |
116 | 116 |
117 test(smallNumber, 137, 42); | 117 test(smallNumber, 137, 42); |
118 test(137, smallNumber, 856087223); | 118 test(137, smallNumber, 856087223); |
119 test(mediumNumber, 137, 77); | 119 test(mediumNumber, 137, 77); |
120 test(137, mediumNumber, 540686667207353); | 120 test(137, mediumNumber, 540686667207353); |
121 test(bigNumber, 137, 128); // /// bignum: ok | 121 test(bigNumber, 137, 128); // //# bignum: ok |
122 // Bigger numbers as modulo is tested in big_integer_arith_vm_test.dart. | 122 // Bigger numbers as modulo is tested in big_integer_arith_vm_test.dart. |
123 // Big doubles are not co-prime, so there is nothing to test for dart2js. | 123 // Big doubles are not co-prime, so there is nothing to test for dart2js. |
124 } | 124 } |
125 | 125 |
126 testGcd() { | 126 testGcd() { |
127 // Call testFunc with all combinations and orders of plus/minus | 127 // Call testFunc with all combinations and orders of plus/minus |
128 // value and other. | 128 // value and other. |
129 callCombos(value, other, testFunc) { | 129 callCombos(value, other, testFunc) { |
130 testFunc(value, other); | 130 testFunc(value, other); |
131 testFunc(value, -other); | 131 testFunc(value, -other); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 test(0x3FFFFFFF, 0x40000000, 1); | 196 test(0x3FFFFFFF, 0x40000000, 1); |
197 | 197 |
198 test(pow(2, 54), pow(2, 53), pow(2, 53)); | 198 test(pow(2, 54), pow(2, 53), pow(2, 53)); |
199 | 199 |
200 test((pow(2, 52) - 1) * pow(2, 14), | 200 test((pow(2, 52) - 1) * pow(2, 14), |
201 (pow(2, 26) - 1) * pow(2, 22), | 201 (pow(2, 26) - 1) * pow(2, 22), |
202 (pow(2, 26) - 1) * pow(2, 14)); | 202 (pow(2, 26) - 1) * pow(2, 14)); |
203 } | 203 } |
204 | 204 |
205 main() { | 205 main() { |
206 testModPow(); // /// modPow: ok | 206 testModPow(); // //# modPow: ok |
207 testModInverse(); | 207 testModInverse(); |
208 testGcd(); | 208 testGcd(); |
209 } | 209 } |
210 | 210 |
OLD | NEW |