asIntN-digit32.js (2521B)
1 // asIntN test specialised when the input is an Int32 value. 2 3 const tests = [ 4 [-0x80000000n, 0, 0n], 5 [-0x7fffffffn, 0, 0n], 6 [-0x7ffffffen, 0, 0n], 7 [-9n, 0, 0n], 8 [-8n, 0, 0n], 9 [-7n, 0, 0n], 10 [-6n, 0, 0n], 11 [-5n, 0, 0n], 12 [-4n, 0, 0n], 13 [-3n, 0, 0n], 14 [-2n, 0, 0n], 15 [-1n, 0, 0n], 16 [0n, 0, 0n], 17 [1n, 0, 0n], 18 [2n, 0, 0n], 19 [3n, 0, 0n], 20 [4n, 0, 0n], 21 [5n, 0, 0n], 22 [6n, 0, 0n], 23 [7n, 0, 0n], 24 [8n, 0, 0n], 25 [9n, 0, 0n], 26 [0x7ffffffen, 0, 0n], 27 [0x7fffffffn, 0, 0n], 28 [-0x80000000n, 1, 0n], 29 [-0x7fffffffn, 1, -1n], 30 [-0x7ffffffen, 1, 0n], 31 [-9n, 1, -1n], 32 [-8n, 1, 0n], 33 [-7n, 1, -1n], 34 [-6n, 1, 0n], 35 [-5n, 1, -1n], 36 [-4n, 1, 0n], 37 [-3n, 1, -1n], 38 [-2n, 1, 0n], 39 [-1n, 1, -1n], 40 [0n, 1, 0n], 41 [1n, 1, -1n], 42 [2n, 1, 0n], 43 [3n, 1, -1n], 44 [4n, 1, 0n], 45 [5n, 1, -1n], 46 [6n, 1, 0n], 47 [7n, 1, -1n], 48 [8n, 1, 0n], 49 [9n, 1, -1n], 50 [0x7ffffffen, 1, 0n], 51 [0x7fffffffn, 1, -1n], 52 [-0x80000000n, 2, 0n], 53 [-0x7fffffffn, 2, 1n], 54 [-0x7ffffffen, 2, -2n], 55 [-9n, 2, -1n], 56 [-8n, 2, 0n], 57 [-7n, 2, 1n], 58 [-6n, 2, -2n], 59 [-5n, 2, -1n], 60 [-4n, 2, 0n], 61 [-3n, 2, 1n], 62 [-2n, 2, -2n], 63 [-1n, 2, -1n], 64 [0n, 2, 0n], 65 [1n, 2, 1n], 66 [2n, 2, -2n], 67 [3n, 2, -1n], 68 [4n, 2, 0n], 69 [5n, 2, 1n], 70 [6n, 2, -2n], 71 [7n, 2, -1n], 72 [8n, 2, 0n], 73 [9n, 2, 1n], 74 [0x7ffffffen, 2, -2n], 75 [0x7fffffffn, 2, -1n], 76 [-0x80000000n, 31, 0n], 77 [-0x7fffffffn, 31, 1n], 78 [-0x7ffffffen, 31, 2n], 79 [-9n, 31, -9n], 80 [-8n, 31, -8n], 81 [-7n, 31, -7n], 82 [-6n, 31, -6n], 83 [-5n, 31, -5n], 84 [-4n, 31, -4n], 85 [-3n, 31, -3n], 86 [-2n, 31, -2n], 87 [-1n, 31, -1n], 88 [0n, 31, 0n], 89 [1n, 31, 1n], 90 [2n, 31, 2n], 91 [3n, 31, 3n], 92 [4n, 31, 4n], 93 [5n, 31, 5n], 94 [6n, 31, 6n], 95 [7n, 31, 7n], 96 [8n, 31, 8n], 97 [9n, 31, 9n], 98 [0x7ffffffen, 31, -2n], 99 [0x7fffffffn, 31, -1n], 100 [-0x80000000n, 32, -0x80000000n], 101 [-0x7fffffffn, 32, -0x7fffffffn], 102 [-0x7ffffffen, 32, -0x7ffffffen], 103 [-9n, 32, -9n], 104 [-8n, 32, -8n], 105 [-7n, 32, -7n], 106 [-6n, 32, -6n], 107 [-5n, 32, -5n], 108 [-4n, 32, -4n], 109 [-3n, 32, -3n], 110 [-2n, 32, -2n], 111 [-1n, 32, -1n], 112 [0n, 32, 0n], 113 [1n, 32, 1n], 114 [2n, 32, 2n], 115 [3n, 32, 3n], 116 [4n, 32, 4n], 117 [5n, 32, 5n], 118 [6n, 32, 6n], 119 [7n, 32, 7n], 120 [8n, 32, 8n], 121 [9n, 32, 9n], 122 [0x7ffffffen, 32, 0x7ffffffen], 123 [0x7fffffffn, 32, 0x7fffffffn], 124 ]; 125 126 function f(tests) { 127 for (let test of tests) { 128 let input = test[0], bits = test[1], expected = test[2]; 129 130 assertEq(BigInt.asIntN(bits, input), expected); 131 } 132 } 133 134 for (let i = 0; i < 10; ++i) { 135 f(tests); 136 }