// asIntN test specialised when the input is an Int32 value.
const tests = [
[-0 x80000000n, 0 , 0 n],
[-0 x7fffffffn, 0 , 0 n],
[-0 x7ffffffen, 0 , 0 n],
[-9 n, 0 , 0 n],
[-8 n, 0 , 0 n],
[-7 n, 0 , 0 n],
[-6 n, 0 , 0 n],
[-5 n, 0 , 0 n],
[-4 n, 0 , 0 n],
[-3 n, 0 , 0 n],
[-2 n, 0 , 0 n],
[-1 n, 0 , 0 n],
[0 n, 0 , 0 n],
[1 n, 0 , 0 n],
[2 n, 0 , 0 n],
[3 n, 0 , 0 n],
[4 n, 0 , 0 n],
[5 n, 0 , 0 n],
[6 n, 0 , 0 n],
[7 n, 0 , 0 n],
[8 n, 0 , 0 n],
[9 n, 0 , 0 n],
[0 x7ffffffen, 0 , 0 n],
[0 x7fffffffn, 0 , 0 n],
[-0 x80000000n, 1 , 0 n],
[-0 x7fffffffn, 1 , -1 n],
[-0 x7ffffffen, 1 , 0 n],
[-9 n, 1 , -1 n],
[-8 n, 1 , 0 n],
[-7 n, 1 , -1 n],
[-6 n, 1 , 0 n],
[-5 n, 1 , -1 n],
[-4 n, 1 , 0 n],
[-3 n, 1 , -1 n],
[-2 n, 1 , 0 n],
[-1 n, 1 , -1 n],
[0 n, 1 , 0 n],
[1 n, 1 , -1 n],
[2 n, 1 , 0 n],
[3 n, 1 , -1 n],
[4 n, 1 , 0 n],
[5 n, 1 , -1 n],
[6 n, 1 , 0 n],
[7 n, 1 , -1 n],
[8 n, 1 , 0 n],
[9 n, 1 , -1 n],
[0 x7ffffffen, 1 , 0 n],
[0 x7fffffffn, 1 , -1 n],
[-0 x80000000n, 2 , 0 n],
[-0 x7fffffffn, 2 , 1 n],
[-0 x7ffffffen, 2 , -2 n],
[-9 n, 2 , -1 n],
[-8 n, 2 , 0 n],
[-7 n, 2 , 1 n],
[-6 n, 2 , -2 n],
[-5 n, 2 , -1 n],
[-4 n, 2 , 0 n],
[-3 n, 2 , 1 n],
[-2 n, 2 , -2 n],
[-1 n, 2 , -1 n],
[0 n, 2 , 0 n],
[1 n, 2 , 1 n],
[2 n, 2 , -2 n],
[3 n, 2 , -1 n],
[4 n, 2 , 0 n],
[5 n, 2 , 1 n],
[6 n, 2 , -2 n],
[7 n, 2 , -1 n],
[8 n, 2 , 0 n],
[9 n, 2 , 1 n],
[0 x7ffffffen, 2 , -2 n],
[0 x7fffffffn, 2 , -1 n],
[-0 x80000000n, 31 , 0 n],
[-0 x7fffffffn, 31 , 1 n],
[-0 x7ffffffen, 31 , 2 n],
[-9 n, 31 , -9 n],
[-8 n, 31 , -8 n],
[-7 n, 31 , -7 n],
[-6 n, 31 , -6 n],
[-5 n, 31 , -5 n],
[-4 n, 31 , -4 n],
[-3 n, 31 , -3 n],
[-2 n, 31 , -2 n],
[-1 n, 31 , -1 n],
[0 n, 31 , 0 n],
[1 n, 31 , 1 n],
[2 n, 31 , 2 n],
[3 n, 31 , 3 n],
[4 n, 31 , 4 n],
[5 n, 31 , 5 n],
[6 n, 31 , 6 n],
[7 n, 31 , 7 n],
[8 n, 31 , 8 n],
[9 n, 31 , 9 n],
[0 x7ffffffen, 31 , -2 n],
[0 x7fffffffn, 31 , -1 n],
[-0 x80000000n, 32 , -0 x80000000n],
[-0 x7fffffffn, 32 , -0 x7fffffffn],
[-0 x7ffffffen, 32 , -0 x7ffffffen],
[-9 n, 32 , -9 n],
[-8 n, 32 , -8 n],
[-7 n, 32 , -7 n],
[-6 n, 32 , -6 n],
[-5 n, 32 , -5 n],
[-4 n, 32 , -4 n],
[-3 n, 32 , -3 n],
[-2 n, 32 , -2 n],
[-1 n, 32 , -1 n],
[0 n, 32 , 0 n],
[1 n, 32 , 1 n],
[2 n, 32 , 2 n],
[3 n, 32 , 3 n],
[4 n, 32 , 4 n],
[5 n, 32 , 5 n],
[6 n, 32 , 6 n],
[7 n, 32 , 7 n],
[8 n, 32 , 8 n],
[9 n, 32 , 9 n],
[0 x7ffffffen, 32 , 0 x7ffffffen],
[0 x7fffffffn, 32 , 0 x7fffffffn],
];
function f(tests) {
for (let test of tests) {
let input = test[0 ], bits = test[1 ], expected = test[2 ];
assertEq(BigInt.asIntN(bits, input), expected);
}
}
for (let i = 0 ; i < 10 ; ++i) {
f(tests);
}
Messung V0.5 in Prozent C=100 H=0 G=70