const tests = [
[-0 x80000000n, -2 n, 0 x40000000n],
[-0 x7fffffffn, -2 n, 0 x3fffffffn],
[-0 x7ffffffen, -2 n, 0 x3fffffffn],
[-2 n, -2 n, 1 n],
[-1 n, -2 n, 0 n],
[0 n, -2 n, 0 n],
[1 n, -2 n, 0 n],
[2 n, -2 n, -1 n],
[0 x7ffffffen, -2 n, -0 x3fffffffn],
[0 x7fffffffn, -2 n, -0 x3fffffffn],
[-0 x7fffffffn, -1 n, 0 x7fffffffn],
[-0 x7ffffffen, -1 n, 0 x7ffffffen],
[-2 n, -1 n, 2 n],
[-1 n, -1 n, 1 n],
[0 n, -1 n, 0 n],
[1 n, -1 n, -1 n],
[2 n, -1 n, -2 n],
[0 x7ffffffen, -1 n, -0 x7ffffffen],
[0 x7fffffffn, -1 n, -0 x7fffffffn],
[-0 x80000000n, 1 n, -0 x80000000n],
[-0 x7fffffffn, 1 n, -0 x7fffffffn],
[-0 x7ffffffen, 1 n, -0 x7ffffffen],
[-2 n, 1 n, -2 n],
[-1 n, 1 n, -1 n],
[0 n, 1 n, 0 n],
[1 n, 1 n, 1 n],
[2 n, 1 n, 2 n],
[0 x7ffffffen, 1 n, 0 x7ffffffen],
[0 x7fffffffn, 1 n, 0 x7fffffffn],
[-0 x80000000n, 2 n, -0 x40000000n],
[-0 x7fffffffn, 2 n, -0 x3fffffffn],
[-0 x7ffffffen, 2 n, -0 x3fffffffn],
[-2 n, 2 n, -1 n],
[-1 n, 2 n, 0 n],
[0 n, 2 n, 0 n],
[1 n, 2 n, 0 n],
[2 n, 2 n, 1 n],
[0 x7ffffffen, 2 n, 0 x3fffffffn],
[0 x7fffffffn, 2 n, 0 x3fffffffn],
[-0 x80000000n, 0 x7ffffffen, -1 n],
[-0 x7fffffffn, 0 x7ffffffen, -1 n],
[-0 x7ffffffen, 0 x7ffffffen, -1 n],
[-2 n, 0 x7ffffffen, 0 n],
[-1 n, 0 x7ffffffen, 0 n],
[0 n, 0 x7ffffffen, 0 n],
[1 n, 0 x7ffffffen, 0 n],
[2 n, 0 x7ffffffen, 0 n],
[0 x7ffffffen, 0 x7ffffffen, 1 n],
[0 x7fffffffn, 0 x7ffffffen, 1 n],
[-0 x80000000n, 0 x7fffffffn, -1 n],
[-0 x7fffffffn, 0 x7fffffffn, -1 n],
[-0 x7ffffffen, 0 x7fffffffn, 0 n],
[-2 n, 0 x7fffffffn, 0 n],
[-1 n, 0 x7fffffffn, 0 n],
[0 n, 0 x7fffffffn, 0 n],
[1 n, 0 x7fffffffn, 0 n],
[2 n, 0 x7fffffffn, 0 n],
[0 x7ffffffen, 0 x7fffffffn, 0 n],
[0 x7fffffffn, 0 x7fffffffn, 1 n],
[-0 x80000000n, -0 x80000000n, 1 n],
[-0 x7fffffffn, -0 x80000000n, 0 n],
[-0 x7ffffffen, -0 x80000000n, 0 n],
[-2 n, -0 x80000000n, 0 n],
[-1 n, -0 x80000000n, 0 n],
[0 n, -0 x80000000n, 0 n],
[1 n, -0 x80000000n, 0 n],
[2 n, -0 x80000000n, 0 n],
[0 x7ffffffen, -0 x80000000n, 0 n],
[0 x7fffffffn, -0 x80000000n, 0 n],
[-0 x80000000n, -0 x7fffffffn, 1 n],
[-0 x7fffffffn, -0 x7fffffffn, 1 n],
[-0 x7ffffffen, -0 x7fffffffn, 0 n],
[-2 n, -0 x7fffffffn, 0 n],
[-1 n, -0 x7fffffffn, 0 n],
[0 n, -0 x7fffffffn, 0 n],
[1 n, -0 x7fffffffn, 0 n],
[2 n, -0 x7fffffffn, 0 n],
[0 x7ffffffen, -0 x7fffffffn, 0 n],
[0 x7fffffffn, -0 x7fffffffn, -1 n],
[-0 x80000000n, -0 x7ffffffen, 1 n],
[-0 x7fffffffn, -0 x7ffffffen, 1 n],
[-0 x7ffffffen, -0 x7ffffffen, 1 n],
[-2 n, -0 x7ffffffen, 0 n],
[-1 n, -0 x7ffffffen, 0 n],
[0 n, -0 x7ffffffen, 0 n],
[1 n, -0 x7ffffffen, 0 n],
[2 n, -0 x7ffffffen, 0 n],
[0 x7ffffffen, -0 x7ffffffen, -1 n],
[0 x7fffffffn, -0 x7ffffffen, -1 n],
];
function f(tests) {
for (let test of tests) {
let lhs = test[0 ], rhs = test[1 ], expected = test[2 ];
assertEq(BigInt.asIntN(32 , lhs), lhs);
assertEq(BigInt.asIntN(32 , rhs), rhs);
assertEq(BigInt.asIntN(32 , expected), expected);
let f = Function (`
let lhs = ${lhs}n;
let rhs = ${rhs}n;
assertEq(lhs / rhs, ${expected}n);
`);
for (let j = 0 ; j < 100 ; ++j) {
f();
}
}
}
for (let i = 0 ; i < 10 ; ++i) {
f(tests);
}
Messung V0.5 in Prozent C=100 H=0 G=70