0906af6d2f
I also regenerated the static error expectations (see #57042 for context). Change-Id: Ia0ca22604a0dd422cc265a46845afc43f551fe38 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/394572 Commit-Queue: Lasse Nielsen <lrn@google.com> Reviewed-by: Lasse Nielsen <lrn@google.com> Auto-Submit: Bob Nystrom <rnystrom@google.com>
155 lines
5.0 KiB
Dart
155 lines
5.0 KiB
Dart
// Copyright (c) 2022, 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=--intrinsify --no-enable-asserts
|
|
// VMOptions=--intrinsify --enable-asserts
|
|
// VMOptions=--no-intrinsify --enable-asserts
|
|
// VMOptions=--no-intrinsify --no-enable-asserts
|
|
// VMOptions=--runtime_allocate_old
|
|
// VMOptions=--runtime_allocate_spill_tlab
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
expectRemainder(aString, bString, expectedString) {
|
|
BigInt a = BigInt.parse(aString, radix: 16);
|
|
BigInt b = BigInt.parse(bString, radix: 16);
|
|
BigInt expected = BigInt.parse(expectedString, radix: 16);
|
|
BigInt actual = a % b;
|
|
String actualString = actual.toRadixString(16);
|
|
print("$aString % $bString");
|
|
print(" = $actualString (expected $expectedString)");
|
|
Expect.equals(expected, actual);
|
|
}
|
|
|
|
main() {
|
|
expectRemainder(
|
|
"d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"d4cba13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"3b04b6a8ac2e74f9845c182e303993e0efa8184",
|
|
);
|
|
expectRemainder(
|
|
"d4cba13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"d4cba13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
);
|
|
expectRemainder(
|
|
"d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"a13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"1fdbde7efec117ff81df42cc8367092a65e4",
|
|
);
|
|
expectRemainder(
|
|
"d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"3fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"359d4ac0e4440150310acc0e96fdb973c",
|
|
);
|
|
expectRemainder(
|
|
"d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"ac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"84c9b202365aef6ea4b442ff6897d72e",
|
|
);
|
|
expectRemainder(
|
|
"d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"3ee22b996ff6856c27c1f6d88aef0e",
|
|
"2c66626e41743605244c026579e4f0",
|
|
);
|
|
expectRemainder("d87becaa3701c97b31b5b8084f2b5b34e7857092", "1", "0");
|
|
|
|
expectRemainder(
|
|
"-d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"d4cba13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"d11b55d5217bfadc012a3502892428b8c9906d8a",
|
|
);
|
|
expectRemainder(
|
|
"-d4cba13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"3b04b6a8ac2e74f9845c182e303993e0efa8184",
|
|
);
|
|
expectRemainder(
|
|
"-d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"a13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"8163cdbfe36a817074a6295b3e8fcf60892a",
|
|
);
|
|
expectRemainder(
|
|
"-d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"3fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"3c526a361d552fe1825b7b010d68af57d2",
|
|
);
|
|
expectRemainder(
|
|
"-d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"ac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"2775302963150716c7737ef76ff317e0",
|
|
);
|
|
expectRemainder(
|
|
"-d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"3ee22b996ff6856c27c1f6d88aef0e",
|
|
"127bc92b2e824f670375f473110a1e",
|
|
);
|
|
expectRemainder("-d87becaa3701c97b31b5b8084f2b5b34e7857092", "1", "0");
|
|
|
|
expectRemainder(
|
|
"d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"-d4cba13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"3b04b6a8ac2e74f9845c182e303993e0efa8184",
|
|
);
|
|
expectRemainder(
|
|
"d4cba13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"-d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"d4cba13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
);
|
|
expectRemainder(
|
|
"d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"-a13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"1fdbde7efec117ff81df42cc8367092a65e4",
|
|
);
|
|
expectRemainder(
|
|
"d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"-3fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"359d4ac0e4440150310acc0e96fdb973c",
|
|
);
|
|
expectRemainder(
|
|
"d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"-ac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"84c9b202365aef6ea4b442ff6897d72e",
|
|
);
|
|
expectRemainder(
|
|
"d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"-3ee22b996ff6856c27c1f6d88aef0e",
|
|
"2c66626e41743605244c026579e4f0",
|
|
);
|
|
expectRemainder("d87becaa3701c97b31b5b8084f2b5b34e7857092", "-1", "0");
|
|
|
|
expectRemainder(
|
|
"-d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"-d4cba13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"d11b55d5217bfadc012a3502892428b8c9906d8a",
|
|
);
|
|
expectRemainder(
|
|
"-d4cba13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"-d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"3b04b6a8ac2e74f9845c182e303993e0efa8184",
|
|
);
|
|
expectRemainder(
|
|
"-d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"-a13fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"8163cdbfe36a817074a6295b3e8fcf60892a",
|
|
);
|
|
expectRemainder(
|
|
"-d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"-3fac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"3c526a361d552fe1825b7b010d68af57d2",
|
|
);
|
|
expectRemainder(
|
|
"-d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"-ac3ee22b996ff6856c27c1f6d88aef0e",
|
|
"2775302963150716c7737ef76ff317e0",
|
|
);
|
|
expectRemainder(
|
|
"-d87becaa3701c97b31b5b8084f2b5b34e7857092",
|
|
"-3ee22b996ff6856c27c1f6d88aef0e",
|
|
"127bc92b2e824f670375f473110a1e",
|
|
);
|
|
expectRemainder("-d87becaa3701c97b31b5b8084f2b5b34e7857092", "-1", "0");
|
|
}
|