mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 11:03:19 +00:00
[Tests] Update _2 tests for Dart 2.0 fixed-size integers
Also, --limit-ints-to-64-bits is enabled when running tests in _2 test
suites.
This is the re-landing of 92ebd8aefa
with
fixes:
* Revert changes in pkg/dev_compiler/test/browser/language_tests.js
and tests/language/language_dart2js.status as they describe
'language' test suite, not 'language_2'
* Correct tests/standalone_2/io/fuzz_support.dart as file_fuzz test was
timing out on Windows and failing on android/arm.
Closes https://github.com/dart-lang/sdk/issues/31396
Change-Id: If9ca77fca300ddc605f17a7be39d1707e9724e25
Reviewed-on: https://dart-review.googlesource.com/21700
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
parent
374a7c9e00
commit
a211134136
|
@ -1,444 +0,0 @@
|
|||
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// Testing Bigints with and without intrinsics.
|
||||
// VMOptions=
|
||||
// VMOptions=--no_intrinsify
|
||||
// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
|
||||
|
||||
library big_integer_test;
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
foo() => 1234567890123456789;
|
||||
bar() => 12345678901234567890;
|
||||
|
||||
testSmiOverflow() {
|
||||
var a = 1073741823;
|
||||
var b = 1073741822;
|
||||
Expect.equals(2147483645, a + b);
|
||||
a = -1000000000;
|
||||
b = 1000000001;
|
||||
Expect.equals(-2000000001, a - b);
|
||||
Expect.equals(-1000000001000000000, a * b);
|
||||
}
|
||||
|
||||
testBigintAdd() {
|
||||
// Bigint and Smi.
|
||||
var a = 12345678901234567890;
|
||||
var b = 2;
|
||||
Expect.equals(12345678901234567892, a + b);
|
||||
Expect.equals(12345678901234567892, b + a);
|
||||
// Bigint and Bigint.
|
||||
a = 10000000000000000001;
|
||||
Expect.equals(20000000000000000002, a + a);
|
||||
// Bigint and double.
|
||||
b = 200000000000000000000;
|
||||
var c = 100000000000000000000.0;
|
||||
Expect.isTrue((c + b) is double);
|
||||
Expect.equals(300000000000000000000.0, b + c);
|
||||
Expect.isTrue((b + c) is double);
|
||||
Expect.equals(300000000000000000000.0, c + b);
|
||||
}
|
||||
|
||||
testBigintSub() {
|
||||
// Bigint and Smi.
|
||||
var a = 12345678901234567890;
|
||||
var b = 2;
|
||||
Expect.equals(12345678901234567888, a - b);
|
||||
Expect.equals(-12345678901234567888, b - a);
|
||||
// Bigint and Bigint.
|
||||
a = 10000000000000000001;
|
||||
Expect.equals(20000000000000000002, a + a);
|
||||
// Bigint and double.
|
||||
b = 200000000000000000000;
|
||||
var c = 100000000000000000000.0;
|
||||
Expect.isTrue((c + b) is double);
|
||||
Expect.equals(-100000000000000000000.0, c - b);
|
||||
Expect.isTrue((b + c) is double);
|
||||
Expect.equals(100000000000000000000.0, b - c);
|
||||
Expect.equals(-1, 0xF00000000 - 0xF00000001);
|
||||
}
|
||||
|
||||
testBigintMul() {
|
||||
// Bigint and Smi.
|
||||
var a = 12345678901234567890;
|
||||
var b = 10;
|
||||
Expect.equals(123456789012345678900, a * b);
|
||||
Expect.equals(123456789012345678900, b * a);
|
||||
// Bigint and Bigint.
|
||||
a = 12345678901234567890;
|
||||
b = 10000000000000000;
|
||||
Expect.equals(123456789012345678900000000000000000, a * b);
|
||||
// Bigint and double.
|
||||
b = 200000000000000000000;
|
||||
var c = 2.0;
|
||||
Expect.isTrue((c * b) is double);
|
||||
Expect.equals(400000000000000000000.0, c * b);
|
||||
Expect.isTrue((b * c) is double);
|
||||
Expect.equals(400000000000000000000.0, b * c);
|
||||
}
|
||||
|
||||
testBigintTruncDiv() {
|
||||
var a = 12345678901234567890;
|
||||
var b = 10;
|
||||
// Bigint and Smi.
|
||||
Expect.equals(1234567890123456789, a ~/ b);
|
||||
Expect.equals(0, b ~/ a);
|
||||
Expect.equals(123456789, 123456789012345678 ~/ 1000000000);
|
||||
// Bigint and Bigint.
|
||||
a = 12345678901234567890;
|
||||
b = 10000000000000000;
|
||||
Expect.equals(1234, a ~/ b);
|
||||
// Bigint and double.
|
||||
b = 200000000000000000000;
|
||||
var c = 100000000000000000000.0;
|
||||
Expect.equals(0, c ~/ b);
|
||||
Expect.equals(2, b ~/ c);
|
||||
}
|
||||
|
||||
testBigintDiv() {
|
||||
// Bigint and Smi.
|
||||
Expect.equals(1234567890123456789.1, 12345678901234567891 / 10);
|
||||
Expect.equals(0.000000001234, 1234 / 1000000000000);
|
||||
Expect.equals(12345678901234000000.0, 123456789012340000000 / 10);
|
||||
// Bigint and Bigint.
|
||||
var a = 12345670000000000000;
|
||||
var b = 10000000000000000;
|
||||
Expect.equals(1234.567, a / b);
|
||||
// Bigint and double.
|
||||
b = 200000000000000000000;
|
||||
var c = 400000000000000000000.0;
|
||||
Expect.equals(2.0, c / b);
|
||||
Expect.equals(0.5, b / c);
|
||||
}
|
||||
|
||||
testBigintModulo() {
|
||||
// Bigint and Smi.
|
||||
var a = 1000000000005;
|
||||
var b = 10;
|
||||
Expect.equals(5, a % b);
|
||||
Expect.equals(10, b % a);
|
||||
// Bigint & Bigint
|
||||
a = 10000000000000000001;
|
||||
b = 10000000000000000000;
|
||||
Expect.equals(1, a % b);
|
||||
Expect.equals(10000000000000000000, b % a);
|
||||
// Bigint & double.
|
||||
b = 10000000000000000;
|
||||
var c = 10000000100000000.0;
|
||||
Expect.equals(100000000.0, c % b);
|
||||
Expect.equals(10000000000000000.0, b % c);
|
||||
// Transitioning from Mint to Bigint.
|
||||
var iStart = 4611686018427387900;
|
||||
var prevX = -23 % iStart;
|
||||
for (int i = iStart + 1; i < iStart + 10; i++) {
|
||||
var x = -23 % i;
|
||||
Expect.equals(1, x - prevX);
|
||||
Expect.isTrue(x > 0);
|
||||
prevX = x;
|
||||
}
|
||||
}
|
||||
|
||||
testBigintModPow() {
|
||||
var x, e, m;
|
||||
x = 1234567890;
|
||||
e = 1000000001;
|
||||
m = 19;
|
||||
Expect.equals(11, x.modPow(e, m));
|
||||
x = 1234567890;
|
||||
e = 19;
|
||||
m = 1000000001;
|
||||
Expect.equals(122998977, x.modPow(e, m));
|
||||
x = 19;
|
||||
e = 1234567890;
|
||||
m = 1000000001;
|
||||
Expect.equals(619059596, x.modPow(e, m));
|
||||
x = 19;
|
||||
e = 1000000001;
|
||||
m = 1234567890;
|
||||
Expect.equals(84910879, x.modPow(e, m));
|
||||
x = 1000000001;
|
||||
e = 19;
|
||||
m = 1234567890;
|
||||
Expect.equals(872984351, x.modPow(e, m));
|
||||
x = 1000000001;
|
||||
e = 1234567890;
|
||||
m = 19;
|
||||
Expect.equals(0, x.modPow(e, m));
|
||||
x = 12345678901234567890;
|
||||
e = 10000000000000000001;
|
||||
m = 19;
|
||||
Expect.equals(2, x.modPow(e, m));
|
||||
x = 12345678901234567890;
|
||||
e = 19;
|
||||
m = 10000000000000000001;
|
||||
Expect.equals(3239137215315834625, x.modPow(e, m));
|
||||
x = 19;
|
||||
e = 12345678901234567890;
|
||||
m = 10000000000000000001;
|
||||
Expect.equals(4544207837373941034, x.modPow(e, m));
|
||||
x = 19;
|
||||
e = 10000000000000000001;
|
||||
m = 12345678901234567890;
|
||||
Expect.equals(11135411705397624859, x.modPow(e, m));
|
||||
x = 10000000000000000001;
|
||||
e = 19;
|
||||
m = 12345678901234567890;
|
||||
Expect.equals(2034013733189773841, x.modPow(e, m));
|
||||
x = 10000000000000000001;
|
||||
e = 12345678901234567890;
|
||||
m = 19;
|
||||
Expect.equals(1, x.modPow(e, m));
|
||||
x = 12345678901234567890;
|
||||
e = 19;
|
||||
m = 10000000000000000001;
|
||||
Expect.equals(3239137215315834625, x.modPow(e, m));
|
||||
x = 12345678901234567890;
|
||||
e = 10000000000000000001;
|
||||
m = 19;
|
||||
Expect.equals(2, x.modPow(e, m));
|
||||
x = 123456789012345678901234567890;
|
||||
e = 123456789012345678901234567891;
|
||||
m = 123456789012345678901234567899;
|
||||
Expect.equals(116401406051033429924651549616, x.modPow(e, m));
|
||||
x = 123456789012345678901234567890;
|
||||
e = 123456789012345678901234567899;
|
||||
m = 123456789012345678901234567891;
|
||||
Expect.equals(123456789012345678901234567890, x.modPow(e, m));
|
||||
x = 123456789012345678901234567899;
|
||||
e = 123456789012345678901234567890;
|
||||
m = 123456789012345678901234567891;
|
||||
Expect.equals(35088523091000351053091545070, x.modPow(e, m));
|
||||
x = 123456789012345678901234567899;
|
||||
e = 123456789012345678901234567891;
|
||||
m = 123456789012345678901234567890;
|
||||
Expect.equals(18310047270234132455316941949, x.modPow(e, m));
|
||||
x = 123456789012345678901234567891;
|
||||
e = 123456789012345678901234567899;
|
||||
m = 123456789012345678901234567890;
|
||||
Expect.equals(1, x.modPow(e, m));
|
||||
x = 123456789012345678901234567891;
|
||||
e = 123456789012345678901234567890;
|
||||
m = 123456789012345678901234567899;
|
||||
Expect.equals(40128068573873018143207285483, x.modPow(e, m));
|
||||
}
|
||||
|
||||
testBigintModInverse() {
|
||||
var x, m;
|
||||
x = 1;
|
||||
m = 1;
|
||||
Expect.equals(0, x.modInverse(m));
|
||||
x = 0;
|
||||
m = 1000000001;
|
||||
Expect.throws(() => x.modInverse(m), (e) => e is Exception); // Not coprime.
|
||||
x = 1234567890;
|
||||
m = 19;
|
||||
Expect.equals(11, x.modInverse(m));
|
||||
x = 1234567890;
|
||||
m = 1000000001;
|
||||
Expect.equals(189108911, x.modInverse(m));
|
||||
x = 19;
|
||||
m = 1000000001;
|
||||
Expect.throws(() => x.modInverse(m), (e) => e is Exception); // Not coprime.
|
||||
x = 19;
|
||||
m = 1234567890;
|
||||
Expect.equals(519818059, x.modInverse(m));
|
||||
x = 1000000001;
|
||||
m = 1234567890;
|
||||
Expect.equals(1001100101, x.modInverse(m));
|
||||
x = 1000000001;
|
||||
m = 19;
|
||||
Expect.throws(() => x.modInverse(m), (e) => e is Exception); // Not coprime.
|
||||
x = 12345678901234567890;
|
||||
m = 19;
|
||||
Expect.equals(3, x.modInverse(m));
|
||||
x = 12345678901234567890;
|
||||
m = 10000000000000000001;
|
||||
Expect.equals(9736746307686209582, x.modInverse(m));
|
||||
x = 19;
|
||||
m = 10000000000000000001;
|
||||
Expect.equals(6315789473684210527, x.modInverse(m));
|
||||
x = 19;
|
||||
m = 12345678901234567890;
|
||||
Expect.equals(10396361179987004539, x.modInverse(m));
|
||||
x = 10000000000000000001;
|
||||
m = 12345678901234567890;
|
||||
Expect.equals(325004555487045911, x.modInverse(m));
|
||||
x = 10000000000000000001;
|
||||
m = 19;
|
||||
Expect.equals(7, x.modInverse(m));
|
||||
x = 12345678901234567890;
|
||||
m = 10000000000000000001;
|
||||
Expect.equals(9736746307686209582, x.modInverse(m));
|
||||
x = 12345678901234567890;
|
||||
m = 19;
|
||||
Expect.equals(3, x.modInverse(m));
|
||||
x = 123456789012345678901234567890;
|
||||
m = 123456789012345678901234567899;
|
||||
Expect.throws(() => x.modInverse(m), (e) => e is Exception); // Not coprime.
|
||||
x = 123456789012345678901234567890;
|
||||
m = 123456789012345678901234567891;
|
||||
Expect.equals(123456789012345678901234567890, x.modInverse(m));
|
||||
x = 123456789012345678901234567899;
|
||||
m = 123456789012345678901234567891;
|
||||
Expect.equals(77160493132716049313271604932, x.modInverse(m));
|
||||
x = 123456789012345678901234567899;
|
||||
m = 123456789012345678901234567890;
|
||||
Expect.throws(() => x.modInverse(m), (e) => e is Exception); // Not coprime.
|
||||
x = 123456789012345678901234567891;
|
||||
m = 123456789012345678901234567890;
|
||||
Expect.equals(1, x.modInverse(m));
|
||||
x = 123456789012345678901234567891;
|
||||
m = 123456789012345678901234567899;
|
||||
Expect.equals(46296295879629629587962962962, x.modInverse(m));
|
||||
}
|
||||
|
||||
testBigintGcd() {
|
||||
var x, m;
|
||||
x = 1;
|
||||
m = 1;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 693;
|
||||
m = 609;
|
||||
Expect.equals(21, x.gcd(m));
|
||||
x = 693 << 40;
|
||||
m = 609 << 40;
|
||||
Expect.equals(21 << 40, x.gcd(m));
|
||||
x = 609 << 40;
|
||||
m = 693 << 40;
|
||||
Expect.equals(21 << 40, x.gcd(m));
|
||||
x = 0;
|
||||
m = 1000000001;
|
||||
Expect.equals(m, x.gcd(m));
|
||||
x = 1000000001;
|
||||
m = 0;
|
||||
Expect.equals(x, x.gcd(m));
|
||||
x = 0;
|
||||
m = -1000000001;
|
||||
Expect.equals(-m, x.gcd(m));
|
||||
x = -1000000001;
|
||||
m = 0;
|
||||
Expect.equals(-x, x.gcd(m));
|
||||
x = 0;
|
||||
m = 0;
|
||||
Expect.equals(0, x.gcd(m));
|
||||
x = 0;
|
||||
m = 123456789012345678901234567890;
|
||||
Expect.equals(m, x.gcd(m));
|
||||
x = 123456789012345678901234567890;
|
||||
m = 0;
|
||||
Expect.equals(x, x.gcd(m));
|
||||
x = 0;
|
||||
m = -123456789012345678901234567890;
|
||||
Expect.equals(-m, x.gcd(m));
|
||||
x = -123456789012345678901234567890;
|
||||
m = 0;
|
||||
Expect.equals(-x, x.gcd(m));
|
||||
x = 1234567890;
|
||||
m = 19;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 1234567890;
|
||||
m = 1000000001;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 19;
|
||||
m = 1000000001;
|
||||
Expect.equals(19, x.gcd(m));
|
||||
x = 19;
|
||||
m = 1234567890;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 1000000001;
|
||||
m = 1234567890;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 1000000001;
|
||||
m = 19;
|
||||
Expect.equals(19, x.gcd(m));
|
||||
x = 12345678901234567890;
|
||||
m = 19;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 12345678901234567890;
|
||||
m = 10000000000000000001;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 19;
|
||||
m = 10000000000000000001;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 19;
|
||||
m = 12345678901234567890;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 10000000000000000001;
|
||||
m = 12345678901234567890;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 10000000000000000001;
|
||||
m = 19;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 12345678901234567890;
|
||||
m = 10000000000000000001;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 12345678901234567890;
|
||||
m = 19;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 123456789012345678901234567890;
|
||||
m = 123456789012345678901234567899;
|
||||
Expect.equals(9, x.gcd(m));
|
||||
x = 123456789012345678901234567890;
|
||||
m = 123456789012345678901234567891;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 123456789012345678901234567899;
|
||||
m = 123456789012345678901234567891;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 123456789012345678901234567899;
|
||||
m = 123456789012345678901234567890;
|
||||
Expect.equals(9, x.gcd(m));
|
||||
x = 123456789012345678901234567891;
|
||||
m = 123456789012345678901234567890;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 123456789012345678901234567891;
|
||||
m = 123456789012345678901234567899;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
}
|
||||
|
||||
testBigintNegate() {
|
||||
var a = 0xF000000000000000F;
|
||||
var b = ~a; // negate.
|
||||
Expect.equals(-0xF0000000000000010, b);
|
||||
Expect.equals(0, a & b);
|
||||
Expect.equals(-1, a | b);
|
||||
}
|
||||
|
||||
testShiftAmount() {
|
||||
Expect.equals(0, 12 >> 111111111111111111111111111111);
|
||||
Expect.equals(-1, -12 >> 111111111111111111111111111111);
|
||||
bool exceptionCaught = false;
|
||||
try {
|
||||
var a = 1 << 1111111111111111111111111111;
|
||||
} on OutOfMemoryError catch (e) {
|
||||
exceptionCaught = true;
|
||||
}
|
||||
Expect.equals(true, exceptionCaught);
|
||||
}
|
||||
|
||||
main() {
|
||||
for (int i = 0; i < 10; i++) {
|
||||
Expect.equals(1234567890123456789, foo());
|
||||
Expect.equals(12345678901234567890, bar());
|
||||
testSmiOverflow(); // //# overflow: ok
|
||||
testBigintAdd(); // //# add: ok
|
||||
testBigintSub(); // //# sub: ok
|
||||
testBigintMul(); // //# mul: ok
|
||||
testBigintTruncDiv(); // //# trunDiv: ok
|
||||
testBigintDiv(); // //# div: ok
|
||||
testBigintModulo(); // //# mod: ok
|
||||
testBigintModPow(); // //# modPow: ok
|
||||
testBigintModInverse(); // //# modInv: ok
|
||||
testBigintGcd(); // //# gcd: ok
|
||||
testBigintNegate(); // //# negate: ok
|
||||
testShiftAmount(); // //# shift: ok
|
||||
Expect.equals(12345678901234567890, (12345678901234567890).abs());
|
||||
Expect.equals(12345678901234567890, (-12345678901234567890).abs());
|
||||
var a = 10000000000000000000;
|
||||
var b = 10000000000000000001;
|
||||
Expect.equals(false, a.hashCode == b.hashCode);
|
||||
Expect.equals(true, a.hashCode == (b - 1).hashCode);
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// Testing Bigints with and without intrinsics.
|
||||
// VMOptions=
|
||||
// VMOptions=--no_intrinsify
|
||||
|
||||
library big_integer_test;
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
testBigintHugeMul() {
|
||||
var bits = 65536;
|
||||
var a = 1 << bits;
|
||||
var a1 = a - 1; // all 1's
|
||||
var p1 = a1 * a1;
|
||||
var p2 = a * a - a - a + 1;
|
||||
// Use isTrue instead of equals to avoid trying to print such big numbers.
|
||||
Expect.isTrue(p1 == p2, 'products do not match');
|
||||
}
|
||||
|
||||
main() {
|
||||
testBigintHugeMul();
|
||||
}
|
|
@ -1,111 +0,0 @@
|
|||
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// Testing Bigints with and without intrinsics.
|
||||
// VMOptions=
|
||||
// VMOptions=--no_intrinsify
|
||||
|
||||
library big_integer_test;
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
divRemParsed(String a, String b, String quotient, String remainder) {
|
||||
int int_a = int.parse(a);
|
||||
int int_b = int.parse(b);
|
||||
int int_quotient = int.parse(quotient);
|
||||
int int_remainder = int.parse(remainder);
|
||||
int computed_quotient = int_a ~/ int_b;
|
||||
Expect.equals(int_quotient, computed_quotient);
|
||||
String str_quotient = computed_quotient >= 0
|
||||
? "0x${computed_quotient.toRadixString(16)}"
|
||||
: "-0x${(-computed_quotient).toRadixString(16)}";
|
||||
Expect.equals(quotient.toLowerCase(), str_quotient);
|
||||
int computed_remainder = int_a.remainder(int_b);
|
||||
Expect.equals(int_remainder, computed_remainder);
|
||||
String str_remainder = computed_remainder >= 0
|
||||
? "0x${computed_remainder.toRadixString(16)}"
|
||||
: "-0x${(-computed_remainder).toRadixString(16)}";
|
||||
Expect.equals(remainder.toLowerCase(), str_remainder);
|
||||
}
|
||||
|
||||
testBigintDivideRemainder() {
|
||||
String zero = "0x0";
|
||||
String one = "0x1";
|
||||
String minus_one = "-0x1";
|
||||
|
||||
divRemParsed(one, one, one, zero);
|
||||
divRemParsed(zero, one, zero, zero);
|
||||
divRemParsed(minus_one, one, minus_one, zero);
|
||||
divRemParsed(one, "0x2", zero, one);
|
||||
divRemParsed(minus_one, "0x7", zero, minus_one);
|
||||
divRemParsed("0xB", "0x7", one, "0x4");
|
||||
divRemParsed("0x12345678", "0x7", "0x299C335", "0x5");
|
||||
divRemParsed("-0x12345678", "0x7", "-0x299C335", "-0x5");
|
||||
divRemParsed("0x12345678", "-0x7", "-0x299C335", "0x5");
|
||||
divRemParsed("-0x12345678", "-0x7", "0x299C335", "-0x5");
|
||||
divRemParsed("0x7", "0x12345678", zero, "0x7");
|
||||
divRemParsed("-0x7", "0x12345678", zero, "-0x7");
|
||||
divRemParsed("-0x7", "-0x12345678", zero, "-0x7");
|
||||
divRemParsed("0x7", "-0x12345678", zero, "0x7");
|
||||
divRemParsed("0x12345678", "0x7", "0x299C335", "0x5");
|
||||
divRemParsed("-0x12345678", "0x7", "-0x299C335", "-0x5");
|
||||
divRemParsed("0x12345678", "-0x7", "-0x299C335", "0x5");
|
||||
divRemParsed("-0x12345678", "-0x7", "0x299C335", "-0x5");
|
||||
divRemParsed(
|
||||
"0x14B66DC327D3C88D7EAA988BBFFA9BBA877826E7EDAF373907A931FBFC3A25231DF7F2"
|
||||
"516F511FB1638F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A"
|
||||
"8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F"
|
||||
"0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B"
|
||||
"570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B57"
|
||||
"0F4A8F0B570F4A8F0B570F4A8F0B570F35D89D93E776C67DD864B2034B5C739007933027"
|
||||
"5CDFD41E07A15D0F5AD5256BED5F1CF91FBA375DE70",
|
||||
"0x1234567890ABCDEF01234567890ABCDEF01234567890ABCDEF01234567890ABCDEF"
|
||||
"01234567890ABCDEF",
|
||||
"0x1234567890123456789012345678901234567890123456789012345678901234567890"
|
||||
"123456789012345678901234567890123456789012345678901234567890123456789012"
|
||||
"345678901234567890123456789012345678901234567890123456789012345678901234"
|
||||
"567890123456789012345678901234567890123456789012345678901234567890123456"
|
||||
"789012345678901234567890123456789012345678901234567890123456789012345678"
|
||||
"90123456789012345678901234567890",
|
||||
zero);
|
||||
divRemParsed(
|
||||
"0x14B66DC327D3C88D7EAA988BBFFA9BBA877826E7EDAF373907A931FBFC3A25231DF7F2"
|
||||
"516F511FB1638F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A"
|
||||
"8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F"
|
||||
"0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B"
|
||||
"570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B57"
|
||||
"0F4A8F0B570F4A8F0B570F4A8F0B570F35D89D93E776C67DD864B2034B5C739007933027"
|
||||
"5CDFD41E07A15D0F5AD5256BED5F1CF91FBA375DE71",
|
||||
"0x1234567890ABCDEF01234567890ABCDEF01234567890ABCDEF01234567890ABCDEF"
|
||||
"01234567890ABCDEF",
|
||||
"0x1234567890123456789012345678901234567890123456789012345678901234567890"
|
||||
"123456789012345678901234567890123456789012345678901234567890123456789012"
|
||||
"345678901234567890123456789012345678901234567890123456789012345678901234"
|
||||
"567890123456789012345678901234567890123456789012345678901234567890123456"
|
||||
"789012345678901234567890123456789012345678901234567890123456789012345678"
|
||||
"90123456789012345678901234567890",
|
||||
one);
|
||||
divRemParsed(
|
||||
"0x14B66DC327D3C88D7EAA988BBFFA9BBA877826E7EDAF373907A931FBFC3A25231DF7F2"
|
||||
"516F511FB1638F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A"
|
||||
"8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F"
|
||||
"0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B"
|
||||
"570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B57"
|
||||
"0F4A8F0B570F4A8F0B570F4A8F0B5710591E051CF233A56DEA99087BDC08417F08B6758E"
|
||||
"E5EA90FCF7B39165D365D139DC60403E8743421AC5E",
|
||||
"0x1234567890ABCDEF01234567890ABCDEF01234567890ABCDEF01234567890ABCDEF"
|
||||
"01234567890ABCDEF",
|
||||
"0x1234567890123456789012345678901234567890123456789012345678901234567890"
|
||||
"123456789012345678901234567890123456789012345678901234567890123456789012"
|
||||
"345678901234567890123456789012345678901234567890123456789012345678901234"
|
||||
"567890123456789012345678901234567890123456789012345678901234567890123456"
|
||||
"789012345678901234567890123456789012345678901234567890123456789012345678"
|
||||
"90123456789012345678901234567890",
|
||||
"0x1234567890ABCDEF01234567890ABCDEF01234567890ABCDEF01234567890ABCDEF"
|
||||
"01234567890ABCDEE");
|
||||
}
|
||||
|
||||
main() {
|
||||
testBigintDivideRemainder();
|
||||
}
|
|
@ -1,804 +0,0 @@
|
|||
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// Testing Bigints with and without intrinsics.
|
||||
// VMOptions=
|
||||
// VMOptions=--no_intrinsify
|
||||
|
||||
library big_integer_test;
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
mulDivParsed(String a, String b, String product) {
|
||||
int int_a = int.parse(a);
|
||||
int int_b = int.parse(b);
|
||||
int int_product = int.parse(product);
|
||||
int computed_product = int_a * int_b;
|
||||
Expect.equals(int_product, computed_product);
|
||||
String str_product = computed_product >= 0
|
||||
? "0x${computed_product.toRadixString(16)}"
|
||||
: "-0x${(-computed_product).toRadixString(16)}";
|
||||
Expect.equals(product.toLowerCase(), str_product);
|
||||
int computed_product2 = int_b * int_a;
|
||||
Expect.equals(int_product, computed_product2);
|
||||
String str_product2 = computed_product2 >= 0
|
||||
? "0x${computed_product2.toRadixString(16)}"
|
||||
: "-0x${(-computed_product2).toRadixString(16)}";
|
||||
Expect.equals(product.toLowerCase(), str_product2);
|
||||
|
||||
if (int_a != 0) {
|
||||
int computed_quotient1 = int_product ~/ int_a;
|
||||
Expect.equals(int_b, computed_quotient1);
|
||||
String str_quotient1 = computed_quotient1 >= 0
|
||||
? "0x${computed_quotient1.toRadixString(16)}"
|
||||
: "-0x${(-computed_quotient1).toRadixString(16)}";
|
||||
Expect.equals(b.toLowerCase(), str_quotient1);
|
||||
}
|
||||
|
||||
if (int_b != 0) {
|
||||
int computed_quotient2 = int_product ~/ int_b;
|
||||
Expect.equals(int_a, computed_quotient2);
|
||||
String str_quotient2 = computed_quotient2 >= 0
|
||||
? "0x${computed_quotient2.toRadixString(16)}"
|
||||
: "-0x${(-computed_quotient2).toRadixString(16)}";
|
||||
Expect.equals(a.toLowerCase(), str_quotient2);
|
||||
}
|
||||
}
|
||||
|
||||
testBigintMultiplyDivide() {
|
||||
String zero = "0x0";
|
||||
String one = "0x1";
|
||||
String minus_one = "-0x1";
|
||||
|
||||
mulDivParsed(zero, zero, zero);
|
||||
mulDivParsed(one, one, one);
|
||||
mulDivParsed(one, zero, zero);
|
||||
mulDivParsed(zero, one, zero);
|
||||
mulDivParsed(one, minus_one, minus_one);
|
||||
mulDivParsed(minus_one, minus_one, one);
|
||||
mulDivParsed("0x42", one, "0x42");
|
||||
mulDivParsed("0x42", "0x2", "0x84");
|
||||
mulDivParsed("0xFFFF", "0x2", "0x1FFFE");
|
||||
mulDivParsed("0x3", "0x5", "0xF");
|
||||
mulDivParsed("0xFFFFF", "0x5", "0x4FFFFB");
|
||||
mulDivParsed("0xFFFFFFF", "0x5", "0x4FFFFFFB");
|
||||
mulDivParsed("0xFFFFFFFF", "0x5", "0x4FFFFFFFB");
|
||||
mulDivParsed("0xFFFFFFFFFFFFFFFF", "0x5", "0x4FFFFFFFFFFFFFFFB");
|
||||
mulDivParsed("0xFFFFFFFFFFFFFFFF", "0x3039", "0x3038FFFFFFFFFFFFCFC7");
|
||||
mulDivParsed("0xFFFFFFFFFFFFFFFF", "0xFFFFFFFFFFFFFFFFFFFFFFFFFF",
|
||||
"0xFFFFFFFFFFFFFFFEFFFFFFFFFF0000000000000001");
|
||||
mulDivParsed(
|
||||
"0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000",
|
||||
"0xFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000",
|
||||
"0xFFFFFFFFFFFFFFFEFFFFFFFFFF000000000000000100000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000");
|
||||
mulDivParsed("0x10000001", "0x5", "0x50000005");
|
||||
mulDivParsed(
|
||||
"0x1234567890ABCDEF01234567890ABCDEF01234567890ABCDEF"
|
||||
"01234567890ABCDEF01234567890ABCDEF",
|
||||
"0x1234567890ABCDEF01234567890ABCDEF01234567890ABCDEF"
|
||||
"01234567890ABCDEF01234567890ABCDEF",
|
||||
"0x14B66DC328828BCA670CBE52943AA3894CCCE15C8F5ED1E55F"
|
||||
"328F6D3F579F992299850C4B5B95213EF3FB7B4E73B5F43D4299"
|
||||
"5B9F6FD5441C275F2FF89F86F28F47A94CA37481090DCCCDCA6475F09A2F2A521");
|
||||
mulDivParsed(
|
||||
"0x1234567890ABCDEF01234567890ABCDEF01234567890ABCDEF01234567890ABCDEF"
|
||||
"01234567890ABCDEF",
|
||||
"0x1234567890123456789012345678901234567890123456789012345678901234567890"
|
||||
"123456789012345678901234567890123456789012345678901234567890123456789012"
|
||||
"345678901234567890123456789012345678901234567890123456789012345678901234"
|
||||
"567890123456789012345678901234567890123456789012345678901234567890123456"
|
||||
"789012345678901234567890123456789012345678901234567890123456789012345678"
|
||||
"90123456789012345678901234567890",
|
||||
"0x14B66DC327D3C88D7EAA988BBFFA9BBA877826E7EDAF373907A931FBFC3A25231DF7F2"
|
||||
"516F511FB1638F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A"
|
||||
"8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F"
|
||||
"0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B"
|
||||
"570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B570F4A8F0B57"
|
||||
"0F4A8F0B570F4A8F0B570F4A8F0B570F35D89D93E776C67DD864B2034B5C739007933027"
|
||||
"5CDFD41E07A15D0F5AD5256BED5F1CF91FBA375DE70");
|
||||
mulDivParsed(
|
||||
"0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFF",
|
||||
"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
|
||||
"0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000"
|
||||
"0000000000000000000000000000000000000000000000000000000000000000000001");
|
||||
mulDivParsed(
|
||||
"0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFF",
|
||||
"0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFF",
|
||||
"0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFC0000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"0000000000000000000000000000001");
|
||||
|
||||
// A 256 28-bit digits number squared.
|
||||
mulDivParsed(
|
||||
"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
|
||||
"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
|
||||
"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"0000000000000000000000000000000000000000000000000000000001");
|
||||
|
||||
mulDivParsed(
|
||||
"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
|
||||
"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
|
||||
"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
"0000000000000000000000000000000000000000000000000000000001");
|
||||
}
|
||||
|
||||
main() {
|
||||
testBigintMultiplyDivide();
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
// Testing Bigints.
|
||||
|
||||
library bit_twiddling_test;
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
// See bit_twiddling_test.dart first. This file contains only the tests that
|
||||
// need Bigint or would fail in dart2js compatibility mode.
|
||||
|
||||
testBitLength() {
|
||||
check(int i, width) {
|
||||
Expect.equals(width, i.bitLength, '$i.bitLength == $width');
|
||||
// (~i) written as (-i-1) to avoid issues with limited range of dart2js ops.
|
||||
Expect.equals(width, (-i - 1).bitLength, '(~$i).bitLength == $width');
|
||||
}
|
||||
|
||||
check(0xffffffffffffff, 56);
|
||||
check(0xffffffffffffffff, 64);
|
||||
check(0xffffffffffffffffff, 72);
|
||||
check(0x1000000000000000000, 73);
|
||||
check(0x1000000000000000001, 73);
|
||||
|
||||
check(0xfffffffffffffffffffffffffffffffffffffe, 152);
|
||||
check(0xffffffffffffffffffffffffffffffffffffff, 152);
|
||||
check(0x100000000000000000000000000000000000000, 153);
|
||||
check(0x100000000000000000000000000000000000001, 153);
|
||||
}
|
||||
|
||||
testToUnsigned() {
|
||||
checkU(src, width, expected) {
|
||||
Expect.equals(expected, src.toUnsigned(width));
|
||||
}
|
||||
|
||||
checkU(0x100000100000000000001, 2, 1);
|
||||
checkU(0x100000200000000000001, 60, 0x200000000000001);
|
||||
checkU(0x100000200000000000001, 59, 0x200000000000001);
|
||||
checkU(0x100000200000000000001, 58, 0x200000000000001);
|
||||
checkU(0x100000200000000000001, 57, 1);
|
||||
}
|
||||
|
||||
testToSigned() {
|
||||
checkS(src, width, expected) {
|
||||
Expect.equals(
|
||||
expected, src.toSigned(width), '$src.toSigned($width) == $expected');
|
||||
}
|
||||
|
||||
checkS(0x100000100000000000001, 2, 1);
|
||||
checkS(0x100000200000000000001, 60, 0x200000000000001);
|
||||
checkS(0x100000200000000000001, 59, 0x200000000000001);
|
||||
checkS(0x100000200000000000001, 58, -0x200000000000000 + 1);
|
||||
checkS(0x100000200000000000001, 57, 1);
|
||||
}
|
||||
|
||||
main() {
|
||||
testBitLength();
|
||||
testToUnsigned();
|
||||
testToSigned();
|
||||
}
|
|
@ -1,16 +1,12 @@
|
|||
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
// Testing Bigints.
|
||||
// Testing int.bitLength, int.toUnsigned and int.toSigned.
|
||||
|
||||
library bit_twiddling_test;
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
bool haveBigints() {
|
||||
return 100000000000000000000 + 1 != 100000000000000000000;
|
||||
}
|
||||
|
||||
testBitLength() {
|
||||
check(int i, width) {
|
||||
Expect.equals(width, i.bitLength, '$i.bitLength == $width');
|
||||
|
@ -45,18 +41,9 @@ testBitLength() {
|
|||
check(0x2000000000000, 50);
|
||||
check(0x2000000000001, 50);
|
||||
|
||||
if (haveBigints()) {
|
||||
check(0xffffffffffffff, 56);
|
||||
check(0xffffffffffffffff, 64);
|
||||
check(0xffffffffffffffffff, 72);
|
||||
check(0x1000000000000000000, 73);
|
||||
check(0x1000000000000000001, 73);
|
||||
|
||||
check(0xfffffffffffffffffffffffffffffffffffffe, 152);
|
||||
check(0xffffffffffffffffffffffffffffffffffffff, 152);
|
||||
check(0x100000000000000000000000000000000000000, 153);
|
||||
check(0x100000000000000000000000000000000000001, 153);
|
||||
}
|
||||
check(0xffffffffffffff, 56); // //# int64: ok
|
||||
check(0x7fffffffffffffff, 63); // //# int64: continued
|
||||
check(0xffffffffffffffff, 0); // //# int64: continued
|
||||
}
|
||||
|
||||
testToUnsigned() {
|
||||
|
@ -112,6 +99,18 @@ testToUnsigned() {
|
|||
checkU(2, 3, 2);
|
||||
checkU(3, 3, 3);
|
||||
checkU(4, 3, 4);
|
||||
|
||||
checkU(0x0100000000000001, 2, 1); // //# int64: continued
|
||||
checkU(0x0200000000000001, 60, 0x200000000000001); // //# int64: continued
|
||||
checkU(0x0200000000000001, 59, 0x200000000000001); // //# int64: continued
|
||||
checkU(0x0200000000000001, 58, 0x200000000000001); // //# int64: continued
|
||||
checkU(0x0200000000000001, 57, 1); // //# int64: continued
|
||||
|
||||
checkU(0x8100000000000001, 2, 1); // //# int64: continued
|
||||
checkU(0x8200000000000001, 60, 0x200000000000001); // //# int64: continued
|
||||
checkU(0x8200000000000001, 59, 0x200000000000001); // //# int64: continued
|
||||
checkU(0x8200000000000001, 58, 0x200000000000001); // //# int64: continued
|
||||
checkU(0x8200000000000001, 57, 1); // //# int64: continued
|
||||
}
|
||||
|
||||
testToSigned() {
|
||||
|
@ -164,6 +163,18 @@ testToSigned() {
|
|||
checkS(2, 3, 2);
|
||||
checkS(3, 3, 3);
|
||||
checkS(4, 3, -4);
|
||||
|
||||
checkS(0x0100000000000001, 2, 1); // //# int64: continued
|
||||
checkS(0x0200000000000001, 60, 0x200000000000001); // //# int64: continued
|
||||
checkS(0x0200000000000001, 59, 0x200000000000001); // //# int64: continued
|
||||
checkS(0x0200000000000001, 58, -0x200000000000000 + 1); // //# int64: continued
|
||||
checkS(0x0200000000000001, 57, 1); // //# int64: continued
|
||||
|
||||
checkS(0x8100000000000001, 2, 1); // //# int64: continued
|
||||
checkS(0x8200000000000001, 60, 0x200000000000001); // //# int64: continued
|
||||
checkS(0x8200000000000001, 59, 0x200000000000001); // //# int64: continued
|
||||
checkS(0x8200000000000001, 58, -0x200000000000000 + 1); // //# int64: continued
|
||||
checkS(0x8200000000000001, 57, 1); // //# int64: continued
|
||||
}
|
||||
|
||||
main() {
|
||||
|
|
|
@ -86,7 +86,6 @@ apply3_test: Fail # mirrors not supported
|
|||
dynamic_nosuchmethod_test: Fail # mirrors not supported
|
||||
|
||||
[ $compiler == precompiler ]
|
||||
big_integer_huge_mul_vm_test: Pass, Timeout # --no_intrinsify
|
||||
regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
|
||||
int_parse_radix_test: Pass, Timeout # --no_intrinsify
|
||||
|
||||
|
@ -100,8 +99,8 @@ growable_list_test: RuntimeError # Concurrent modifications test always runs
|
|||
[ $compiler == dartdevc && $runtime != none ]
|
||||
apply2_test: RuntimeError # Issue 29921
|
||||
apply3_test: RuntimeError # Issue 29921
|
||||
big_integer_arith_vm_test: RuntimeError # Issue 30170
|
||||
big_integer_parsed_arith_vm_test: RuntimeError # Issue 29921
|
||||
integer_arith_vm_test/modPow: RuntimeError # Issue 30170
|
||||
integer_parsed_arith_vm_test: RuntimeError # Issue 29921
|
||||
compare_to2_test: RuntimeError # Issue 30170
|
||||
date_time10_test: RuntimeError # Issue 29921
|
||||
hash_set_test/01: RuntimeError # Issue 29921
|
||||
|
@ -169,17 +168,20 @@ int_modulo_arith_test/none: RuntimeError # Issue 29921
|
|||
iterable_return_type_test/02: RuntimeError # Issue 29921
|
||||
|
||||
[ ($compiler == dart2js || $compiler == dartdevc) && $runtime != none ]
|
||||
big_integer_arith_vm_test: RuntimeError # Issues 10245, 30170
|
||||
big_integer_parsed_arith_vm_test: RuntimeError # Issues 10245, 29921
|
||||
big_integer_parsed_div_rem_vm_test: RuntimeError # Issue 29921
|
||||
big_integer_parsed_mul_div_vm_test: RuntimeError # Issue 29921
|
||||
bit_twiddling_bigint_test: RuntimeError # Required bigint support.
|
||||
integer_arith_vm_test/modPow: RuntimeError # Issues 10245, 30170
|
||||
integer_parsed_arith_vm_test: RuntimeError # Issues 10245, 29921
|
||||
integer_parsed_div_rem_vm_test: RuntimeError # Issue 29921
|
||||
integer_parsed_mul_div_vm_test: RuntimeError # Issue 29921
|
||||
bit_twiddling_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
|
||||
double_ceil_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
|
||||
double_floor_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
|
||||
double_round_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
|
||||
double_truncate_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
|
||||
json_map_test: RuntimeError
|
||||
compare_to2_test: RuntimeError, OK # Requires bigint support.
|
||||
compare_to2_test: RuntimeError, OK # Requires fixed-size int64 support.
|
||||
hash_set_test/01: RuntimeError # Issue 11551
|
||||
int_modulo_arith_test/bignum: RuntimeError # Issue 29921
|
||||
int_modulo_arith_test/modPow: RuntimeError # Issue 29921
|
||||
regress_r21715_test: RuntimeError # Requires bigint support.
|
||||
regress_r21715_test: RuntimeError # Requires fixed-size int64 support.
|
||||
int_parse_with_limited_ints_test: Skip # dart2js and dartdevc don't know about --limit-ints-to-64-bits
|
||||
typed_data_with_limited_ints_test: Skip # dart2js and dartdevc don't know about --limit-ints-to-64-bits
|
||||
|
||||
|
@ -241,11 +243,7 @@ string_from_environment2_test: Fail # Flutter Issue 9111
|
|||
main_test: RuntimeError # Flutter Issue 9111
|
||||
|
||||
[ $hot_reload || $hot_reload_rollback ]
|
||||
big_integer_huge_mul_vm_test: Pass, Slow # Slow
|
||||
big_integer_parsed_mul_div_vm_test: Pass, Slow # Slow
|
||||
|
||||
[ $hot_reload || $hot_reload_rollback ]
|
||||
big_integer_huge_mul_vm_test: Pass, Slow # Slow
|
||||
integer_parsed_mul_div_vm_test: Pass, Slow # Slow
|
||||
|
||||
[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
|
||||
compare_to2_test: Fail # Issue 4018
|
||||
|
@ -270,11 +268,11 @@ unicode_test: Fail
|
|||
string_case_test/01: Fail, OK
|
||||
|
||||
[ ($runtime == vm || $runtime == dart_precompiled) && $arch == simarmv5te ]
|
||||
big_integer_parsed_mul_div_vm_test: Pass, SloW
|
||||
integer_parsed_mul_div_vm_test: Pass, Slow
|
||||
int_parse_radix_test/*: Pass, Slow
|
||||
|
||||
[ $compiler == precompiler ]
|
||||
big_integer_parsed_mul_div_vm_test: Pass, Timeout # --no_intrinsify
|
||||
integer_parsed_mul_div_vm_test: Pass, Timeout # --no_intrinsify
|
||||
|
||||
[ $compiler == none && ($runtime == vm || $runtime == flutter)]
|
||||
string_trimlr_test/02: RuntimeError # Issue 29060
|
||||
|
@ -825,3 +823,17 @@ uri_path_test: RuntimeError
|
|||
uri_query_test: RuntimeError
|
||||
uri_test: RuntimeError
|
||||
|
||||
[ $runtime == vm || $runtime == dart_precompiled ]
|
||||
integer_to_radix_string_test/01: RuntimeError # Issue 31346
|
||||
integer_parsed_div_rem_vm_test/01: RuntimeError # Issue 31346
|
||||
integer_parsed_arith_vm_test/01: RuntimeError # Issue 31346
|
||||
|
||||
[ $runtime == vm || $runtime == dart_precompiled ]
|
||||
integer_parsed_arith_vm_test/02: RuntimeError # Issue 31369
|
||||
|
||||
[ $compiler == dartkp ]
|
||||
integer_to_radix_string_test/01: CompileTimeError # Issue 31339
|
||||
integer_to_radix_string_test/02: CompileTimeError # Issue 31339
|
||||
integer_to_string_test/01: CompileTimeError # Issue 31339
|
||||
bit_twiddling_test/int64: CompileTimeError # Issue 31339
|
||||
num_sign_test: CompileTimeError, Crash # Issue 31339
|
||||
|
|
|
@ -24,9 +24,7 @@ main() {
|
|||
|
||||
Expect.equals(9007199254740991, 9007199254740991.0.ceil());
|
||||
Expect.equals(9007199254740992, 9007199254740992.0.ceil());
|
||||
Expect.equals(
|
||||
179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,
|
||||
double.maxFinite.ceil());
|
||||
Expect.equals(9223372036854775807, double.maxFinite.ceil()); // //# int64: ok
|
||||
|
||||
Expect.equals(0, (-double.minPositive).ceil());
|
||||
Expect.equals(0, (2.0 * -double.minPositive).ceil());
|
||||
|
@ -43,9 +41,7 @@ main() {
|
|||
Expect.equals(-4503599627370499, (-4503599627370499.0).ceil());
|
||||
Expect.equals(-9007199254740991, (-9007199254740991.0).ceil());
|
||||
Expect.equals(-9007199254740992, (-9007199254740992.0).ceil());
|
||||
Expect.equals(
|
||||
-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,
|
||||
(-double.maxFinite).ceil());
|
||||
Expect.equals(-9223372036854775808, (-double.maxFinite).ceil()); // //# int64: ok
|
||||
|
||||
Expect.isTrue(0.0.ceil() is int);
|
||||
Expect.isTrue(double.minPositive.ceil() is int);
|
||||
|
|
|
@ -24,9 +24,7 @@ main() {
|
|||
|
||||
Expect.equals(9007199254740991, 9007199254740991.0.floor());
|
||||
Expect.equals(9007199254740992, 9007199254740992.0.floor());
|
||||
Expect.equals(
|
||||
179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,
|
||||
double.maxFinite.floor());
|
||||
Expect.equals(9223372036854775807, double.maxFinite.floor()); // //# int64: ok
|
||||
|
||||
Expect.equals(-1, (-double.minPositive).floor());
|
||||
Expect.equals(-1, (2.0 * -double.minPositive).floor());
|
||||
|
@ -43,9 +41,7 @@ main() {
|
|||
Expect.equals(-4503599627370499, (-4503599627370499.0).floor());
|
||||
Expect.equals(-9007199254740991, (-9007199254740991.0).floor());
|
||||
Expect.equals(-9007199254740992, (-9007199254740992.0).floor());
|
||||
Expect.equals(
|
||||
-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,
|
||||
(-double.maxFinite).floor());
|
||||
Expect.equals(-9223372036854775808, (-double.maxFinite).floor()); // //# int64: ok
|
||||
|
||||
Expect.isTrue(0.0.floor() is int);
|
||||
Expect.isTrue(double.minPositive.floor() is int);
|
||||
|
|
|
@ -14,10 +14,7 @@ main() {
|
|||
Expect.equals(1, 0.9999999999999999.round());
|
||||
Expect.equals(1, 1.0.round());
|
||||
Expect.equals(1, 1.000000000000001.round());
|
||||
|
||||
Expect.equals(
|
||||
179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,
|
||||
double.maxFinite.round());
|
||||
Expect.equals(9223372036854775807, double.maxFinite.round()); // //# int64: ok
|
||||
|
||||
Expect.equals(0, (-double.minPositive).round());
|
||||
Expect.equals(0, (2.0 * -double.minPositive).round());
|
||||
|
@ -27,9 +24,7 @@ main() {
|
|||
Expect.equals(-1, (-0.9999999999999999).round());
|
||||
Expect.equals(-1, (-1.0).round());
|
||||
Expect.equals(-1, (-1.000000000000001).round());
|
||||
Expect.equals(
|
||||
-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,
|
||||
(-double.maxFinite).round());
|
||||
Expect.equals(-9223372036854775808, (-double.maxFinite).round()); // //# int64: ok
|
||||
|
||||
Expect.isTrue(0.0.round() is int);
|
||||
Expect.isTrue(double.minPositive.round() is int);
|
||||
|
|
|
@ -24,9 +24,7 @@ main() {
|
|||
|
||||
Expect.equals(9007199254740991, 9007199254740991.0.truncate());
|
||||
Expect.equals(9007199254740992, 9007199254740992.0.truncate());
|
||||
Expect.equals(
|
||||
179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,
|
||||
double.maxFinite.truncate());
|
||||
Expect.equals(9223372036854775807, double.maxFinite.truncate()); // //# int64: ok
|
||||
|
||||
Expect.equals(0, (-double.minPositive).truncate());
|
||||
Expect.equals(0, (2.0 * -double.minPositive).truncate());
|
||||
|
@ -43,9 +41,7 @@ main() {
|
|||
Expect.equals(-4503599627370499, (-4503599627370499.0).truncate());
|
||||
Expect.equals(-9007199254740991, (-9007199254740991.0).truncate());
|
||||
Expect.equals(-9007199254740992, (-9007199254740992.0).truncate());
|
||||
Expect.equals(
|
||||
-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,
|
||||
(-double.maxFinite).truncate());
|
||||
Expect.equals(-9223372036854775808, (-double.maxFinite).truncate()); // //# int64: ok
|
||||
|
||||
Expect.isTrue(0.0.truncate() is int);
|
||||
Expect.isTrue(double.minPositive.truncate() is int);
|
||||
|
|
|
@ -11,15 +11,11 @@ main() {
|
|||
Expect.equals(0x12345678, 0x12345678.ceil());
|
||||
Expect.equals(0x123456789AB, 0x123456789AB.ceil());
|
||||
Expect.equals(0x123456789ABCDEF, 0x123456789ABCDEF.ceil());
|
||||
Expect.equals(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF,
|
||||
0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.ceil());
|
||||
Expect.equals(-1, -1.ceil());
|
||||
Expect.equals(-0x1234, -0x1234.ceil());
|
||||
Expect.equals(-0x12345678, -0x12345678.ceil());
|
||||
Expect.equals(-0x123456789AB, -0x123456789AB.ceil());
|
||||
Expect.equals(-0x123456789ABCDEF, -0x123456789ABCDEF.ceil());
|
||||
Expect.equals(-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF,
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.ceil());
|
||||
|
||||
Expect.isTrue(0.ceil() is int);
|
||||
Expect.isTrue(1.ceil() is int);
|
||||
|
@ -27,13 +23,9 @@ main() {
|
|||
Expect.isTrue(0x12345678.ceil() is int);
|
||||
Expect.isTrue(0x123456789AB.ceil() is int);
|
||||
Expect.isTrue(0x123456789ABCDEF.ceil() is int);
|
||||
Expect
|
||||
.isTrue(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.ceil() is int);
|
||||
Expect.isTrue(-1.ceil() is int);
|
||||
Expect.isTrue(-0x1234.ceil() is int);
|
||||
Expect.isTrue(-0x12345678.ceil() is int);
|
||||
Expect.isTrue(-0x123456789AB.ceil() is int);
|
||||
Expect.isTrue(-0x123456789ABCDEF.ceil() is int);
|
||||
Expect
|
||||
.isTrue(-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.ceil() is int);
|
||||
}
|
||||
|
|
|
@ -11,15 +11,11 @@ main() {
|
|||
Expect.equals(0x12345678, 0x12345678.ceilToDouble());
|
||||
Expect.equals(0x123456789AB, 0x123456789AB.ceilToDouble());
|
||||
Expect.equals(81985529216486900.0, 0x123456789ABCDEF.ceilToDouble());
|
||||
Expect.equals(2.7898229935051914e+55,
|
||||
0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.ceilToDouble());
|
||||
Expect.equals(-1.0, -1.ceilToDouble());
|
||||
Expect.equals(-0x1234, -0x1234.ceilToDouble());
|
||||
Expect.equals(-0x12345678, -0x12345678.ceilToDouble());
|
||||
Expect.equals(-0x123456789AB, -0x123456789AB.ceilToDouble());
|
||||
Expect.equals(-81985529216486900.0, -0x123456789ABCDEF.ceilToDouble());
|
||||
Expect.equals(-2.7898229935051914e+55,
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.ceilToDouble());
|
||||
|
||||
Expect.isTrue(0.ceilToDouble() is double);
|
||||
Expect.isTrue(1.ceilToDouble() is double);
|
||||
|
@ -27,13 +23,9 @@ main() {
|
|||
Expect.isTrue(0x12345678.ceilToDouble() is double);
|
||||
Expect.isTrue(0x123456789AB.ceilToDouble() is double);
|
||||
Expect.isTrue(0x123456789ABCDEF.ceilToDouble() is double);
|
||||
Expect.isTrue(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.ceilToDouble()
|
||||
is double);
|
||||
Expect.isTrue(-1.ceilToDouble() is double);
|
||||
Expect.isTrue(-0x1234.ceilToDouble() is double);
|
||||
Expect.isTrue(-0x12345678.ceilToDouble() is double);
|
||||
Expect.isTrue(-0x123456789AB.ceilToDouble() is double);
|
||||
Expect.isTrue(-0x123456789ABCDEF.ceilToDouble() is double);
|
||||
Expect.isTrue(-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
|
||||
.ceilToDouble() is double);
|
||||
}
|
||||
|
|
|
@ -11,15 +11,11 @@ main() {
|
|||
Expect.equals(0x12345678, 0x12345678.floor());
|
||||
Expect.equals(0x123456789AB, 0x123456789AB.floor());
|
||||
Expect.equals(0x123456789ABCDEF, 0x123456789ABCDEF.floor());
|
||||
Expect.equals(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF,
|
||||
0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.floor());
|
||||
Expect.equals(-1, -1.floor());
|
||||
Expect.equals(-0x1234, -0x1234.floor());
|
||||
Expect.equals(-0x12345678, -0x12345678.floor());
|
||||
Expect.equals(-0x123456789AB, -0x123456789AB.floor());
|
||||
Expect.equals(-0x123456789ABCDEF, -0x123456789ABCDEF.floor());
|
||||
Expect.equals(-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF,
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.floor());
|
||||
|
||||
Expect.isTrue(0.floor() is int);
|
||||
Expect.isTrue(1.floor() is int);
|
||||
|
@ -27,13 +23,9 @@ main() {
|
|||
Expect.isTrue(0x12345678.floor() is int);
|
||||
Expect.isTrue(0x123456789AB.floor() is int);
|
||||
Expect.isTrue(0x123456789ABCDEF.floor() is int);
|
||||
Expect
|
||||
.isTrue(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.floor() is int);
|
||||
Expect.isTrue(-1.floor() is int);
|
||||
Expect.isTrue(-0x1234.floor() is int);
|
||||
Expect.isTrue(-0x12345678.floor() is int);
|
||||
Expect.isTrue(-0x123456789AB.floor() is int);
|
||||
Expect.isTrue(-0x123456789ABCDEF.floor() is int);
|
||||
Expect.isTrue(
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.floor() is int);
|
||||
}
|
||||
|
|
|
@ -11,15 +11,11 @@ main() {
|
|||
Expect.equals(0x12345678, 0x12345678.floorToDouble());
|
||||
Expect.equals(0x123456789AB, 0x123456789AB.floorToDouble());
|
||||
Expect.equals(81985529216486900.0, 0x123456789ABCDEF.floorToDouble());
|
||||
Expect.equals(2.7898229935051914e+55,
|
||||
0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.floorToDouble());
|
||||
Expect.equals(-1.0, -1.floorToDouble());
|
||||
Expect.equals(-0x1234, -0x1234.floorToDouble());
|
||||
Expect.equals(-0x12345678, -0x12345678.floorToDouble());
|
||||
Expect.equals(-0x123456789AB, -0x123456789AB.floorToDouble());
|
||||
Expect.equals(-81985529216486900.0, -0x123456789ABCDEF.floorToDouble());
|
||||
Expect.equals(-2.7898229935051914e+55,
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.floorToDouble());
|
||||
|
||||
Expect.isTrue(0.floorToDouble() is double);
|
||||
Expect.isTrue(1.floorToDouble() is double);
|
||||
|
@ -27,13 +23,9 @@ main() {
|
|||
Expect.isTrue(0x12345678.floorToDouble() is double);
|
||||
Expect.isTrue(0x123456789AB.floorToDouble() is double);
|
||||
Expect.isTrue(0x123456789ABCDEF.floorToDouble() is double);
|
||||
Expect.isTrue(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
|
||||
.floorToDouble() is double);
|
||||
Expect.isTrue(-1.floorToDouble() is double);
|
||||
Expect.isTrue(-0x1234.floorToDouble() is double);
|
||||
Expect.isTrue(-0x12345678.floorToDouble() is double);
|
||||
Expect.isTrue(-0x123456789AB.floorToDouble() is double);
|
||||
Expect.isTrue(-0x123456789ABCDEF.floorToDouble() is double);
|
||||
Expect.isTrue(-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
|
||||
.floorToDouble() is double);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
// SharedOptions=-Da=1 -Db=-12 -Dc=0x123 -Dd=-0x1234 -De=+0x112296 -Df=99999999999999999999
|
||||
// SharedOptions=-Da=1 -Db=-12 -Dc=0x123 -Dd=-0x1234 -De=+0x112296 -Df=-9223372036854775808 -Dg=9223372036854775807
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
|
@ -11,5 +11,6 @@ main() {
|
|||
Expect.equals(0x123, const int.fromEnvironment('c'));
|
||||
Expect.equals(-0x1234, const int.fromEnvironment('d'));
|
||||
Expect.equals(0x112296, const int.fromEnvironment('e'));
|
||||
Expect.equals(99999999999999999999, const int.fromEnvironment('f'));
|
||||
Expect.equals(-9223372036854775808, const int.fromEnvironment('f'));
|
||||
Expect.equals(9223372036854775807, const int.fromEnvironment('g'));
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ import "dart:math" show pow;
|
|||
|
||||
var smallNumber = 1234567890; // is 31-bit integer.
|
||||
var mediumNumber = 1234567890123456; // is 53-bit integer
|
||||
var bigNumber = 590295810358705600000; // is > 64-bit integer, exact as double.
|
||||
|
||||
testModPow() {
|
||||
test(x, e, m, expectedResult) {
|
||||
|
@ -38,26 +37,6 @@ testModPow() {
|
|||
test(19, 1000000001, 1234567890, 84910879);
|
||||
test(1000000001, 19, 1234567890, 872984351);
|
||||
test(1000000001, 1234567890, 19, 0);
|
||||
test(12345678901234567890, 10000000000000000001, 19, 2);
|
||||
test(12345678901234567890, 19, 10000000000000000001, 3239137215315834625);
|
||||
test(19, 12345678901234567890, 10000000000000000001, 4544207837373941034);
|
||||
test(19, 10000000000000000001, 12345678901234567890, 11135411705397624859);
|
||||
test(10000000000000000001, 19, 12345678901234567890, 2034013733189773841);
|
||||
test(10000000000000000001, 12345678901234567890, 19, 1);
|
||||
test(12345678901234567890, 19, 10000000000000000001, 3239137215315834625);
|
||||
test(12345678901234567890, 10000000000000000001, 19, 2);
|
||||
test(123456789012345678901234567890, 123456789012345678901234567891,
|
||||
123456789012345678901234567899, 116401406051033429924651549616);
|
||||
test(123456789012345678901234567890, 123456789012345678901234567899,
|
||||
123456789012345678901234567891, 123456789012345678901234567890);
|
||||
test(123456789012345678901234567899, 123456789012345678901234567890,
|
||||
123456789012345678901234567891, 35088523091000351053091545070);
|
||||
test(123456789012345678901234567899, 123456789012345678901234567891,
|
||||
123456789012345678901234567890, 18310047270234132455316941949);
|
||||
test(123456789012345678901234567891, 123456789012345678901234567899,
|
||||
123456789012345678901234567890, 1);
|
||||
test(123456789012345678901234567891, 123456789012345678901234567890,
|
||||
123456789012345678901234567899, 40128068573873018143207285483);
|
||||
}
|
||||
|
||||
testModInverse() {
|
||||
|
@ -91,7 +70,6 @@ testModInverse() {
|
|||
testThrows(2, 4);
|
||||
testThrows(99, 9);
|
||||
testThrows(19, 1000000001);
|
||||
testThrows(123456789012345678901234567890, 123456789012345678901234567899);
|
||||
|
||||
// Co-prime numbers
|
||||
test(1234567890, 19, 11);
|
||||
|
@ -106,9 +84,6 @@ testModInverse() {
|
|||
test(137, smallNumber, 856087223);
|
||||
test(mediumNumber, 137, 77);
|
||||
test(137, mediumNumber, 540686667207353);
|
||||
test(bigNumber, 137, 128); // //# bignum: ok
|
||||
// Bigger numbers as modulo is tested in big_integer_arith_vm_test.dart.
|
||||
// Big doubles are not co-prime, so there is nothing to test for dart2js.
|
||||
}
|
||||
|
||||
testGcd() {
|
||||
|
@ -186,8 +161,8 @@ testGcd() {
|
|||
|
||||
test(pow(2, 54), pow(2, 53), pow(2, 53));
|
||||
|
||||
test((pow(2, 52) - 1) * pow(2, 14), (pow(2, 26) - 1) * pow(2, 22),
|
||||
(pow(2, 26) - 1) * pow(2, 14));
|
||||
test((pow(2, 52) - 1) * pow(2, 10), (pow(2, 26) - 1) * pow(2, 22),
|
||||
(pow(2, 26) - 1) * pow(2, 10));
|
||||
}
|
||||
|
||||
main() {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
import "dart:math" show pow;
|
||||
import "dart:math" show pow, log;
|
||||
|
||||
void main() {
|
||||
const String oneByteWhiteSpace = "\x09\x0a\x0b\x0c\x0d\x20"
|
||||
|
@ -65,10 +65,12 @@ void main() {
|
|||
}
|
||||
}
|
||||
|
||||
final max = 9223372036854775807;
|
||||
for (int i = 2; i <= 36; i++) { // //# 02: ok
|
||||
// Test with bignums. // //# 02: continued
|
||||
final n = (log(max) / log(i)).truncate(); // //# 02: continued
|
||||
var digit = digits[i - 1]; // //# 02: continued
|
||||
testParse(pow(i, 64) - 1, digit * 64, i); // //# 02: continued
|
||||
testParse(pow(i, n) - 1, digit * n, i); // //# 02: continued
|
||||
testParse(0, zeros, i); // //# 02: continued
|
||||
} // //# 02: continued
|
||||
|
||||
|
@ -77,9 +79,8 @@ void main() {
|
|||
Expect.equals(0xABCD, int.parse("abcd", radix: 16));
|
||||
Expect.equals(15628859, int.parse("09azAZ", radix: 36));
|
||||
// Big number.
|
||||
Expect.equals(0x12345678123456781234567812345678, // //# 02: continued
|
||||
int.parse("0x1234567812345678" // //# 02: continued
|
||||
"1234567812345678")); // //# 02: continued
|
||||
Expect.equals(9223372036854775807, int.parse("9223372036854775807"));
|
||||
Expect.equals(-9223372036854775808, int.parse("-9223372036854775808"));
|
||||
// Allow whitespace before and after the number.
|
||||
Expect.equals(1, int.parse(" 1", radix: 2));
|
||||
Expect.equals(1, int.parse("1 ", radix: 2));
|
||||
|
|
|
@ -11,15 +11,11 @@ main() {
|
|||
Expect.equals(0x12345678, 0x12345678.round());
|
||||
Expect.equals(0x123456789AB, 0x123456789AB.round());
|
||||
Expect.equals(0x123456789ABCDEF, 0x123456789ABCDEF.round());
|
||||
Expect.equals(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF,
|
||||
0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.round());
|
||||
Expect.equals(-1, -1.round());
|
||||
Expect.equals(-0x1234, -0x1234.round());
|
||||
Expect.equals(-0x12345678, -0x12345678.round());
|
||||
Expect.equals(-0x123456789AB, -0x123456789AB.round());
|
||||
Expect.equals(-0x123456789ABCDEF, -0x123456789ABCDEF.round());
|
||||
Expect.equals(-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF,
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.round());
|
||||
|
||||
Expect.isTrue(0.round() is int);
|
||||
Expect.isTrue(1.round() is int);
|
||||
|
@ -27,13 +23,9 @@ main() {
|
|||
Expect.isTrue(0x12345678.round() is int);
|
||||
Expect.isTrue(0x123456789AB.round() is int);
|
||||
Expect.isTrue(0x123456789ABCDEF.round() is int);
|
||||
Expect
|
||||
.isTrue(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.round() is int);
|
||||
Expect.isTrue(-1.round() is int);
|
||||
Expect.isTrue(-0x1234.round() is int);
|
||||
Expect.isTrue(-0x12345678.round() is int);
|
||||
Expect.isTrue(-0x123456789AB.round() is int);
|
||||
Expect.isTrue(-0x123456789ABCDEF.round() is int);
|
||||
Expect.isTrue(
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.round() is int);
|
||||
}
|
||||
|
|
|
@ -11,15 +11,11 @@ main() {
|
|||
Expect.equals(0x12345678, 0x12345678.roundToDouble());
|
||||
Expect.equals(0x123456789AB, 0x123456789AB.roundToDouble());
|
||||
Expect.equals(81985529216486900.0, 0x123456789ABCDEF.roundToDouble());
|
||||
Expect.equals(2.7898229935051914e+55,
|
||||
0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.roundToDouble());
|
||||
Expect.equals(-1.0, -1.roundToDouble());
|
||||
Expect.equals(-0x1234, -0x1234.roundToDouble());
|
||||
Expect.equals(-0x12345678, -0x12345678.roundToDouble());
|
||||
Expect.equals(-0x123456789AB, -0x123456789AB.roundToDouble());
|
||||
Expect.equals(-81985529216486900.0, -0x123456789ABCDEF.roundToDouble());
|
||||
Expect.equals(-2.7898229935051914e+55,
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.roundToDouble());
|
||||
|
||||
Expect.isTrue(0.roundToDouble() is double);
|
||||
Expect.isTrue(1.roundToDouble() is double);
|
||||
|
@ -27,13 +23,9 @@ main() {
|
|||
Expect.isTrue(0x12345678.roundToDouble() is double);
|
||||
Expect.isTrue(0x123456789AB.roundToDouble() is double);
|
||||
Expect.isTrue(0x123456789ABCDEF.roundToDouble() is double);
|
||||
Expect.isTrue(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
|
||||
.roundToDouble() is double);
|
||||
Expect.isTrue(-1.roundToDouble() is double);
|
||||
Expect.isTrue(-0x1234.roundToDouble() is double);
|
||||
Expect.isTrue(-0x12345678.roundToDouble() is double);
|
||||
Expect.isTrue(-0x123456789AB.roundToDouble() is double);
|
||||
Expect.isTrue(-0x123456789ABCDEF.roundToDouble() is double);
|
||||
Expect.isTrue(-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
|
||||
.roundToDouble() is double);
|
||||
}
|
||||
|
|
|
@ -11,15 +11,11 @@ main() {
|
|||
Expect.equals(0x12345678, 0x12345678.toInt());
|
||||
Expect.equals(0x123456789AB, 0x123456789AB.toInt());
|
||||
Expect.equals(0x123456789ABCDEF, 0x123456789ABCDEF.toInt());
|
||||
Expect.equals(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF,
|
||||
0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.toInt());
|
||||
Expect.equals(-1, -1.toInt());
|
||||
Expect.equals(-0x1234, -0x1234.toInt());
|
||||
Expect.equals(-0x12345678, -0x12345678.toInt());
|
||||
Expect.equals(-0x123456789AB, -0x123456789AB.toInt());
|
||||
Expect.equals(-0x123456789ABCDEF, -0x123456789ABCDEF.toInt());
|
||||
Expect.equals(-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF,
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.toInt());
|
||||
|
||||
Expect.isTrue(0.toInt() is int);
|
||||
Expect.isTrue(1.toInt() is int);
|
||||
|
@ -27,13 +23,9 @@ main() {
|
|||
Expect.isTrue(0x12345678.toInt() is int);
|
||||
Expect.isTrue(0x123456789AB.toInt() is int);
|
||||
Expect.isTrue(0x123456789ABCDEF.toInt() is int);
|
||||
Expect
|
||||
.isTrue(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.toInt() is int);
|
||||
Expect.isTrue(-1.toInt() is int);
|
||||
Expect.isTrue(-0x1234.toInt() is int);
|
||||
Expect.isTrue(-0x12345678.toInt() is int);
|
||||
Expect.isTrue(-0x123456789AB.toInt() is int);
|
||||
Expect.isTrue(-0x123456789ABCDEF.toInt() is int);
|
||||
Expect.isTrue(
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.toInt() is int);
|
||||
}
|
||||
|
|
|
@ -11,15 +11,11 @@ main() {
|
|||
Expect.equals(0x12345678, 0x12345678.truncate());
|
||||
Expect.equals(0x123456789AB, 0x123456789AB.truncate());
|
||||
Expect.equals(0x123456789ABCDEF, 0x123456789ABCDEF.truncate());
|
||||
Expect.equals(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF,
|
||||
0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.truncate());
|
||||
Expect.equals(-1, -1.truncate());
|
||||
Expect.equals(-0x1234, -0x1234.truncate());
|
||||
Expect.equals(-0x12345678, -0x12345678.truncate());
|
||||
Expect.equals(-0x123456789AB, -0x123456789AB.truncate());
|
||||
Expect.equals(-0x123456789ABCDEF, -0x123456789ABCDEF.truncate());
|
||||
Expect.equals(-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF,
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.truncate());
|
||||
|
||||
Expect.isTrue(0.truncate() is int);
|
||||
Expect.isTrue(1.truncate() is int);
|
||||
|
@ -27,13 +23,9 @@ main() {
|
|||
Expect.isTrue(0x12345678.truncate() is int);
|
||||
Expect.isTrue(0x123456789AB.truncate() is int);
|
||||
Expect.isTrue(0x123456789ABCDEF.truncate() is int);
|
||||
Expect.isTrue(
|
||||
0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.truncate() is int);
|
||||
Expect.isTrue(-1.truncate() is int);
|
||||
Expect.isTrue(-0x1234.truncate() is int);
|
||||
Expect.isTrue(-0x12345678.truncate() is int);
|
||||
Expect.isTrue(-0x123456789AB.truncate() is int);
|
||||
Expect.isTrue(-0x123456789ABCDEF.truncate() is int);
|
||||
Expect.isTrue(
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.truncate() is int);
|
||||
}
|
||||
|
|
|
@ -11,15 +11,11 @@ main() {
|
|||
Expect.equals(0x12345678, 0x12345678.truncateToDouble());
|
||||
Expect.equals(0x123456789AB, 0x123456789AB.truncateToDouble());
|
||||
Expect.equals(81985529216486900.0, 0x123456789ABCDEF.truncateToDouble());
|
||||
Expect.equals(2.7898229935051914e+55,
|
||||
0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.truncateToDouble());
|
||||
Expect.equals(-1.0, -1.truncateToDouble());
|
||||
Expect.equals(-0x1234, -0x1234.truncateToDouble());
|
||||
Expect.equals(-0x12345678, -0x12345678.truncateToDouble());
|
||||
Expect.equals(-0x123456789AB, -0x123456789AB.truncateToDouble());
|
||||
Expect.equals(-81985529216486900.0, -0x123456789ABCDEF.truncateToDouble());
|
||||
Expect.equals(-2.7898229935051914e+55,
|
||||
-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF.truncateToDouble());
|
||||
|
||||
Expect.isTrue(0.truncateToDouble() is double);
|
||||
Expect.isTrue(1.truncateToDouble() is double);
|
||||
|
@ -27,13 +23,9 @@ main() {
|
|||
Expect.isTrue(0x12345678.truncateToDouble() is double);
|
||||
Expect.isTrue(0x123456789AB.truncateToDouble() is double);
|
||||
Expect.isTrue(0x123456789ABCDEF.truncateToDouble() is double);
|
||||
Expect.isTrue(0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
|
||||
.truncateToDouble() is double);
|
||||
Expect.isTrue(-1.truncateToDouble() is double);
|
||||
Expect.isTrue(-0x1234.truncateToDouble() is double);
|
||||
Expect.isTrue(-0x12345678.truncateToDouble() is double);
|
||||
Expect.isTrue(-0x123456789AB.truncateToDouble() is double);
|
||||
Expect.isTrue(-0x123456789ABCDEF.truncateToDouble() is double);
|
||||
Expect.isTrue(-0x123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
|
||||
.truncateToDouble() is double);
|
||||
}
|
||||
|
|
139
tests/corelib_2/integer_arith_vm_test.dart
Normal file
139
tests/corelib_2/integer_arith_vm_test.dart
Normal file
|
@ -0,0 +1,139 @@
|
|||
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// Testing integers with and without intrinsics.
|
||||
// VMOptions=
|
||||
// VMOptions=--no_intrinsify
|
||||
// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
|
||||
|
||||
library integer_arithmetic_test;
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
foo() => 1234567890123456789;
|
||||
|
||||
testSmiOverflow() {
|
||||
var a = 1073741823;
|
||||
var b = 1073741822;
|
||||
Expect.equals(2147483645, a + b);
|
||||
a = -1000000000;
|
||||
b = 1000000001;
|
||||
Expect.equals(-2000000001, a - b);
|
||||
Expect.equals(-1000000001000000000, a * b);
|
||||
}
|
||||
|
||||
testModPow() {
|
||||
var x, e, m;
|
||||
x = 1234567890;
|
||||
e = 1000000001;
|
||||
m = 19;
|
||||
Expect.equals(11, x.modPow(e, m));
|
||||
x = 1234567890;
|
||||
e = 19;
|
||||
m = 1000000001;
|
||||
Expect.equals(122998977, x.modPow(e, m));
|
||||
x = 19;
|
||||
e = 1234567890;
|
||||
m = 1000000001;
|
||||
Expect.equals(619059596, x.modPow(e, m));
|
||||
x = 19;
|
||||
e = 1000000001;
|
||||
m = 1234567890;
|
||||
Expect.equals(84910879, x.modPow(e, m));
|
||||
x = 1000000001;
|
||||
e = 19;
|
||||
m = 1234567890;
|
||||
Expect.equals(872984351, x.modPow(e, m));
|
||||
x = 1000000001;
|
||||
e = 1234567890;
|
||||
m = 19;
|
||||
Expect.equals(0, x.modPow(e, m));
|
||||
}
|
||||
|
||||
testModInverse() {
|
||||
var x, m;
|
||||
x = 1;
|
||||
m = 1;
|
||||
Expect.equals(0, x.modInverse(m));
|
||||
x = 0;
|
||||
m = 1000000001;
|
||||
Expect.throws(() => x.modInverse(m), (e) => e is Exception); // Not coprime.
|
||||
x = 1234567890;
|
||||
m = 19;
|
||||
Expect.equals(11, x.modInverse(m));
|
||||
x = 1234567890;
|
||||
m = 1000000001;
|
||||
Expect.equals(189108911, x.modInverse(m));
|
||||
x = 19;
|
||||
m = 1000000001;
|
||||
Expect.throws(() => x.modInverse(m), (e) => e is Exception); // Not coprime.
|
||||
x = 19;
|
||||
m = 1234567890;
|
||||
Expect.equals(519818059, x.modInverse(m));
|
||||
x = 1000000001;
|
||||
m = 1234567890;
|
||||
Expect.equals(1001100101, x.modInverse(m));
|
||||
x = 1000000001;
|
||||
m = 19;
|
||||
Expect.throws(() => x.modInverse(m), (e) => e is Exception); // Not coprime.
|
||||
}
|
||||
|
||||
testGcd() {
|
||||
var x, m;
|
||||
x = 1;
|
||||
m = 1;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 693;
|
||||
m = 609;
|
||||
Expect.equals(21, x.gcd(m));
|
||||
x = 693 << 40;
|
||||
m = 609 << 40;
|
||||
Expect.equals(21 << 40, x.gcd(m));
|
||||
x = 609 << 40;
|
||||
m = 693 << 40;
|
||||
Expect.equals(21 << 40, x.gcd(m));
|
||||
x = 0;
|
||||
m = 1000000001;
|
||||
Expect.equals(m, x.gcd(m));
|
||||
x = 1000000001;
|
||||
m = 0;
|
||||
Expect.equals(x, x.gcd(m));
|
||||
x = 0;
|
||||
m = -1000000001;
|
||||
Expect.equals(-m, x.gcd(m));
|
||||
x = -1000000001;
|
||||
m = 0;
|
||||
Expect.equals(-x, x.gcd(m));
|
||||
x = 0;
|
||||
m = 0;
|
||||
Expect.equals(0, x.gcd(m));
|
||||
x = 1234567890;
|
||||
m = 19;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 1234567890;
|
||||
m = 1000000001;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 19;
|
||||
m = 1000000001;
|
||||
Expect.equals(19, x.gcd(m));
|
||||
x = 19;
|
||||
m = 1234567890;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 1000000001;
|
||||
m = 1234567890;
|
||||
Expect.equals(1, x.gcd(m));
|
||||
x = 1000000001;
|
||||
m = 19;
|
||||
Expect.equals(19, x.gcd(m));
|
||||
}
|
||||
|
||||
main() {
|
||||
for (int i = 0; i < 10; i++) {
|
||||
Expect.equals(1234567890123456789, foo());
|
||||
testSmiOverflow();
|
||||
testModPow(); // //# modPow: ok
|
||||
testModInverse();
|
||||
testGcd();
|
||||
}
|
||||
}
|
|
@ -2,11 +2,11 @@
|
|||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// Testing Bigints with and without intrinsics.
|
||||
// Testing integers with and without intrinsics.
|
||||
// VMOptions=
|
||||
// VMOptions=--no_intrinsify
|
||||
|
||||
library big_integer_test;
|
||||
library integer_arithmetic_test;
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
|
@ -34,7 +34,7 @@ addSubParsed(String a, String b, String sum) {
|
|||
Expect.equals(a.toLowerCase(), str_difference2);
|
||||
}
|
||||
|
||||
testBigintAddSub() {
|
||||
testAddSub() {
|
||||
String zero = "0x0";
|
||||
String one = "0x1";
|
||||
String minus_one = "-0x1";
|
||||
|
@ -60,16 +60,14 @@ testBigintAddSub() {
|
|||
"0xFFFFFFFFFFFFFF",
|
||||
one, // 56 bit overflow.
|
||||
"0x100000000000000");
|
||||
addSubParsed(
|
||||
"0xFFFFFFFFFFFFFFFF",
|
||||
one, // 64 bit overflow.
|
||||
"0x10000000000000000");
|
||||
addSubParsed(
|
||||
"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", // 128 bit.
|
||||
one,
|
||||
"0x100000000000000000000000000000000");
|
||||
addSubParsed("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", one,
|
||||
"0x10000000000000000000000000000000000000000000");
|
||||
addSubParsed( // //# 01: ok
|
||||
"0x7FFFFFFFFFFFFFFF", // //# 01: continued
|
||||
one, // 64 bit overflow. //# 01: continued
|
||||
"-0x8000000000000000"); // //# 01: continued
|
||||
addSubParsed( // //# 02: ok
|
||||
"0xFFFFFFFFFFFFFFFF", // //# 02: continued
|
||||
one, // 64 bit overflow. //# 02: continued
|
||||
"0"); // //# 02: continued
|
||||
addSubParsed(
|
||||
"0x8000000", // 28 bit overflow.
|
||||
"0x8000000",
|
||||
|
@ -82,27 +80,10 @@ testBigintAddSub() {
|
|||
"0x80000000000000", // 56 bit overflow.
|
||||
"0x80000000000000",
|
||||
"0x100000000000000");
|
||||
addSubParsed(
|
||||
"0x8000000000000000", // 64 bit overflow.
|
||||
"0x8000000000000000",
|
||||
"0x10000000000000000");
|
||||
addSubParsed(
|
||||
"0x80000000000000000000000000000000", // 128 bit.
|
||||
"0x80000000000000000000000000000000",
|
||||
"0x100000000000000000000000000000000");
|
||||
addSubParsed(
|
||||
"0x8000000000000000000000000000000000000000000",
|
||||
"0x8000000000000000000000000000000000000000000",
|
||||
"0x10000000000000000000000000000000000000000000");
|
||||
|
||||
{
|
||||
String a = "0x123456789ABCDEF01234567890ABCDEF0123456789ABCDEF0";
|
||||
String sum1 = "0x123456789ABCDEF01234567890ABCDEF0123456789ABCDEF1";
|
||||
String times2 = "0x2468ACF13579BDE02468ACF121579BDE02468ACF13579BDE0";
|
||||
addSubParsed(a, zero, a);
|
||||
addSubParsed(a, one, sum1);
|
||||
addSubParsed(a, a, times2);
|
||||
}
|
||||
addSubParsed( // //# 02: continued
|
||||
"0x8000000000000000", // 64 bit overflow. //# 02: continued
|
||||
"0x8000000000000000", // //# 02: continued
|
||||
"0"); // //# 02: continued
|
||||
|
||||
addSubParsed("-0x123", minus_one, "-0x124");
|
||||
addSubParsed(minus_one, "-0x123", "-0x124");
|
||||
|
@ -118,16 +99,10 @@ testBigintAddSub() {
|
|||
"-0xFFFFFFFFFFFFFF",
|
||||
minus_one, // 56 bit overflow.
|
||||
"-0x100000000000000");
|
||||
addSubParsed(
|
||||
"-0xFFFFFFFFFFFFFFFF",
|
||||
minus_one, // 64 bit overflow.
|
||||
"-0x10000000000000000");
|
||||
addSubParsed(
|
||||
"-0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", // 128 bit.
|
||||
minus_one,
|
||||
"-0x100000000000000000000000000000000");
|
||||
addSubParsed("-0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", minus_one,
|
||||
"-0x10000000000000000000000000000000000000000000");
|
||||
addSubParsed( // //# 01: continued
|
||||
"-0x8000000000000000", // //# 01: continued
|
||||
minus_one, // 64 bit overflow. //# 01: continued
|
||||
"0x7FFFFFFFFFFFFFFF"); // //# 01: continued
|
||||
addSubParsed(
|
||||
"-0x8000000", // 28 bit overflow.
|
||||
"-0x8000000",
|
||||
|
@ -140,38 +115,10 @@ testBigintAddSub() {
|
|||
"-0x80000000000000", // 56 bit overflow.
|
||||
"-0x80000000000000",
|
||||
"-0x100000000000000");
|
||||
addSubParsed(
|
||||
"-0x8000000000000000", // 64 bit overflow.
|
||||
"-0x8000000000000000",
|
||||
"-0x10000000000000000");
|
||||
addSubParsed(
|
||||
"-0x80000000000000000000000000000000", // 128 bit.
|
||||
"-0x80000000000000000000000000000000",
|
||||
"-0x100000000000000000000000000000000");
|
||||
addSubParsed(
|
||||
"-0x8000000000000000000000000000000000000000000",
|
||||
"-0x8000000000000000000000000000000000000000000",
|
||||
"-0x10000000000000000000000000000000000000000000");
|
||||
|
||||
{
|
||||
String a = "-0x123456789ABCDEF01234567890ABCDEF0123456789ABCDEF0";
|
||||
String sum1 = "-0x123456789ABCDEF01234567890ABCDEF0123456789ABCDEF1";
|
||||
String times2 = "-0x2468ACF13579BDE02468ACF121579BDE02468ACF13579BDE0";
|
||||
addSubParsed(a, zero, a);
|
||||
addSubParsed(a, minus_one, sum1);
|
||||
addSubParsed(a, a, times2);
|
||||
}
|
||||
|
||||
addSubParsed("0x10000000000000000000000000000000000000000000", "0xFFFF",
|
||||
"0x1000000000000000000000000000000000000000FFFF");
|
||||
addSubParsed("0x10000000000000000000000000000000000000000000",
|
||||
"0xFFFF00000000", "0x10000000000000000000000000000000FFFF00000000");
|
||||
addSubParsed("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "0x100000000",
|
||||
"0x1000000000000000000000000000000000000FFFFFFFF");
|
||||
addSubParsed(
|
||||
"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
|
||||
"0x10000000000000000000",
|
||||
"0x10000000000000000000000000FFFFFFFFFFFFFFFFFFF");
|
||||
addSubParsed( // //# 01: continued
|
||||
"-0x8000000000000000", // 64 bit overflow. //# 01: continued
|
||||
"-0x8000000000000000", // //# 01: continued
|
||||
"0x0"); // //# 01: continued
|
||||
|
||||
addSubParsed("0xB", "-0x7", "0x4");
|
||||
addSubParsed("-0xB", "-0x7", "-0x12");
|
||||
|
@ -183,9 +130,12 @@ testBigintAddSub() {
|
|||
addSubParsed("0x7", "-0xB", "-0x4");
|
||||
}
|
||||
|
||||
shiftLeftParsed(String a, int amount, String result) {
|
||||
shiftLeftParsed(String a, int amount, String result,
|
||||
{String result_back_shifted}) {
|
||||
result_back_shifted ??= a;
|
||||
int int_a = int.parse(a);
|
||||
int int_result = int.parse(result);
|
||||
int int_result_back_shifted = int.parse(result_back_shifted);
|
||||
int shifted = int_a << amount;
|
||||
Expect.equals(int_result, shifted);
|
||||
String str_shifted = shifted >= 0
|
||||
|
@ -193,14 +143,14 @@ shiftLeftParsed(String a, int amount, String result) {
|
|||
: "-0x${(-shifted).toRadixString(16)}";
|
||||
Expect.equals(result.toLowerCase(), str_shifted);
|
||||
int back_shifted = shifted >> amount;
|
||||
Expect.equals(int_a, back_shifted);
|
||||
Expect.equals(int_result_back_shifted, back_shifted);
|
||||
String str_back_shifted = back_shifted >= 0
|
||||
? "0x${back_shifted.toRadixString(16)}"
|
||||
: "-0x${(-back_shifted).toRadixString(16)}";
|
||||
Expect.equals(a.toLowerCase(), str_back_shifted);
|
||||
Expect.equals(result_back_shifted.toLowerCase(), str_back_shifted);
|
||||
}
|
||||
|
||||
testBigintLeftShift() {
|
||||
testLeftShift() {
|
||||
String zero = "0x0";
|
||||
String one = "0x1";
|
||||
String minus_one = "-0x1";
|
||||
|
@ -212,43 +162,50 @@ testBigintLeftShift() {
|
|||
shiftLeftParsed(one, 1, "0x2");
|
||||
shiftLeftParsed(one, 28, "0x10000000");
|
||||
shiftLeftParsed(one, 32, "0x100000000");
|
||||
shiftLeftParsed(one, 64, "0x10000000000000000");
|
||||
shiftLeftParsed(one, 64, zero, result_back_shifted: zero);
|
||||
shiftLeftParsed("0x5", 28, "0x50000000");
|
||||
shiftLeftParsed("0x5", 32, "0x500000000");
|
||||
shiftLeftParsed("0x5", 56, "0x500000000000000");
|
||||
shiftLeftParsed("0x5", 64, "0x50000000000000000");
|
||||
shiftLeftParsed("0x5", 128, "0x500000000000000000000000000000000");
|
||||
shiftLeftParsed("0x5", 64, zero, result_back_shifted: zero);
|
||||
shiftLeftParsed("0x5", 128, zero, result_back_shifted: zero);
|
||||
shiftLeftParsed("0x5", 27, "0x28000000");
|
||||
shiftLeftParsed("0x5", 31, "0x280000000");
|
||||
shiftLeftParsed("0x5", 55, "0x280000000000000");
|
||||
shiftLeftParsed("0x5", 63, "0x28000000000000000");
|
||||
shiftLeftParsed("0x5", 127, "0x280000000000000000000000000000000");
|
||||
shiftLeftParsed("0x5", 63, "-0x8000000000000000", // //# 01: continued
|
||||
result_back_shifted: "-0x1"); // //# 01: continued
|
||||
shiftLeftParsed("0x5", 127, zero, result_back_shifted: zero);
|
||||
shiftLeftParsed("0x8000001", 1, "0x10000002");
|
||||
shiftLeftParsed("0x80000001", 1, "0x100000002");
|
||||
shiftLeftParsed("0x8000000000000001", 1, "0x10000000000000002");
|
||||
shiftLeftParsed("0x8000000000000001", 1, "0x2", // //# 02: continued
|
||||
result_back_shifted: "0x1"); // //# 02: continued
|
||||
shiftLeftParsed("0x8000001", 29, "0x100000020000000");
|
||||
shiftLeftParsed("0x80000001", 33, "0x10000000200000000");
|
||||
shiftLeftParsed(
|
||||
"0x8000000000000001", 65, "0x100000000000000020000000000000000");
|
||||
shiftLeftParsed("0x80000001", 33, "0x200000000", result_back_shifted: "0x1");
|
||||
shiftLeftParsed("0x8000000000000001", 65, zero, // //# 02: continued
|
||||
result_back_shifted: zero); // //# 02: continued
|
||||
shiftLeftParsed("0x7fffffffffffffff", 1, "-0x2", result_back_shifted: "-0x1");
|
||||
shiftLeftParsed("0x7fffffffffffffff", 29, "-0x20000000",
|
||||
result_back_shifted: "-0x1");
|
||||
shiftLeftParsed(minus_one, 0, minus_one);
|
||||
shiftLeftParsed("-0x1234", 0, "-0x1234");
|
||||
shiftLeftParsed(minus_one, 1, "-0x2");
|
||||
shiftLeftParsed(minus_one, 28, "-0x10000000");
|
||||
shiftLeftParsed(minus_one, 32, "-0x100000000");
|
||||
shiftLeftParsed(minus_one, 64, "-0x10000000000000000");
|
||||
shiftLeftParsed(minus_one, 64, zero, result_back_shifted: zero);
|
||||
shiftLeftParsed("-0x5", 28, "-0x50000000");
|
||||
shiftLeftParsed("-0x5", 32, "-0x500000000");
|
||||
shiftLeftParsed("-0x5", 64, "-0x50000000000000000");
|
||||
shiftLeftParsed("-0x5", 64, zero, result_back_shifted: zero);
|
||||
shiftLeftParsed("-0x5", 27, "-0x28000000");
|
||||
shiftLeftParsed("-0x5", 31, "-0x280000000");
|
||||
shiftLeftParsed("-0x5", 63, "-0x28000000000000000");
|
||||
shiftLeftParsed("-0x5", 63, "-0x8000000000000000"); // //# 01: continued
|
||||
shiftLeftParsed("-0x8000001", 1, "-0x10000002");
|
||||
shiftLeftParsed("-0x80000001", 1, "-0x100000002");
|
||||
shiftLeftParsed("-0x8000000000000001", 1, "-0x10000000000000002");
|
||||
shiftLeftParsed("-0x8000001", 29, "-0x100000020000000");
|
||||
shiftLeftParsed("-0x80000001", 33, "-0x10000000200000000");
|
||||
shiftLeftParsed(
|
||||
"-0x8000000000000001", 65, "-0x100000000000000020000000000000000");
|
||||
shiftLeftParsed("-0x80000001", 33, "-0x200000000",
|
||||
result_back_shifted: "-0x1");
|
||||
shiftLeftParsed("-0x7fffffffffffffff", 1, "0x2", result_back_shifted: "0x1");
|
||||
shiftLeftParsed("-0x7fffffffffffffff", 65, zero, result_back_shifted: zero);
|
||||
shiftLeftParsed("-0x8000000000000000", 1, zero, result_back_shifted: zero);
|
||||
shiftLeftParsed("-0x8000000000000000", 29, zero, result_back_shifted: zero);
|
||||
}
|
||||
|
||||
shiftRightParsed(String a, int amount, String result) {
|
||||
|
@ -262,7 +219,7 @@ shiftRightParsed(String a, int amount, String result) {
|
|||
Expect.equals(result.toLowerCase(), str_shifted);
|
||||
}
|
||||
|
||||
testBigintRightShift() {
|
||||
testRightShift() {
|
||||
String zero = "0x0";
|
||||
String one = "0x1";
|
||||
String minus_one = "-0x1";
|
||||
|
@ -279,16 +236,19 @@ testBigintRightShift() {
|
|||
shiftRightParsed("-0x5", 2, "-0x2");
|
||||
shiftRightParsed("0x10000001", 28, one);
|
||||
shiftRightParsed("0x100000001", 32, one);
|
||||
shiftRightParsed("0x10000000000000001", 64, one);
|
||||
shiftRightParsed("0x1000000000000001", 60, one);
|
||||
shiftRightParsed("0x1000000000000001", 64, zero);
|
||||
shiftRightParsed("-0x10000001", 28, "-0x2");
|
||||
shiftRightParsed("-0x100000001", 32, "-0x2");
|
||||
shiftRightParsed("-0x10000000000000001", 64, "-0x2");
|
||||
shiftRightParsed("-0x1000000000000001", 64, minus_one);
|
||||
shiftRightParsed("0x30000000", 29, one);
|
||||
shiftRightParsed("0x300000000", 33, one);
|
||||
shiftRightParsed("0x30000000000000000", 65, one);
|
||||
shiftRightParsed("0x3000000000000000", 61, one);
|
||||
shiftRightParsed("0x3000000000000000", 65, zero);
|
||||
shiftRightParsed("-0x30000000", 29, "-0x2");
|
||||
shiftRightParsed("-0x300000000", 33, "-0x2");
|
||||
shiftRightParsed("-0x30000000000000000", 65, "-0x2");
|
||||
shiftRightParsed("-0x3000000000000000", 60, "-0x3");
|
||||
shiftRightParsed("-0x3000000000000000", 65, minus_one);
|
||||
}
|
||||
|
||||
bitAndParsed(String a, String b, String result) {
|
||||
|
@ -309,7 +269,7 @@ bitAndParsed(String a, String b, String result) {
|
|||
Expect.equals(result.toLowerCase(), str_anded2);
|
||||
}
|
||||
|
||||
testBigintBitAnd() {
|
||||
testBitAnd() {
|
||||
String zero = "0x0";
|
||||
String one = "0x1";
|
||||
String minus_one = "-0x1";
|
||||
|
@ -325,22 +285,10 @@ testBigintBitAnd() {
|
|||
bitAndParsed("0x50000000", minus_one, "0x50000000");
|
||||
bitAndParsed("0x500000000", one, zero);
|
||||
bitAndParsed("0x500000000", minus_one, "0x500000000");
|
||||
bitAndParsed("0x50000000000000000", one, zero);
|
||||
bitAndParsed("0x50000000000000000", minus_one, "0x50000000000000000");
|
||||
bitAndParsed("0x5000000000000000", one, zero);
|
||||
bitAndParsed("0x5000000000000000", minus_one, "0x5000000000000000");
|
||||
bitAndParsed("-0x50000000", "-0x50000000", "-0x50000000");
|
||||
bitAndParsed("-0x500000000", "-0x500000000", "-0x500000000");
|
||||
bitAndParsed(
|
||||
"-0x50000000000000000", "-0x50000000000000000", "-0x50000000000000000");
|
||||
bitAndParsed("0x1234567890ABCDEF012345678", "0x876543210FEDCBA0987654321",
|
||||
"0x224422000A9C9A0002244220");
|
||||
bitAndParsed("-0x1234567890ABCDEF012345678", "-0x876543210FEDCBA0987654321",
|
||||
"-0x977557799FEFCFEF997755778");
|
||||
bitAndParsed("0x1234567890ABCDEF012345678", "-0x876543210FEDCBA0987654321",
|
||||
"0x101014589002044F010101458");
|
||||
bitAndParsed(
|
||||
"0x1234567890ABCDEF012345678FFFFFFFFFFFFFFFFFFFFFFFFF",
|
||||
"-0x876543210FEDCBA0987654321",
|
||||
"0x1234567890ABCDEF012345678789ABCDEF012345F6789ABCDF");
|
||||
bitAndParsed("0x12345678", "0xFFFFFFF", "0x2345678");
|
||||
bitAndParsed("0x123456789", "0xFFFFFFFF", "0x23456789");
|
||||
bitAndParsed("-0x10000000", "0xFFFFFFF", "0x0");
|
||||
|
@ -349,54 +297,25 @@ testBigintBitAnd() {
|
|||
bitAndParsed("-0x100000001", "0xFFFFFFFF", "0xFFFFFFFF");
|
||||
bitAndParsed("-0x10000001", "0x3FFFFFFF", "0x2FFFFFFF");
|
||||
bitAndParsed("-0x100000001", "0x3FFFFFFFF", "0x2FFFFFFFF");
|
||||
bitAndParsed(
|
||||
"-0x10000000000000001", "0x3FFFFFFFFFFFFFFFF", "0x2FFFFFFFFFFFFFFFF");
|
||||
bitAndParsed("-0x100000000000000", "0xFFFFFFFFFFFFFF", "0x0");
|
||||
bitAndParsed("-0x10000000000000000", "0xFFFFFFFFFFFFFFFF", "0x0");
|
||||
bitAndParsed("-0x1000000000000000", "0xFFFFFFFFFFFFFFFF", // //# 02: continued
|
||||
"-0x1000000000000000"); // //# 02: continued
|
||||
bitAndParsed("-0x300000000000000", "0xFFFFFFFFFFFFFFF", "0xD00000000000000");
|
||||
bitAndParsed(
|
||||
"-0x30000000000000000", "0xFFFFFFFFFFFFFFFFF", "0xD0000000000000000");
|
||||
bitAndParsed("-0x3000000000000000", "0xFFFFFFFFFFFFFFFF", // //# 02: continued
|
||||
"-0x3000000000000000"); // //# 02: continued
|
||||
bitAndParsed("-0x10000000", "-0x10000000", "-0x10000000");
|
||||
bitAndParsed("-0x100000000", "-0x100000000", "-0x100000000");
|
||||
bitAndParsed(
|
||||
"-0x100000000000000", "-0x100000000000000", "-0x100000000000000");
|
||||
bitAndParsed(
|
||||
"-0x10000000000000000", "-0x10000000000000000", "-0x10000000000000000");
|
||||
"-0x1000000000000000", "-0x1000000000000000", "-0x1000000000000000");
|
||||
bitAndParsed("-0x3", "-0x2", "-0x4");
|
||||
bitAndParsed("-0x10000000", "-0x10000001", "-0x20000000");
|
||||
bitAndParsed("-0x100000000", "-0x100000001", "-0x200000000");
|
||||
bitAndParsed(
|
||||
"-0x100000000000000", "-0x100000000000001", "-0x200000000000000");
|
||||
bitAndParsed(
|
||||
"-0x10000000000000000", "-0x10000000000000001", "-0x20000000000000000");
|
||||
bitAndParsed(
|
||||
"0x123456789ABCDEF01234567890",
|
||||
"0x3FFFFFFF", // Max Smi for 32 bits.
|
||||
"0x34567890");
|
||||
bitAndParsed(
|
||||
"0x123456789ABCDEF01274567890",
|
||||
"0x3FFFFFFF", // Max Smi for 32 bits.
|
||||
"0x34567890");
|
||||
bitAndParsed(
|
||||
"0x123456789ABCDEF01234567890",
|
||||
"0x40000000", // Max Smi for 32 bits + 1.
|
||||
"0x0");
|
||||
bitAndParsed(
|
||||
"0x123456789ABCDEF01274567890",
|
||||
"0x40000000", // Max Smi for 32 bits + 1.
|
||||
"0x40000000");
|
||||
bitAndParsed(
|
||||
"0x123456789ABCDEF01234567890",
|
||||
"0x3FFFFFFFFFFFFFFF", // Max Smi for 64 bits.
|
||||
"0x3CDEF01234567890");
|
||||
bitAndParsed(
|
||||
"0x123456789ACCDEF01234567890",
|
||||
"0x4000000000000000", // Max Smi for 64 bits + 1.
|
||||
"0x4000000000000000");
|
||||
bitAndParsed(
|
||||
"0x123456789ABCDEF01234567890",
|
||||
"0x4000000000000000", // Max Smi for 64 bits + 1.
|
||||
"0x0");
|
||||
"-0x1000000000000000", "-0x1000000000000001", "-0x2000000000000000");
|
||||
}
|
||||
|
||||
bitOrParsed(String a, String b, String result) {
|
||||
|
@ -417,7 +336,7 @@ bitOrParsed(String a, String b, String result) {
|
|||
Expect.equals(result.toLowerCase(), str_ored2);
|
||||
}
|
||||
|
||||
testBigintBitOr() {
|
||||
testBitOr() {
|
||||
String zero = "0x0";
|
||||
String one = "0x1";
|
||||
String minus_one = "-0x1";
|
||||
|
@ -435,20 +354,10 @@ testBigintBitOr() {
|
|||
bitOrParsed("0x50000000", minus_one, minus_one);
|
||||
bitOrParsed("0x500000000", one, "0x500000001");
|
||||
bitOrParsed("0x500000000", minus_one, minus_one);
|
||||
bitOrParsed("0x50000000000000000", one, "0x50000000000000001");
|
||||
bitOrParsed("0x50000000000000000", minus_one, minus_one);
|
||||
bitOrParsed("0x5000000000000000", one, "0x5000000000000001");
|
||||
bitOrParsed("0x5000000000000000", minus_one, minus_one);
|
||||
bitOrParsed("-0x50000000", "-0x50000000", "-0x50000000");
|
||||
bitOrParsed("-0x500000000", "-0x500000000", "-0x500000000");
|
||||
bitOrParsed(
|
||||
"-0x50000000000000000", "-0x50000000000000000", "-0x50000000000000000");
|
||||
bitOrParsed("0x1234567890ABCDEF012345678", "0x876543210FEDCBA0987654321",
|
||||
"0x977557799FEFCFEF997755779");
|
||||
bitOrParsed("-0x1234567890ABCDEF012345678", "-0x876543210FEDCBA0987654321",
|
||||
"-0x224422000A9C9A0002244221");
|
||||
bitOrParsed("0x1234567890ABCDEF012345678", "-0x876543210FEDCBA0987654321",
|
||||
"-0x854101010F440200985410101");
|
||||
bitOrParsed("0x1234567890ABCDEF012345678FFFFFFFFFFFFFFFFFFFFFFFFF",
|
||||
"-0x876543210FEDCBA0987654321", "-0x1");
|
||||
bitOrParsed("0x12345678", "0xFFFFFFF", "0x1FFFFFFF");
|
||||
bitOrParsed("0x123456789", "0xFFFFFFFF", "0x1FFFFFFFF");
|
||||
bitOrParsed("-0x10000000", "0xFFFFFFF", "-0x1");
|
||||
|
@ -457,21 +366,21 @@ testBigintBitOr() {
|
|||
bitOrParsed("-0x100000001", "0xFFFFFFFF", "-0x100000001");
|
||||
bitOrParsed("-0x10000001", "0x3FFFFFFF", "-0x1");
|
||||
bitOrParsed("-0x100000001", "0x3FFFFFFFF", "-0x1");
|
||||
bitOrParsed("-0x10000000000000001", "0x3FFFFFFFFFFFFFFFF", "-0x1");
|
||||
bitOrParsed("-0x1000000000000001", "0x3FFFFFFFFFFFFFFF", "-0x1");
|
||||
bitOrParsed("-0x100000000000000", "0xFFFFFFFFFFFFFF", "-0x1");
|
||||
bitOrParsed("-0x10000000000000000", "0xFFFFFFFFFFFFFFFF", "-0x1");
|
||||
bitOrParsed("-0x1000000000000000", "0xFFFFFFFFFFFFFFF", "-0x1");
|
||||
bitOrParsed("-0x300000000000000", "0xFFFFFFFFFFFFFFF", "-0x1");
|
||||
bitOrParsed("-0x30000000000000000", "0xFFFFFFFFFFFFFFFFF", "-0x1");
|
||||
bitOrParsed("-0x3000000000000000", "0xFFFFFFFFFFFFFFFF", "-0x1"); // //# 02: continued
|
||||
bitOrParsed("-0x10000000", "-0x10000000", "-0x10000000");
|
||||
bitOrParsed("-0x100000000", "-0x100000000", "-0x100000000");
|
||||
bitOrParsed("-0x100000000000000", "-0x100000000000000", "-0x100000000000000");
|
||||
bitOrParsed(
|
||||
"-0x10000000000000000", "-0x10000000000000000", "-0x10000000000000000");
|
||||
"-0x1000000000000000", "-0x1000000000000000", "-0x1000000000000000");
|
||||
bitOrParsed("-0x10000000", "-0x10000001", "-0x1");
|
||||
bitOrParsed("-0x100000000", "-0x100000001", "-0x1");
|
||||
bitOrParsed("-0x100000000000000", "-0x100000000000001", "-0x1");
|
||||
bitOrParsed("-0x10000000000000000", "-0x10000000000000001", "-0x1");
|
||||
bitOrParsed("-0x10000000000000000", "-0x1", "-0x1");
|
||||
bitOrParsed("-0x1000000000000000", "-0x1000000000000001", "-0x1");
|
||||
bitOrParsed("-0x1000000000000000", "-0x1", "-0x1");
|
||||
}
|
||||
|
||||
bitXorParsed(String a, String b, String result) {
|
||||
|
@ -498,7 +407,7 @@ bitXorParsed(String a, String b, String result) {
|
|||
Expect.equals(b.toLowerCase(), str_xored3);
|
||||
}
|
||||
|
||||
testBigintBitXor() {
|
||||
testBitXor() {
|
||||
String zero = "0x0";
|
||||
String one = "0x1";
|
||||
String minus_one = "-0x1";
|
||||
|
@ -516,21 +425,10 @@ testBigintBitXor() {
|
|||
bitXorParsed("0x50000000", minus_one, "-0x50000001");
|
||||
bitXorParsed("0x500000000", one, "0x500000001");
|
||||
bitXorParsed("0x500000000", minus_one, "-0x500000001");
|
||||
bitXorParsed("0x50000000000000000", one, "0x50000000000000001");
|
||||
bitXorParsed("0x50000000000000000", minus_one, "-0x50000000000000001");
|
||||
bitXorParsed("0x5000000000000000", one, "0x5000000000000001");
|
||||
bitXorParsed("0x5000000000000000", minus_one, "-0x5000000000000001");
|
||||
bitXorParsed("-0x50000000", "-0x50000000", zero);
|
||||
bitXorParsed("-0x500000000", "-0x500000000", zero);
|
||||
bitXorParsed("-0x50000000000000000", "-0x50000000000000000", zero);
|
||||
bitXorParsed("0x1234567890ABCDEF012345678", "0x876543210FEDCBA0987654321",
|
||||
"0x955115599F46064F995511559");
|
||||
bitXorParsed("-0x1234567890ABCDEF012345678", "-0x876543210FEDCBA0987654321",
|
||||
"0x955115599F46064F995511557");
|
||||
bitXorParsed("0x1234567890ABCDEF012345678", "-0x876543210FEDCBA0987654321",
|
||||
"-0x955115599F46064F995511559");
|
||||
bitXorParsed(
|
||||
"0x1234567890ABCDEF012345678FFFFFFFFFFFFFFFFFFFFFFFFF",
|
||||
"-0x876543210FEDCBA0987654321",
|
||||
"-0x1234567890ABCDEF012345678789ABCDEF012345F6789ABCE0");
|
||||
bitXorParsed("0x12345678", "0xFFFFFFF", "0x1DCBA987");
|
||||
bitXorParsed("0x123456789", "0xFFFFFFFF", "0x1DCBA9876");
|
||||
bitXorParsed("-0x10000000", "0xFFFFFFF", "-0x1");
|
||||
|
@ -540,21 +438,20 @@ testBigintBitXor() {
|
|||
bitXorParsed("-0x10000001", "0x3FFFFFFF", "-0x30000000");
|
||||
bitXorParsed("-0x100000001", "0x3FFFFFFFF", "-0x300000000");
|
||||
bitXorParsed(
|
||||
"-0x10000000000000001", "0x3FFFFFFFFFFFFFFFF", "-0x30000000000000000");
|
||||
"-0x1000000000000001", "0x3FFFFFFFFFFFFFFF", "-0x3000000000000000");
|
||||
bitXorParsed("-0x100000000000000", "0xFFFFFFFFFFFFFF", "-0x1");
|
||||
bitXorParsed("-0x10000000000000000", "0xFFFFFFFFFFFFFFFF", "-0x1");
|
||||
bitXorParsed("-0x1000000000000000", "0xFFFFFFFFFFFFFFF", "-0x1");
|
||||
bitXorParsed("-0x300000000000000", "0xFFFFFFFFFFFFFFF", "-0xD00000000000001");
|
||||
bitXorParsed(
|
||||
"-0x30000000000000000", "0xFFFFFFFFFFFFFFFFF", "-0xD0000000000000001");
|
||||
bitXorParsed("-0x3000000000000000", "-0x1", "0x2FFFFFFFFFFFFFFF");
|
||||
bitXorParsed("-0x10000000", "-0x10000000", zero);
|
||||
bitXorParsed("-0x100000000", "-0x100000000", zero);
|
||||
bitXorParsed("-0x100000000000000", "-0x100000000000000", zero);
|
||||
bitXorParsed("-0x10000000000000000", "-0x10000000000000000", zero);
|
||||
bitXorParsed("-0x1000000000000000", "-0x1000000000000000", zero);
|
||||
bitXorParsed("-0x10000000", "-0x10000001", "0x1FFFFFFF");
|
||||
bitXorParsed("-0x100000000", "-0x100000001", "0x1FFFFFFFF");
|
||||
bitXorParsed("-0x100000000000000", "-0x100000000000001", "0x1FFFFFFFFFFFFFF");
|
||||
bitXorParsed(
|
||||
"-0x10000000000000000", "-0x10000000000000001", "0x1FFFFFFFFFFFFFFFF");
|
||||
"-0x1000000000000000", "-0x1000000000000001", "0x1FFFFFFFFFFFFFFF");
|
||||
}
|
||||
|
||||
bitNotParsed(String a, String result) {
|
||||
|
@ -574,7 +471,7 @@ bitNotParsed(String a, String result) {
|
|||
Expect.equals(a.toLowerCase(), str_back);
|
||||
}
|
||||
|
||||
testBigintBitNot() {
|
||||
testBitNot() {
|
||||
String zero = "0x0";
|
||||
String one = "0x1";
|
||||
String minus_one = "-0x1";
|
||||
|
@ -586,16 +483,17 @@ testBigintBitNot() {
|
|||
bitNotParsed("0xFFFFFFF", "-0x10000000");
|
||||
bitNotParsed("0xFFFFFFFF", "-0x100000000");
|
||||
bitNotParsed("0xFFFFFFFFFFFFFF", "-0x100000000000000");
|
||||
bitNotParsed("0xFFFFFFFFFFFFFFFF", "-0x10000000000000000");
|
||||
bitNotParsed("0x1234567890ABCDEF012345678", "-0x1234567890ABCDEF012345679");
|
||||
bitNotParsed( // //# 01: continued
|
||||
"0x7FFFFFFFFFFFFFFF", "-0x8000000000000000"); // //# 01: continued
|
||||
bitNotParsed("-0x1", "0x0");
|
||||
}
|
||||
|
||||
main() {
|
||||
testBigintAddSub();
|
||||
testBigintLeftShift();
|
||||
testBigintRightShift();
|
||||
testBigintBitAnd();
|
||||
testBigintBitOr();
|
||||
testBigintBitXor();
|
||||
testBigintBitNot();
|
||||
testAddSub();
|
||||
testLeftShift();
|
||||
testRightShift();
|
||||
testBitAnd();
|
||||
testBitOr();
|
||||
testBitXor();
|
||||
testBitNot();
|
||||
}
|
66
tests/corelib_2/integer_parsed_div_rem_vm_test.dart
Normal file
66
tests/corelib_2/integer_parsed_div_rem_vm_test.dart
Normal file
|
@ -0,0 +1,66 @@
|
|||
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// Testing integers with and without intrinsics.
|
||||
// VMOptions=
|
||||
// VMOptions=--no_intrinsify
|
||||
|
||||
library integer_arithmetic_test;
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
divRemParsed(String a, String b, String quotient, String remainder) {
|
||||
int int_a = int.parse(a);
|
||||
int int_b = int.parse(b);
|
||||
int int_quotient = int.parse(quotient);
|
||||
int int_remainder = int.parse(remainder);
|
||||
int computed_quotient = int_a ~/ int_b;
|
||||
Expect.equals(int_quotient, computed_quotient);
|
||||
String str_quotient = computed_quotient >= 0
|
||||
? "0x${computed_quotient.toRadixString(16)}"
|
||||
: "-0x${computed_quotient.toRadixString(16).substring(1)}";
|
||||
Expect.equals(quotient.toLowerCase(), str_quotient);
|
||||
int computed_remainder = int_a.remainder(int_b);
|
||||
Expect.equals(int_remainder, computed_remainder);
|
||||
String str_remainder = computed_remainder >= 0
|
||||
? "0x${computed_remainder.toRadixString(16)}"
|
||||
: "-0x${computed_remainder.toRadixString(16).substring(1)}";
|
||||
Expect.equals(remainder.toLowerCase(), str_remainder);
|
||||
}
|
||||
|
||||
testDivideRemainder() {
|
||||
String zero = "0x0";
|
||||
String one = "0x1";
|
||||
String minus_one = "-0x1";
|
||||
|
||||
divRemParsed(one, one, one, zero);
|
||||
divRemParsed(zero, one, zero, zero);
|
||||
divRemParsed(minus_one, one, minus_one, zero);
|
||||
divRemParsed(one, "0x2", zero, one);
|
||||
divRemParsed(minus_one, "0x7", zero, minus_one);
|
||||
divRemParsed("0xB", "0x7", one, "0x4");
|
||||
divRemParsed("0x12345678", "0x7", "0x299C335", "0x5");
|
||||
divRemParsed("-0x12345678", "0x7", "-0x299C335", "-0x5");
|
||||
divRemParsed("0x12345678", "-0x7", "-0x299C335", "0x5");
|
||||
divRemParsed("-0x12345678", "-0x7", "0x299C335", "-0x5");
|
||||
divRemParsed("0x7", "0x12345678", zero, "0x7");
|
||||
divRemParsed("-0x7", "0x12345678", zero, "-0x7");
|
||||
divRemParsed("-0x7", "-0x12345678", zero, "-0x7");
|
||||
divRemParsed("0x7", "-0x12345678", zero, "0x7");
|
||||
divRemParsed("0x12345678", "0x7", "0x299C335", "0x5");
|
||||
divRemParsed("-0x12345678", "0x7", "-0x299C335", "-0x5");
|
||||
divRemParsed("0x12345678", "-0x7", "-0x299C335", "0x5");
|
||||
divRemParsed("-0x12345678", "-0x7", "0x299C335", "-0x5");
|
||||
divRemParsed("9223372036854775807", "0x7", "0x1249249249249249", "0x0");
|
||||
divRemParsed("9223372036854775807", "-0x7", "-0x1249249249249249", "0x0");
|
||||
divRemParsed("-9223372036854775807", "0x7", "-0x1249249249249249", "0x0");
|
||||
divRemParsed("-9223372036854775807", "-0x7", "0x1249249249249249", "0x0");
|
||||
divRemParsed("-9223372036854775808", "-1", "-0x8000000000000000", "0x0"); //# 01: ok
|
||||
divRemParsed("-9223372036854775808", "0x7", "-0x1249249249249249", "-0x1");
|
||||
divRemParsed("-9223372036854775808", "-0x7", "0x1249249249249249", "-0x1");
|
||||
}
|
||||
|
||||
main() {
|
||||
testDivideRemainder();
|
||||
}
|
81
tests/corelib_2/integer_parsed_mul_div_vm_test.dart
Normal file
81
tests/corelib_2/integer_parsed_mul_div_vm_test.dart
Normal file
|
@ -0,0 +1,81 @@
|
|||
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// Testing integers with and without intrinsics.
|
||||
// VMOptions=
|
||||
// VMOptions=--no_intrinsify
|
||||
|
||||
library integer_arithmetic_test;
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
mulDivParsed(String a, String b, String product,
|
||||
{String expected_quotient1, String expected_quotient2}) {
|
||||
int int_a = int.parse(a);
|
||||
int int_b = int.parse(b);
|
||||
int int_product = int.parse(product);
|
||||
int computed_product = int_a * int_b;
|
||||
Expect.equals(int_product, computed_product);
|
||||
String str_product = computed_product >= 0
|
||||
? "0x${computed_product.toRadixString(16)}"
|
||||
: "-0x${(-computed_product).toRadixString(16)}";
|
||||
Expect.equals(product.toLowerCase(), str_product);
|
||||
int computed_product2 = int_b * int_a;
|
||||
Expect.equals(int_product, computed_product2);
|
||||
String str_product2 = computed_product2 >= 0
|
||||
? "0x${computed_product2.toRadixString(16)}"
|
||||
: "-0x${(-computed_product2).toRadixString(16)}";
|
||||
Expect.equals(product.toLowerCase(), str_product2);
|
||||
|
||||
if (int_a != 0) {
|
||||
expected_quotient1 ??= b;
|
||||
int int_expected_quotient1 = int.parse(expected_quotient1);
|
||||
int computed_quotient1 = int_product ~/ int_a;
|
||||
Expect.equals(int_expected_quotient1, computed_quotient1);
|
||||
String str_quotient1 = computed_quotient1 >= 0
|
||||
? "0x${computed_quotient1.toRadixString(16)}"
|
||||
: "-0x${(-computed_quotient1).toRadixString(16)}";
|
||||
Expect.equals(expected_quotient1.toLowerCase(), str_quotient1);
|
||||
}
|
||||
|
||||
if (int_b != 0) {
|
||||
expected_quotient2 ??= a;
|
||||
int int_expected_quotient2 = int.parse(expected_quotient2);
|
||||
int computed_quotient2 = int_product ~/ int_b;
|
||||
Expect.equals(int_expected_quotient2, computed_quotient2);
|
||||
String str_quotient2 = computed_quotient2 >= 0
|
||||
? "0x${computed_quotient2.toRadixString(16)}"
|
||||
: "-0x${(-computed_quotient2).toRadixString(16)}";
|
||||
Expect.equals(expected_quotient2.toLowerCase(), str_quotient2);
|
||||
}
|
||||
}
|
||||
|
||||
testMultiplyDivide() {
|
||||
String zero = "0x0";
|
||||
String one = "0x1";
|
||||
String minus_one = "-0x1";
|
||||
|
||||
mulDivParsed(zero, zero, zero);
|
||||
mulDivParsed(one, one, one);
|
||||
mulDivParsed(one, zero, zero);
|
||||
mulDivParsed(zero, one, zero);
|
||||
mulDivParsed(one, minus_one, minus_one);
|
||||
mulDivParsed(minus_one, minus_one, one);
|
||||
mulDivParsed("0x42", one, "0x42");
|
||||
mulDivParsed("0x42", "0x2", "0x84");
|
||||
mulDivParsed("0xFFFF", "0x2", "0x1FFFE");
|
||||
mulDivParsed("0x3", "0x5", "0xF");
|
||||
mulDivParsed("0xFFFFF", "0x5", "0x4FFFFB");
|
||||
mulDivParsed("0xFFFFFFF", "0x5", "0x4FFFFFFB");
|
||||
mulDivParsed("0xFFFFFFFF", "0x5", "0x4FFFFFFFB");
|
||||
mulDivParsed("0x7FFFFFFFFFFFFFFF", "0x5", "0x7FFFFFFFFFFFFFFB",
|
||||
expected_quotient1: zero, expected_quotient2: "0x1999999999999998");
|
||||
mulDivParsed("0x7FFFFFFFFFFFFFFF", "0x3039", "0x7FFFFFFFFFFFCFC7",
|
||||
expected_quotient1: zero, expected_quotient2: "0x2A783BE38C73D");
|
||||
mulDivParsed("0x10000001", "0x5", "0x50000005");
|
||||
}
|
||||
|
||||
main() {
|
||||
testMultiplyDivide();
|
||||
}
|
|
@ -73,16 +73,8 @@ main() {
|
|||
0x1000000000000100,
|
||||
0x2000000000000000,
|
||||
0x2000000000000200,
|
||||
0x8000000000000000,
|
||||
0x8000000000000800,
|
||||
0x10000000000000000,
|
||||
0x10000000000001000,
|
||||
0x100000000000010000,
|
||||
0x1000000000000100000,
|
||||
0x10000000000001000000,
|
||||
0x100000000000010000000,
|
||||
0x1000000000000100000000,
|
||||
0x10000000000001000000000,
|
||||
0x8000000000000000, //# 01: ok
|
||||
0x8000000000000800, //# 02: ok
|
||||
];
|
||||
for (var bignum in bignums) {
|
||||
for (int radix = 2; radix <= 36; radix++) {
|
||||
|
|
|
@ -11,7 +11,7 @@ main() {
|
|||
Expect.equals(expect, value.toString());
|
||||
Expect.equals(expect, "$value");
|
||||
Expect.equals(expect, (new StringBuffer()..write(value)).toString());
|
||||
if (value == 0) return;
|
||||
if (value <= 0) return;
|
||||
expect = "-$expect";
|
||||
value = -value;
|
||||
Expect.equals(expect, value.toString());
|
||||
|
@ -58,20 +58,15 @@ main() {
|
|||
test(0x4000000000000001, "4611686018427387905"); // //# 01: continued
|
||||
// ~2^63.
|
||||
test(0x7fffffffffffffff, "9223372036854775807"); // //# 01: continued
|
||||
test(0x8000000000000000, "9223372036854775808"); // //# 01: continued
|
||||
test(0x8000000000000001, "9223372036854775809"); // //# 01: continued
|
||||
test(0x8000000000000000, "-9223372036854775808"); // //# 01: continued
|
||||
test(0x8000000000000001, "-9223372036854775807"); // //# 01: continued
|
||||
// ~2^64.
|
||||
test(0xffffffffffffffff, "18446744073709551615"); // //# 01: continued
|
||||
test(0x10000000000000000, "18446744073709551616"); // //# 01: continued
|
||||
test(0x10000000000000001, "18446744073709551617"); // //# 01: continued
|
||||
// Big bignum.
|
||||
test(123456789012345678901234567890, // //# 01: continued
|
||||
"123456789012345678901234567890"); // //# 01: continued
|
||||
test(0xffffffffffffffff, "-1"); // //# 01: continued
|
||||
|
||||
// Decimal special cases.
|
||||
|
||||
int number = 10;
|
||||
// Numbers 99..99, 100...00, and 100..01 up to 23 digits.
|
||||
// Numbers 99..99, 100...00, and 100..01 up to 18 digits.
|
||||
for (int i = 1; i < 15; i++) {
|
||||
// Works in dart2js up to 10^15.
|
||||
test(number - 1, "9" * i);
|
||||
|
@ -80,7 +75,7 @@ main() {
|
|||
number *= 10;
|
||||
}
|
||||
// Fails to represent exactly in dart2js.
|
||||
for (int i = 15; i < 22; i++) { // //# 01: continued
|
||||
for (int i = 15; i < 19; i++) { // //# 01: continued
|
||||
test(number - 1, "9" * i); // //# 01: continued
|
||||
test(number, "1" + "0" * i); // //# 01: continued
|
||||
test(number + 1, "1" + "0" * (i - 1) + "1"); // //# 01: continued
|
||||
|
|
|
@ -135,9 +135,7 @@ void main() {
|
|||
testIntAround(0x10000000000000); // 2^52
|
||||
testIntAround(0x20000000000000); // 2^53
|
||||
testIntAround(0x40000000000000); // 2^54
|
||||
testIntAround(0x8000000000000000); // 2^63
|
||||
testIntAround(0x10000000000000000); // 2^64
|
||||
testIntAround(0x100000000000000000000); // 2^80
|
||||
testIntAround(0x7ffffffffffffffe); // 2^63
|
||||
|
||||
testDouble(0.0);
|
||||
testDouble(5e-324);
|
||||
|
|
|
@ -50,12 +50,6 @@ var numbers = [
|
|||
0x8000000000000000,
|
||||
0x8000000000000001,
|
||||
0xffffffffffffffff, // ~64 bits
|
||||
0x10000000000000000,
|
||||
0x10000000000000001,
|
||||
// Integers around the max-double range (2^1024, ~1025 bits).
|
||||
0xfffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
|
||||
0xfffffffffffffc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
|
||||
0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
|
||||
// Doubles.
|
||||
0.0,
|
||||
5e-324, // min positive
|
||||
|
|
|
@ -12,6 +12,6 @@ main() {
|
|||
for (int i = 0; i < 10; i++) {
|
||||
var x = 0x50000000;
|
||||
var shift = 34;
|
||||
Expect.equals(sll(x, shift), 0x14000000000000000);
|
||||
Expect.equals(sll(x, shift), 0x4000000000000000);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -403,8 +403,10 @@ class ArithmeticTest {
|
|||
|
||||
Expect.equals(12, int.parse("12"));
|
||||
Expect.equals(-12, int.parse("-12"));
|
||||
Expect.equals(12345678901234567890, int.parse("12345678901234567890"));
|
||||
Expect.equals(-12345678901234567890, int.parse("-12345678901234567890"));
|
||||
Expect.equals(1234567890123456789, int.parse("1234567890123456789"));
|
||||
Expect.equals(-1234567890123456789, int.parse("-1234567890123456789"));
|
||||
Expect.equals(9223372036854775807, int.parse("9223372036854775807"));
|
||||
Expect.equals(-9223372036854775808, int.parse("-9223372036854775808"));
|
||||
// Type checks.
|
||||
{
|
||||
int i = int.parse("12");
|
||||
|
@ -413,10 +415,16 @@ class ArithmeticTest {
|
|||
int i = int.parse("-12");
|
||||
}
|
||||
{
|
||||
int i = int.parse("12345678901234567890");
|
||||
int i = int.parse("1234567890123456789");
|
||||
}
|
||||
{
|
||||
int i = int.parse("-12345678901234567890");
|
||||
int i = int.parse("-1234567890123456789");
|
||||
}
|
||||
{
|
||||
int i = int.parse("9223372036854775807");
|
||||
}
|
||||
{
|
||||
int i = int.parse("-9223372036854775808");
|
||||
}
|
||||
|
||||
Expect.equals(1.2, double.parse("1.2"));
|
||||
|
|
|
@ -22,8 +22,8 @@ void test() {
|
|||
Expect.equals(400, (100 << 2));
|
||||
Expect.equals(-25, (-100 >> 2));
|
||||
Expect.equals(-101, ~100);
|
||||
Expect.equals(0x10000000000000000, 1 << 64);
|
||||
Expect.equals(-0x10000000000000000, -1 << 64);
|
||||
Expect.equals(0, 1 << 64);
|
||||
Expect.equals(0, -1 << 64);
|
||||
Expect.equals(0x40000000, 0x04000000 << 4);
|
||||
Expect.equals(0x4000000000000000, 0x0400000000000000 << 4);
|
||||
Expect.equals(0, ~ -1);
|
||||
|
@ -32,27 +32,24 @@ void test() {
|
|||
Expect.equals(0, 1 >> 160);
|
||||
Expect.equals(-1, -1 >> 160);
|
||||
|
||||
Expect.equals(
|
||||
0x100000000000000001, 0x100000000000000001 & 0x100000100F00000001);
|
||||
Expect.equals(0x1, 0x1 & 0x100000100F00000001);
|
||||
Expect.equals(0x1, 0x100000100F00000001 & 0x1);
|
||||
Expect.equals(0x1000000000000001, 0x1000000000000001 & 0x1000100F00000001);
|
||||
Expect.equals(0x1, 0x1 & 0x1000100F00000001);
|
||||
Expect.equals(0x1, 0x1000100F00000001 & 0x1);
|
||||
|
||||
Expect.equals(
|
||||
0x100000100F00000001, 0x100000000000000001 | 0x100000100F00000001);
|
||||
Expect.equals(0x100000100F00000011, 0x11 | 0x100000100F00000001);
|
||||
Expect.equals(0x100000100F00000011, 0x100000100F00000001 | 0x11);
|
||||
Expect.equals(0x1000100F00000001, 0x1000000000000001 | 0x1000100F00000001);
|
||||
Expect.equals(0x1000100F00000011, 0x11 | 0x1000100F00000001);
|
||||
Expect.equals(0x1000100F00000011, 0x1000100F00000001 | 0x11);
|
||||
|
||||
Expect.equals(
|
||||
0x0F000F00000000000000, 0x0F00F00000000000001 ^ 0xFF00000000000000001);
|
||||
Expect.equals(0x31, 0xF00F00000000000001 ^ 0xF00F00000000000030);
|
||||
Expect.equals(0xF00F00000000000031, 0xF00F00000000000001 ^ 0x30);
|
||||
Expect.equals(0xF00F00000000000031, 0x30 ^ 0xF00F00000000000001);
|
||||
Expect.equals(0x0F00000000000000, 0x0F00000000000001 ^ 0x0000000000000001);
|
||||
Expect.equals(0x31, 0x0F00000000000001 ^ 0x0F00000000000030);
|
||||
Expect.equals(0x0F00000000000031, 0x0F00000000000001 ^ 0x30);
|
||||
Expect.equals(0x0F00000000000031, 0x30 ^ 0x0F00000000000001);
|
||||
|
||||
Expect.equals(0xF0000000000000000F, 0xF0000000000000000F7 >> 4);
|
||||
Expect.equals(0x000000000000000F, 0x000000000000000F7 >> 4);
|
||||
Expect.equals(15, 0xF00000000 >> 32);
|
||||
Expect.equals(1030792151040, 16492674416655 >> 4);
|
||||
|
||||
Expect.equals(0xF0000000000000000F0, 0xF0000000000000000F << 4);
|
||||
Expect.equals(0x00000000000000F0, 0xF00000000000000F << 4);
|
||||
Expect.equals(0xF00000000, 15 << 32);
|
||||
|
||||
testNegativeValueShifts();
|
||||
|
@ -83,9 +80,9 @@ void testCornerCasesRightShifts() {
|
|||
Expect.equals(0x3, v32 >> 0x1E);
|
||||
Expect.equals(0x1, v32 >> 0x1F);
|
||||
Expect.equals(0x0, v32 >> 0x20);
|
||||
Expect.equals(0x3, v64 >> 0x3E);
|
||||
Expect.equals(0x1, v64 >> 0x3F);
|
||||
Expect.equals(0x0, v64 >> 0x40);
|
||||
Expect.equals(-1, v64 >> 0x3E);
|
||||
Expect.equals(-1, v64 >> 0x3F);
|
||||
Expect.equals(-1, v64 >> 0x40);
|
||||
}
|
||||
|
||||
void testRightShift64Bit() {
|
||||
|
@ -98,19 +95,17 @@ void testLeftShift64Bit() {
|
|||
Expect.equals(0xffffffff, t << 0);
|
||||
Expect.equals(0x1fffffffe, t << 1);
|
||||
Expect.equals(0x7fffffff80000000, t << 31);
|
||||
Expect.equals(0x10000000000000000, 2*(t+1) << 31); //# 01: compile-time error
|
||||
Expect.equals(0x20000000000000000, 4*(t+1) << 31); //# 02: compile-time error
|
||||
Expect.equals(0x8000000000000000, (t + 1) << 31);
|
||||
}
|
||||
|
||||
void testLeftShift64BitWithOverflow1() {
|
||||
var t = 0xffffffff;
|
||||
Expect.equals(0x10000000000000000, 2*(t+1) << 31); //# 03: compile-time error
|
||||
Expect.equals(0, 2 * (t + 1) << 31); //# 03: ok
|
||||
}
|
||||
|
||||
void testLeftShift64BitWithOverflow2() {
|
||||
var t = 0xffffffff;
|
||||
Expect.equals(0x20000000000000000, 4*(t+1) << 31); //# 04: compile-time error
|
||||
Expect.equals(0, 4 * (t + 1) << 31); //# 04: ok
|
||||
}
|
||||
|
||||
void testLeftShift64BitWithOverflow3() {
|
||||
|
@ -149,7 +144,19 @@ void testNegativeValueShifts() {
|
|||
for (int value = 0; value > -100; value--) {
|
||||
for (int i = 0; i < 300; i++) {
|
||||
int b = (value << i) >> i;
|
||||
Expect.equals(value, b);
|
||||
if (i < (64 - value.bitLength)) {
|
||||
// No bits lost.
|
||||
Expect.equals(value, b);
|
||||
} else if (i >= 64) {
|
||||
// All bits are shifted out.
|
||||
Expect.equals(0, b);
|
||||
} else {
|
||||
// Some bits are lost.
|
||||
int masked_value = value & ((1 << (64 - i)) - 1);
|
||||
int signbit = masked_value & (1 << (63 - i));
|
||||
int signmask = (signbit != 0) ? (-1 << (64 - i)) : 0;
|
||||
Expect.equals(signmask | masked_value, b);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -158,7 +165,17 @@ void testPositiveValueShifts() {
|
|||
for (int value = 0; value < 100; value++) {
|
||||
for (int i = 0; i < 300; i++) {
|
||||
int b = (value << i) >> i;
|
||||
Expect.equals(value, b);
|
||||
if (i < (64 - value.bitLength)) {
|
||||
Expect.equals(value, b);
|
||||
} else if (i >= 64) {
|
||||
Expect.equals(0, b);
|
||||
} else {
|
||||
// Some bits are lost.
|
||||
int masked_value = value & ((1 << (64 - i)) - 1);
|
||||
int signbit = masked_value & (1 << (63 - i));
|
||||
int signmask = (signbit != 0) ? (-1 << (64 - i)) : 0;
|
||||
Expect.equals(signmask | masked_value, b);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -176,7 +193,12 @@ void testNoMaskingOfShiftCount() {
|
|||
for (int shift = 1; shift <= 256; shift++) {
|
||||
Expect.equals(0, shiftRight(1, shift));
|
||||
Expect.equals(-1, shiftRight(-1, shift));
|
||||
Expect.equals(true, shiftLeft(1, shift) > shiftLeft(1, shift - 1));
|
||||
if (shift < 63) {
|
||||
Expect.equals(true, shiftLeft(1, shift) > shiftLeft(1, shift - 1));
|
||||
} else if (shift > 64) {
|
||||
Expect.equals(
|
||||
true, (shiftLeft(1, shift) == 0) && (shiftLeft(1, shift - 1) == 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ call_native(x) {
|
|||
// Wrap in try to avoid inlining.
|
||||
// Use a large int so the intrinsifier does not fire.
|
||||
try {
|
||||
return x + 12342353257893275483274832;
|
||||
return x + 9223372036854775807;
|
||||
} finally {}
|
||||
}
|
||||
|
||||
|
|
|
@ -70,9 +70,11 @@ double binOpDouble(double i, double x) {
|
|||
testOSR() {
|
||||
// Foul up IC data in integer's unary minus.
|
||||
var y = -0x80000000;
|
||||
Expect.equals(1475739525896764129300, testLoop(10, 0x80000000000000000));
|
||||
Expect.equals(
|
||||
(0x7fffffffffffffff + 2) * 10, testLoop(10, 0x7fffffffffffffff));
|
||||
// Second time no deoptimization can occur, since runtime feedback has been collected.
|
||||
Expect.equals(1475739525896764129300, testLoop(10, 0x80000000000000000));
|
||||
Expect.equals(
|
||||
(0x7fffffffffffffff + 2) * 10, testLoop(10, 0x7fffffffffffffff));
|
||||
}
|
||||
|
||||
testLoop(N, x) {
|
||||
|
@ -81,7 +83,7 @@ testLoop(N, x) {
|
|||
}
|
||||
int sum = 0;
|
||||
for (int i = 0; i < N; ++i) {
|
||||
// Guess 'x' is Smi, but is actually Bigint: deoptimize.
|
||||
// Guess 'x' is Smi, but is actually Mint: deoptimize.
|
||||
sum += x + 2;
|
||||
}
|
||||
return sum;
|
||||
|
|
|
@ -7,10 +7,10 @@ import "package:expect/expect.dart";
|
|||
var myIdentical = identical;
|
||||
|
||||
main() {
|
||||
// Bigint (2^76).
|
||||
// Mint (2^63).
|
||||
// TODO(rnystrom): Figure out how to change this to work on the web.
|
||||
Expect.isTrue(myIdentical(75557863725914323419136, 75557863725914323419136));
|
||||
Expect.isFalse(myIdentical(75557863725914323419136, 75557863725914323419137));
|
||||
Expect.isTrue(myIdentical(0x8000000000000000, 0x8000000000000000));
|
||||
Expect.isFalse(myIdentical(0x8000000000000000, 0x8000000000000001));
|
||||
|
||||
// Different types.
|
||||
Expect.isFalse(myIdentical(42, 42.0));
|
||||
|
|
|
@ -9,7 +9,7 @@ import "package:expect/expect.dart";
|
|||
|
||||
main() {
|
||||
// dart2js knows that this list is int or null.
|
||||
var b = [null, 10000000000000000000000000000000000000];
|
||||
var b = [null, 9223372036854775806];
|
||||
|
||||
// Use b[1] twice to ensure dart2js realizes it's the same value
|
||||
// after type propagation.
|
||||
|
|
|
@ -43,10 +43,8 @@ bad_named_parameters_test/05: MissingCompileTimeError
|
|||
bad_override_test/01: MissingCompileTimeError
|
||||
bad_override_test/02: MissingCompileTimeError
|
||||
bad_override_test/06: MissingCompileTimeError
|
||||
bit_operations_test/01: MissingCompileTimeError
|
||||
bit_operations_test/02: MissingCompileTimeError
|
||||
bit_operations_test/03: MissingCompileTimeError
|
||||
bit_operations_test/04: MissingCompileTimeError
|
||||
bit_operations_test/03: StaticWarning
|
||||
bit_operations_test/04: StaticWarning
|
||||
call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
|
||||
call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
|
||||
call_constructor_on_unresolvable_class_test/03: MissingCompileTimeError
|
||||
|
@ -513,10 +511,8 @@ bad_named_parameters_test/05: MissingCompileTimeError
|
|||
bad_override_test/01: MissingCompileTimeError
|
||||
bad_override_test/02: MissingCompileTimeError
|
||||
bad_override_test/06: MissingCompileTimeError
|
||||
bit_operations_test/01: MissingCompileTimeError
|
||||
bit_operations_test/02: MissingCompileTimeError
|
||||
bit_operations_test/03: MissingCompileTimeError
|
||||
bit_operations_test/04: MissingCompileTimeError
|
||||
bit_operations_test/03: StaticWarning
|
||||
bit_operations_test/04: StaticWarning
|
||||
call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
|
||||
call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
|
||||
call_constructor_on_unresolvable_class_test/03: MissingCompileTimeError
|
||||
|
@ -892,10 +888,6 @@ async_return_types_test/nestedFuture: MissingCompileTimeError
|
|||
bad_initializer1_negative_test: CompileTimeError # Issue 14529
|
||||
bad_initializer2_negative_test: Fail # Issue 14880
|
||||
bad_named_constructor_negative_test: CompileTimeError # Issue 18693
|
||||
bit_operations_test/01: MissingCompileTimeError
|
||||
bit_operations_test/02: MissingCompileTimeError
|
||||
bit_operations_test/03: MissingCompileTimeError
|
||||
bit_operations_test/04: MissingCompileTimeError
|
||||
black_listed_test/none: Fail # Issue 14228
|
||||
body_less_constructor_wrong_arg_negative_test: CompileTimeError # Issue 18695
|
||||
built_in_identifier_prefix_test: CompileTimeError
|
||||
|
@ -1061,10 +1053,6 @@ accessor_conflict_import_prefixed_test: CompileTimeError # Issue 25626
|
|||
accessor_conflict_import_test: CompileTimeError # Issue 25626
|
||||
additional_interface_adds_optional_args_test: CompileTimeError # Issue #30568
|
||||
async_return_types_test/nestedFuture: MissingCompileTimeError
|
||||
bit_operations_test/01: MissingStaticWarning # Issue 28823
|
||||
bit_operations_test/02: MissingStaticWarning # Issue 28823
|
||||
bit_operations_test/03: MissingStaticWarning # Issue 28823
|
||||
bit_operations_test/04: MissingStaticWarning # Issue 28823
|
||||
config_import_corelib_test: CompileTimeError
|
||||
const_types_test/07: MissingCompileTimeError # Incorrectly allows using type parameter in const expression.
|
||||
const_types_test/08: MissingCompileTimeError # Incorrectly allows using type parameter in const expression.
|
||||
|
|
|
@ -61,10 +61,6 @@ bad_named_parameters_test/05: MissingCompileTimeError
|
|||
bad_override_test/01: MissingCompileTimeError
|
||||
bad_override_test/02: MissingCompileTimeError
|
||||
bad_override_test/06: MissingCompileTimeError
|
||||
bit_operations_test/01: MissingCompileTimeError
|
||||
bit_operations_test/02: MissingCompileTimeError
|
||||
bit_operations_test/03: MissingCompileTimeError
|
||||
bit_operations_test/04: MissingCompileTimeError
|
||||
built_in_identifier_prefix_test: CompileTimeError
|
||||
call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
|
||||
call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
|
||||
|
@ -1222,7 +1218,7 @@ async_star_test/02: RuntimeError
|
|||
bad_override_test/03: MissingCompileTimeError
|
||||
bad_override_test/04: MissingCompileTimeError
|
||||
bad_override_test/05: MissingCompileTimeError
|
||||
bit_operations_test/none: RuntimeError
|
||||
bit_operations_test: RuntimeError
|
||||
bool_check_test: RuntimeError
|
||||
bool_condition_check_test: RuntimeError
|
||||
branch_canonicalization_test: RuntimeError
|
||||
|
@ -1641,7 +1637,7 @@ async_star_test/02: RuntimeError
|
|||
bad_override_test/03: MissingCompileTimeError
|
||||
bad_override_test/04: MissingCompileTimeError
|
||||
bad_override_test/05: MissingCompileTimeError
|
||||
bit_operations_test/none: RuntimeError
|
||||
bit_operations_test: RuntimeError
|
||||
bool_check_test: RuntimeError
|
||||
bool_condition_check_test: RuntimeError
|
||||
branch_canonicalization_test: RuntimeError
|
||||
|
@ -2065,7 +2061,7 @@ async_star_test/02: RuntimeError
|
|||
bad_override_test/03: MissingCompileTimeError
|
||||
bad_override_test/04: MissingCompileTimeError
|
||||
bad_override_test/05: MissingCompileTimeError
|
||||
bit_operations_test/none: RuntimeError
|
||||
bit_operations_test: RuntimeError
|
||||
bool_check_test: RuntimeError
|
||||
bool_condition_check_test: RuntimeError
|
||||
branch_canonicalization_test: RuntimeError
|
||||
|
|
|
@ -121,10 +121,7 @@ void_type_callbacks_test/01: MissingCompileTimeError # Issue 30514
|
|||
|
||||
[ $compiler == dartdevc && $runtime != none ]
|
||||
await_future_test: Pass, Timeout # Issue 29920
|
||||
bit_operations_test/01: RuntimeError # No bigints on web.
|
||||
bit_operations_test/02: RuntimeError # No bigints on web.
|
||||
bit_operations_test/03: RuntimeError # No bigints on web.
|
||||
bit_operations_test/04: RuntimeError # No bigints on web.
|
||||
bit_operations_test: RuntimeError # No bigints on web.
|
||||
covariant_override/tear_off_type_test: RuntimeError # Issue 28395
|
||||
deferred_load_library_wrong_args_test/01: MissingRuntimeError, RuntimeError # Issue 29920
|
||||
emit_const_fields_test: CompileTimeError
|
||||
|
@ -1247,10 +1244,6 @@ abstract_override_adds_optional_args_concrete_subclass_test: MissingCompileTimeE
|
|||
abstract_override_adds_optional_args_concrete_test: MissingCompileTimeError # Issue #30568
|
||||
abstract_override_adds_optional_args_supercall_test: MissingCompileTimeError # Issue #30568
|
||||
async_return_types_test/nestedFuture: MissingCompileTimeError
|
||||
bit_operations_test/01: MissingCompileTimeError
|
||||
bit_operations_test/02: MissingCompileTimeError
|
||||
bit_operations_test/03: MissingCompileTimeError
|
||||
bit_operations_test/04: MissingCompileTimeError
|
||||
built_in_identifier_prefix_test: CompileTimeError
|
||||
config_import_corelib_test: CompileTimeError
|
||||
field3_test/01: MissingCompileTimeError
|
||||
|
@ -1358,7 +1351,7 @@ async_star_test/03: RuntimeError
|
|||
async_star_test/04: RuntimeError
|
||||
async_star_test/05: RuntimeError
|
||||
async_star_test/none: RuntimeError
|
||||
bit_operations_test/none: RuntimeError # No bigints on web.; Expect.equals(expected: <-25>, actual: <4294967271>) fails.
|
||||
bit_operations_test: RuntimeError # No bigints on web.; Expect.equals(expected: <-25>, actual: <4294967271>) fails.
|
||||
branch_canonicalization_test: RuntimeError # Issue 29920; Expect.equals(expected: <0>, actual: <1>) fails.
|
||||
call_closurization_test: RuntimeError # Issue 29920; TypeError: Cannot read property '0' of undefined
|
||||
call_test: RuntimeError # Expect.throws(NoSuchMethodError) fails: Did not throw
|
||||
|
|
|
@ -72,10 +72,6 @@ bad_named_parameters_test/05: MissingCompileTimeError
|
|||
bad_override_test/01: MissingCompileTimeError
|
||||
bad_override_test/02: MissingCompileTimeError
|
||||
bad_override_test/06: MissingCompileTimeError
|
||||
bit_operations_test/01: MissingCompileTimeError
|
||||
bit_operations_test/02: MissingCompileTimeError
|
||||
bit_operations_test/03: MissingCompileTimeError
|
||||
bit_operations_test/04: MissingCompileTimeError
|
||||
built_in_identifier_prefix_test: CompileTimeError
|
||||
built_in_identifier_type_annotation_test/22: DartkCrash # Issue 28814
|
||||
built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Error only in strong mode
|
||||
|
@ -1728,10 +1724,6 @@ bad_named_parameters_test/05: MissingCompileTimeError
|
|||
bad_override_test/01: MissingCompileTimeError
|
||||
bad_override_test/02: MissingCompileTimeError
|
||||
bad_override_test/06: MissingCompileTimeError
|
||||
bit_operations_test/01: MissingCompileTimeError
|
||||
bit_operations_test/02: MissingCompileTimeError
|
||||
bit_operations_test/03: MissingCompileTimeError
|
||||
bit_operations_test/04: MissingCompileTimeError
|
||||
bool_check_test: RuntimeError
|
||||
bool_condition_check_test: RuntimeError
|
||||
built_in_identifier_illegal_test/01: MissingCompileTimeError
|
||||
|
@ -3549,3 +3541,10 @@ regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to pr
|
|||
tearoff_dynamic_test: RuntimeError
|
||||
type_argument_in_super_type_test: RuntimeError
|
||||
type_check_const_function_typedef2_test: MissingCompileTimeError
|
||||
|
||||
[ $compiler == dartkp ]
|
||||
bit_operations_test: CompileTimeError # Issue 31339
|
||||
vm/unaligned_integer_access_register_index_test: CompileTimeError # Issue 31339
|
||||
vm/unaligned_integer_access_literal_index_test: CompileTimeError # Issue 31339
|
||||
mint_arithmetic_test: CompileTimeError # Issue 31339
|
||||
identical_closure2_test: CompileTimeError # Issue 31339
|
||||
|
|
|
@ -64,10 +64,6 @@ bad_named_parameters_test/05: MissingCompileTimeError
|
|||
bad_override_test/01: MissingCompileTimeError
|
||||
bad_override_test/02: MissingCompileTimeError
|
||||
bad_override_test/06: MissingCompileTimeError
|
||||
bit_operations_test/01: MissingCompileTimeError
|
||||
bit_operations_test/02: MissingCompileTimeError
|
||||
bit_operations_test/03: MissingCompileTimeError
|
||||
bit_operations_test/04: MissingCompileTimeError
|
||||
bool_check_test: RuntimeError
|
||||
bool_condition_check_test: RuntimeError
|
||||
built_in_identifier_prefix_test: CompileTimeError
|
||||
|
|
|
@ -58,10 +58,6 @@ bad_named_parameters_test/05: MissingCompileTimeError
|
|||
bad_override_test/01: MissingCompileTimeError
|
||||
bad_override_test/02: MissingCompileTimeError
|
||||
bad_override_test/06: MissingCompileTimeError
|
||||
bit_operations_test/01: MissingCompileTimeError
|
||||
bit_operations_test/02: MissingCompileTimeError
|
||||
bit_operations_test/03: MissingCompileTimeError
|
||||
bit_operations_test/04: MissingCompileTimeError
|
||||
built_in_identifier_prefix_test: CompileTimeError
|
||||
call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
|
||||
call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
|
||||
|
|
|
@ -48,10 +48,10 @@ compareTest() {
|
|||
Expect.isFalse(-4294967296 >= -6);
|
||||
Expect.isFalse(-4294967296 > -4294967295);
|
||||
|
||||
Expect.isTrue(4294967296 < 184467440737095516150);
|
||||
Expect.isTrue(-4294967296 < 184467440737095516150);
|
||||
Expect.isFalse(4294967296 < -184467440737095516150);
|
||||
Expect.isFalse(-4294967296 < -184467440737095516150);
|
||||
Expect.isTrue(4294967296 < 9223372036854775807);
|
||||
Expect.isTrue(-4294967296 < 9223372036854775807);
|
||||
Expect.isFalse(4294967296 < -9223372036854775808);
|
||||
Expect.isFalse(-4294967296 < -9223372036854775808);
|
||||
}
|
||||
|
||||
compareTest2(lt, lte, gt, gte) {
|
||||
|
|
|
@ -13,32 +13,21 @@ main() {
|
|||
testNumberIdentity() {
|
||||
const int smi = 8;
|
||||
const int mint = 9223372036854775806;
|
||||
const int bigint = 22107138293752210713829375;
|
||||
const double dbl = 8.0;
|
||||
|
||||
var a = smi;
|
||||
var b = a + 0;
|
||||
Expect.isTrue(identical(a, b));
|
||||
Expect.isFalse(identical(b, mint));
|
||||
Expect.isFalse(identical(b, bigint));
|
||||
|
||||
a = mint;
|
||||
b = a + 0;
|
||||
Expect.isTrue(identical(a, b));
|
||||
Expect.isFalse(identical(b, smi));
|
||||
Expect.isFalse(identical(b, bigint));
|
||||
Expect.isFalse(identical(b, dbl));
|
||||
|
||||
a = bigint;
|
||||
b = a + 0;
|
||||
Expect.isTrue(identical(a, b));
|
||||
Expect.isFalse(identical(b, smi));
|
||||
Expect.isFalse(identical(b, mint));
|
||||
Expect.isFalse(identical(b, dbl));
|
||||
|
||||
var a2 = dbl;
|
||||
var b2 = a2 + 0.0;
|
||||
Expect.isTrue(identical(a2, b2));
|
||||
Expect.isFalse(identical(b2, mint));
|
||||
Expect.isFalse(identical(b2, bigint));
|
||||
}
|
||||
|
|
|
@ -21,9 +21,9 @@ cmp(a, b, c) {
|
|||
}
|
||||
|
||||
main() {
|
||||
var big = 100000000000000000000000000000000000;
|
||||
var before = cmp(big, big, 0);
|
||||
var str = "abc";
|
||||
var before = cmp(str, str, 0);
|
||||
Expect.equals(16, before);
|
||||
for (var i = 0; i < 20; i++) cmp(big, big + 1, 0);
|
||||
Expect.equals(before, cmp(big, big, 0));
|
||||
for (var i = 0; i < 20; i++) cmp(str, str, 0);
|
||||
Expect.equals(before, cmp(str, str, 0));
|
||||
}
|
||||
|
|
|
@ -16,6 +16,6 @@ main() {
|
|||
Expect.equals(x, mintRightShift(x, 0));
|
||||
Expect.equals(2 * x, mintLeftShift(x, 1));
|
||||
Expect.equals(x ~/ 2, mintRightShift(x, 1));
|
||||
Expect.equals(x, mintRightShift(mintLeftShift(x, i), i));
|
||||
Expect.equals((i >= 16) ? 1 : x, mintRightShift(mintLeftShift(x, i), i));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,5 +11,10 @@ void main() {
|
|||
Expect.equals(r, x ~/ 5);
|
||||
x *= 10;
|
||||
r *= 10;
|
||||
|
||||
if (x < 0) {
|
||||
// Overflow.
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -273,7 +273,7 @@ void testErrors() {
|
|||
badEncode(0x1000);
|
||||
badEncode(0x10000);
|
||||
badEncode(0x100000000); // //# 01: ok
|
||||
badEncode(0x10000000000000000); // //# 01: continued
|
||||
badEncode(0x7000000000000000); // //# 01: continued
|
||||
}
|
||||
|
||||
void testIssue25577() {
|
||||
|
|
|
@ -84,7 +84,7 @@ void testNumbers() {
|
|||
"9"
|
||||
"1234.56789123456701418035663664340972900390625",
|
||||
"1.2345678912345671e-14",
|
||||
"99999999999999999999"
|
||||
"9223372036854775807"
|
||||
]) {
|
||||
var expected = num.parse(number);
|
||||
for (int i = 1; i < number.length - 1; i++) {
|
||||
|
|
|
@ -58,7 +58,6 @@ final TESTS = [
|
|||
[-0xFF],
|
||||
[-0x80000000],
|
||||
[-0x40000000],
|
||||
[-0x80000000000000000]
|
||||
];
|
||||
|
||||
final TESTS2 = [
|
||||
|
|
|
@ -122,7 +122,7 @@ mirrors/reflected_type_special_types_test: RuntimeError # Issue 12607
|
|||
mirrors/reflected_type_typedefs_test: RuntimeError # Issue 12607
|
||||
mirrors/reflected_type_typevars_test: RuntimeError # Issue 12607
|
||||
profiler/metrics_num_test: Skip # Because of an int / double type test.
|
||||
typed_data/int32x4_bigint_test: RuntimeError # Issue 1533
|
||||
typed_data/int32x4_arithmetic_test/int64: RuntimeError # Issue 1533
|
||||
typed_data/int64_list_load_store_test: RuntimeError # Issue 10275
|
||||
typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 10275
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ mirrors/reflected_type_special_types_test: RuntimeError # Issue 29922
|
|||
mirrors/reflected_type_typedefs_test: RuntimeError # Issue 29922
|
||||
mirrors/reflected_type_typevars_test: RuntimeError # Issue 29922
|
||||
mirrors/regress_14304_test: RuntimeError # Issue 29922
|
||||
typed_data/int32x4_bigint_test: RuntimeError # Issue 29922
|
||||
typed_data/int32x4_arithmetic_test/int64: RuntimeError # Issue 29922
|
||||
typed_data/int64_list_load_store_test: RuntimeError # Issue 29922
|
||||
typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 29922
|
||||
|
||||
|
|
|
@ -314,3 +314,6 @@ typed_data/int32x4_static_test/02: MissingCompileTimeError
|
|||
[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == debug]
|
||||
isolate/isolate_complex_messages_test: Crash
|
||||
isolate/static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
|
||||
|
||||
[ $compiler == dartkp ]
|
||||
typed_data/int32x4_arithmetic_test/int64: CompileTimeError # Issue 31339
|
||||
|
|
|
@ -166,7 +166,7 @@ test() {
|
|||
|
||||
// The second argument is an odd integer as int, but not when converted
|
||||
// to double.
|
||||
Expect.identical(Infinity, pow(-0.0, -9223372036854775809));
|
||||
Expect.identical(Infinity, pow(-0.0, -9223372036854775807));
|
||||
}
|
||||
|
||||
main() {
|
||||
|
|
|
@ -12,7 +12,7 @@ import 'dart:math';
|
|||
|
||||
main() {
|
||||
var results = [];
|
||||
for (var i = 60; i < 80; i++) {
|
||||
for (var i = 60; i < 64; i++) {
|
||||
var rng = new Random(1 << i);
|
||||
var val = rng.nextInt(100000);
|
||||
print("$i: $val");
|
||||
|
|
|
@ -225,6 +225,10 @@ void checkSeed() {
|
|||
50711
|
||||
];
|
||||
for (var i = 0, m = 1; i < 75; i++) {
|
||||
if (rawSeed * m < 0) {
|
||||
// Overflow.
|
||||
break;
|
||||
}
|
||||
Expect.equals(expectations[i], new Random(rawSeed * m).nextInt(65536));
|
||||
Expect.equals(
|
||||
negative_seed_expectations[i], new Random(rawSeed * -m).nextInt(65536));
|
||||
|
|
|
@ -91,9 +91,16 @@ testSub() {
|
|||
Expect.equals(1, o.w);
|
||||
}
|
||||
|
||||
testTruncation() {
|
||||
var n = 0xAABBCCDD00000001;
|
||||
var x = new Int32x4(n, 0, 0, 0);
|
||||
Expect.equals(x.x, 1);
|
||||
}
|
||||
|
||||
main() {
|
||||
for (int i = 0; i < 20; i++) {
|
||||
testAdd();
|
||||
testSub();
|
||||
testTruncation(); // //# int64: ok
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
// VMOptions=--max_deoptimization_counter_threshold=1000 --optimization-counter-threshold=10 --no-background-compilation
|
||||
|
||||
// Library tag to be able to run in html test framework.
|
||||
library int32x4_bigint_test;
|
||||
|
||||
import 'dart:typed_data';
|
||||
import 'package:expect/expect.dart';
|
||||
|
||||
main() {
|
||||
var n = 18446744073709551617;
|
||||
var x = new Int32x4(n, 0, 0, 0);
|
||||
Expect.equals(x.x, 1);
|
||||
}
|
|
@ -28,7 +28,6 @@ main() {
|
|||
// Exceptions.
|
||||
Expect.throws(() => shiftLeft0(-1));
|
||||
|
||||
return;
|
||||
Expect.equals(1, shiftLeft1(0));
|
||||
Expect.equals(128, shiftLeft1(7));
|
||||
Expect.equals(536870912, shiftLeft1(29));
|
||||
|
@ -51,7 +50,7 @@ main() {
|
|||
Expect.equals(2377900603251621888, shiftLeft8448(48));
|
||||
// Deoptimize on 64 bits.
|
||||
Expect.equals(4755801206503243776, shiftLeft8448(49));
|
||||
Expect.equals(9511602413006487552, shiftLeft8448(50));
|
||||
Expect.equals(-8935141660703064064, shiftLeft8448(50));
|
||||
|
||||
Expect.equals(-1, shiftLeftNeg1(0));
|
||||
Expect.equals(-128, shiftLeftNeg1(7));
|
||||
|
@ -75,5 +74,5 @@ main() {
|
|||
Expect.equals(-2377900603251621888, shiftLeftNeg8448(48));
|
||||
// Deoptimize on 64 bits.
|
||||
Expect.equals(-4755801206503243776, shiftLeftNeg8448(49));
|
||||
Expect.equals(-9511602413006487552, shiftLeftNeg8448(50));
|
||||
Expect.equals(8935141660703064064, shiftLeftNeg8448(50));
|
||||
}
|
||||
|
|
|
@ -180,7 +180,7 @@ class DeoptimizationTest {
|
|||
Expect.equals(0, ShiftRight(10, 64));
|
||||
// Deoptimize ShiftRight because 'a' is a Mint.
|
||||
var mint = 1 << 63;
|
||||
Expect.equals(1 << 3, ShiftRight(mint, 60));
|
||||
Expect.equals(-1 << 3, ShiftRight(mint, 60));
|
||||
}
|
||||
|
||||
static doubleUnary() {
|
||||
|
|
|
@ -121,7 +121,7 @@ void testUint64ToSmi() {
|
|||
var z = intArray[2];
|
||||
var w = intArray[3];
|
||||
Expect.equals(4611686018427387903, x);
|
||||
Expect.equals(18446744073709551615, y);
|
||||
Expect.equals(-1, y);
|
||||
Expect.equals(4611686018427387904, z);
|
||||
Expect.equals(9223372036854775808, w);
|
||||
}
|
||||
|
|
|
@ -40,8 +40,7 @@ testChangeDirectory() {
|
|||
|
||||
testChangeDirectoryIllegalArguments() {
|
||||
Expect.throwsArgumentError(() => Directory.current = 1);
|
||||
Expect.throwsArgumentError(
|
||||
() => Directory.current = 111111111111111111111111111111111111);
|
||||
Expect.throwsArgumentError(() => Directory.current = 9223372036854775807);
|
||||
Expect.throwsArgumentError(() => Directory.current = true);
|
||||
Expect.throwsArgumentError(() => Directory.current = []);
|
||||
Expect.throwsArgumentError(() => Directory.current = new File("xxx"));
|
||||
|
|
|
@ -552,14 +552,14 @@ class FileTest {
|
|||
openedFile.writeFromSync([0], 0, 1);
|
||||
openedFile.writeFromSync(const [1], 0, 1);
|
||||
openedFile.writeFromSync(new MyListOfOneElement(2), 0, 1);
|
||||
var x = 12345678901234567890123456789012345678901234567890;
|
||||
var y = 12345678901234567890123456789012345678901234567893;
|
||||
var x = -259;
|
||||
var y = 0;
|
||||
openedFile.writeFromSync([y - x], 0, 1);
|
||||
openedFile.writeFromSync([260], 0, 1); // 260 = 256 + 4 = 0x104.
|
||||
openedFile.writeFromSync(const [261], 0, 1);
|
||||
openedFile.writeFromSync(new MyListOfOneElement(262), 0, 1);
|
||||
x = 12345678901234567890123456789012345678901234567890;
|
||||
y = 12345678901234567890123456789012345678901234568153;
|
||||
x = 0;
|
||||
y = 263;
|
||||
openedFile.writeFrom([y - x], 0, 1).then((ignore) {
|
||||
openedFile.close().then((ignore) {
|
||||
// Check the written bytes.
|
||||
|
|
|
@ -11,7 +11,7 @@ import 'dart:io';
|
|||
const typeMapping = const {
|
||||
'null': null,
|
||||
'int': 0,
|
||||
'bigint': 18446744073709551617,
|
||||
'int64': -9000000000000000000,
|
||||
'String': 'a',
|
||||
'FileMode': FileMode.READ,
|
||||
'num': 0.50,
|
||||
|
|
|
@ -35,12 +35,7 @@ class MediumIntegerTest {
|
|||
Expect.equals(200000000000000002, a + a);
|
||||
a = 9223372036854775800;
|
||||
b = 1000000000000000000;
|
||||
Expect.equals(10223372036854775800, a + b);
|
||||
|
||||
// Mint and Bigint.
|
||||
a = 100000000000000001;
|
||||
b = 10000000000000000001;
|
||||
Expect.equals(10100000000000000002, a + b);
|
||||
Expect.equals(-8223372036854775816, a + b);
|
||||
|
||||
// Mint and double.
|
||||
var da = 100000000000.0;
|
||||
|
@ -55,7 +50,7 @@ class MediumIntegerTest {
|
|||
var b = 2;
|
||||
Expect.equals(1234567890123456787, a - b);
|
||||
a = -9223372036854775808;
|
||||
Expect.equals(-9223372036854775809, a - 1);
|
||||
Expect.equals(9223372036854775807, a - 1);
|
||||
|
||||
// Mint and Mint.
|
||||
a = 1234567890123456789;
|
||||
|
@ -63,7 +58,7 @@ class MediumIntegerTest {
|
|||
Expect.equals(234567890123456789, a - b);
|
||||
a = -9223372036854775808;
|
||||
b = 1000000000000000000;
|
||||
Expect.equals(-10223372036854775808, a - b);
|
||||
Expect.equals(8223372036854775808, a - b);
|
||||
}
|
||||
|
||||
static testMintDiv() {
|
||||
|
@ -77,9 +72,9 @@ class MediumIntegerTest {
|
|||
// Mint and Smi.
|
||||
var a = 4611686018427387904;
|
||||
var b = 10;
|
||||
Expect.equals(46116860184273879040, a * b);
|
||||
Expect.equals(-9223372036854775808, a * b);
|
||||
b = 1000000000000000000;
|
||||
Expect.equals(4611686018427387904000000000000000000, a * b);
|
||||
Expect.equals(0, a * b);
|
||||
}
|
||||
|
||||
static testMintAnd(mint) {
|
||||
|
|
|
@ -14,7 +14,7 @@ main() {
|
|||
|
||||
testNumberIdentity() {
|
||||
const int smi = 8;
|
||||
const int bigint = 22107138293752210713829375;
|
||||
const int mint = 9223372036854775807;
|
||||
const double dbl = 8.0;
|
||||
// No int/double differences in dart2js.
|
||||
var a = smi + 0;
|
||||
|
@ -22,7 +22,7 @@ testNumberIdentity() {
|
|||
var c = dbl + 0.0;
|
||||
Expect.isFalse(identical(c, smi));
|
||||
|
||||
a = bigint;
|
||||
a = mint;
|
||||
var b = a + 0;
|
||||
Expect.isTrue(identical(a, b));
|
||||
b = a + 1;
|
||||
|
|
|
@ -73,11 +73,6 @@ var expectedResults = [
|
|||
1152921504606846976,
|
||||
2305843009213693952,
|
||||
4611686018427387904,
|
||||
9223372036854775808,
|
||||
18446744073709551616,
|
||||
36893488147419103232,
|
||||
73786976294838206464,
|
||||
147573952589676412928
|
||||
];
|
||||
|
||||
void main() {
|
||||
|
@ -99,7 +94,4 @@ void main() {
|
|||
Expect.equals(val.toDouble(), pow(2, exp.toDouble()));
|
||||
exp++;
|
||||
}
|
||||
// Test Bigints.
|
||||
Expect.equals(5559917313492231481, pow(11, 18));
|
||||
Expect.equals(672749994932560009201, pow(11, 20));
|
||||
}
|
||||
|
|
|
@ -16,8 +16,6 @@ void train() {
|
|||
IsAnInt(42); // Smi - always goes first in the generated code.
|
||||
IsAnInt(1 << 62); // Mint on 64 bit platforms.
|
||||
IsAnInt(1 << 62);
|
||||
IsAnInt(4200000000000000000000000000000000000); // BigInt
|
||||
IsAnInt(4200000000000000000000000000000000000);
|
||||
// This one that is not an int goes last in the IC because it is called
|
||||
// less frequently.
|
||||
IsAnInt(4.2);
|
||||
|
|
|
@ -111,3 +111,8 @@ io/socket_finalizer_test: Pass, Crash
|
|||
io/socket_info_ipv4_test: Pass, Crash
|
||||
io/socket_info_ipv6_test: Pass, Crash
|
||||
io/socket_port_test: Pass, Crash
|
||||
|
||||
[ $compiler == dartkp ]
|
||||
typed_array_int64_uint64_test: CompileTimeError, Crash # Issue 31339
|
||||
bytedata_test: CompileTimeError # Issue 31339
|
||||
typed_data_view_test: CompileTimeError # Issue 31339
|
||||
|
|
|
@ -407,13 +407,13 @@ testWhere() {
|
|||
|
||||
testCreationFromList() {
|
||||
var intList = [
|
||||
-10000000000000000000,
|
||||
-1000000000000000000,
|
||||
-255,
|
||||
-127,
|
||||
0,
|
||||
128,
|
||||
256,
|
||||
1000000000000000000000
|
||||
1000000000000000000
|
||||
];
|
||||
var intLists = [];
|
||||
intLists.add(new Int8List.fromList(intList));
|
||||
|
|
|
@ -58,17 +58,17 @@ testSetters() {
|
|||
Expect.equals(-1, blist.getInt32(0, Endian.little));
|
||||
blist.setUint32(0, 0xffffffffffff, Endian.little);
|
||||
Expect.equals(0xffffffff, blist.getUint32(0, Endian.little));
|
||||
blist.setInt64(0, 0xffffffffffffffffff, Endian.little);
|
||||
blist.setInt64(0, 0xffffffffffffffff, Endian.little);
|
||||
Expect.equals(-1, blist.getInt64(0, Endian.little));
|
||||
blist.setUint64(0, 0xffffffffffffffffff, Endian.little);
|
||||
blist.setUint64(0, 0xffffffffffffffff, Endian.little);
|
||||
Expect.equals(0xffffffffffffffff, blist.getUint64(0, Endian.little));
|
||||
blist.setInt32(0, 18446744073709551614, Endian.little);
|
||||
blist.setInt32(0, 0xaabbccddfffffffe, Endian.little);
|
||||
Expect.equals(-2, blist.getInt32(0, Endian.little));
|
||||
blist.setUint32(0, 18446744073709551614, Endian.little);
|
||||
blist.setUint32(0, 0xaabbccddfffffffe, Endian.little);
|
||||
Expect.equals(0xfffffffe, blist.getUint32(0, Endian.little));
|
||||
blist.setInt64(0, 18446744073709551614, Endian.little);
|
||||
blist.setInt64(0, 0xfffffffffffffffe, Endian.little);
|
||||
Expect.equals(-2, blist.getInt64(0, Endian.little));
|
||||
blist.setUint64(0, 18446744073709551614, Endian.little);
|
||||
blist.setUint64(0, 0xfffffffffffffffe, Endian.little);
|
||||
Expect.equals(0xfffffffffffffffe, blist.getUint64(0, Endian.little));
|
||||
|
||||
blist.setFloat32(0, 18446744073709551614.0, Endian.little);
|
||||
|
|
|
@ -837,8 +837,11 @@ class StandardTestSuite extends TestSuite {
|
|||
// TODO(rnystrom): Hack. When running the 2.0 tests, always implicitly
|
||||
// turn on reified generics in the VM.
|
||||
// Note that VMOptions=--no-reify-generic-functions in test is ignored.
|
||||
// Also, enable Dart 2.0 fixed-size integers with --limit-ints-to-64-bits.
|
||||
if (suiteName.endsWith("_2")) {
|
||||
allVmOptions = allVmOptions.toList()..add("--reify-generic-functions");
|
||||
allVmOptions = allVmOptions.toList()
|
||||
..add("--reify-generic-functions")
|
||||
..add("--limit-ints-to-64-bits");
|
||||
}
|
||||
|
||||
var commands =
|
||||
|
|
Loading…
Reference in a new issue