asUintN-digit32.js (2317B)
1 // asUintN 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, 3n], 56 [-8n, 2, 0n], 57 [-7n, 2, 1n], 58 [-6n, 2, 2n], 59 [-5n, 2, 3n], 60 [-4n, 2, 0n], 61 [-3n, 2, 1n], 62 [-2n, 2, 2n], 63 [-1n, 2, 3n], 64 [0n, 2, 0n], 65 [1n, 2, 1n], 66 [2n, 2, 2n], 67 [3n, 2, 3n], 68 [4n, 2, 0n], 69 [5n, 2, 1n], 70 [6n, 2, 2n], 71 [7n, 2, 3n], 72 [8n, 2, 0n], 73 [9n, 2, 1n], 74 [0x7ffffffen, 2, 2n], 75 [0x7fffffffn, 2, 3n], 76 [-0x80000000n, 31, 0n], 77 [-0x7fffffffn, 31, 1n], 78 [-0x7ffffffen, 31, 2n], 79 [-9n, 31, 0x7ffffff7n], 80 [-8n, 31, 0x7ffffff8n], 81 [-7n, 31, 0x7ffffff9n], 82 [-6n, 31, 0x7ffffffan], 83 [-5n, 31, 0x7ffffffbn], 84 [-4n, 31, 0x7ffffffcn], 85 [-3n, 31, 0x7ffffffdn], 86 [-2n, 31, 0x7ffffffen], 87 [-1n, 31, 0x7fffffffn], 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, 0x7ffffffen], 99 [0x7fffffffn, 31, 0x7fffffffn], 100 [0n, 32, 0n], 101 [1n, 32, 1n], 102 [2n, 32, 2n], 103 [3n, 32, 3n], 104 [4n, 32, 4n], 105 [5n, 32, 5n], 106 [6n, 32, 6n], 107 [7n, 32, 7n], 108 [8n, 32, 8n], 109 [9n, 32, 9n], 110 [0x7ffffffen, 32, 0x7ffffffen], 111 [0x7fffffffn, 32, 0x7fffffffn], 112 ]; 113 114 function f(tests) { 115 for (let test of tests) { 116 let input = test[0], bits = test[1], expected = test[2]; 117 118 assertEq(BigInt.asUintN(bits, input), expected); 119 } 120 } 121 122 for (let i = 0; i < 10; ++i) { 123 f(tests); 124 }