bigint-sub-64.js (25027B)
1 const tests = [ 2 [-0x8000000000000000n, -2n, -0x7ffffffffffffffen], 3 [-0x7fffffffffffffffn, -2n, -0x7ffffffffffffffdn], 4 [-0x7ffffffffffffffen, -2n, -0x7ffffffffffffffcn], 5 [-0x100000001n, -2n, -0xffffffffn], 6 [-0x100000000n, -2n, -0xfffffffen], 7 [-0xffffffffn, -2n, -0xfffffffdn], 8 [-0xfffffffen, -2n, -0xfffffffcn], 9 [-0x80000001n, -2n, -0x7fffffffn], 10 [-0x80000000n, -2n, -0x7ffffffen], 11 [-0x7fffffffn, -2n, -0x7ffffffdn], 12 [-0x7ffffffen, -2n, -0x7ffffffcn], 13 [-2n, -2n, 0n], 14 [-1n, -2n, 1n], 15 [0n, -2n, 2n], 16 [1n, -2n, 3n], 17 [2n, -2n, 4n], 18 [0x7ffffffen, -2n, 0x80000000n], 19 [0x7fffffffn, -2n, 0x80000001n], 20 [0x80000000n, -2n, 0x80000002n], 21 [0x80000001n, -2n, 0x80000003n], 22 [0xfffffffen, -2n, 0x100000000n], 23 [0xffffffffn, -2n, 0x100000001n], 24 [0x100000000n, -2n, 0x100000002n], 25 [0x100000001n, -2n, 0x100000003n], 26 [-0x8000000000000000n, -1n, -0x7fffffffffffffffn], 27 [-0x7fffffffffffffffn, -1n, -0x7ffffffffffffffen], 28 [-0x7ffffffffffffffen, -1n, -0x7ffffffffffffffdn], 29 [-0x100000001n, -1n, -0x100000000n], 30 [-0x100000000n, -1n, -0xffffffffn], 31 [-0xffffffffn, -1n, -0xfffffffen], 32 [-0xfffffffen, -1n, -0xfffffffdn], 33 [-0x80000001n, -1n, -0x80000000n], 34 [-0x80000000n, -1n, -0x7fffffffn], 35 [-0x7fffffffn, -1n, -0x7ffffffen], 36 [-0x7ffffffen, -1n, -0x7ffffffdn], 37 [-2n, -1n, -1n], 38 [-1n, -1n, 0n], 39 [0n, -1n, 1n], 40 [1n, -1n, 2n], 41 [2n, -1n, 3n], 42 [0x7ffffffen, -1n, 0x7fffffffn], 43 [0x7fffffffn, -1n, 0x80000000n], 44 [0x80000000n, -1n, 0x80000001n], 45 [0x80000001n, -1n, 0x80000002n], 46 [0xfffffffen, -1n, 0xffffffffn], 47 [0xffffffffn, -1n, 0x100000000n], 48 [0x100000000n, -1n, 0x100000001n], 49 [0x100000001n, -1n, 0x100000002n], 50 [0x7ffffffffffffffen, -1n, 0x7fffffffffffffffn], 51 [-0x8000000000000000n, 0n, -0x8000000000000000n], 52 [-0x7fffffffffffffffn, 0n, -0x7fffffffffffffffn], 53 [-0x7ffffffffffffffen, 0n, -0x7ffffffffffffffen], 54 [-0x100000001n, 0n, -0x100000001n], 55 [-0x100000000n, 0n, -0x100000000n], 56 [-0xffffffffn, 0n, -0xffffffffn], 57 [-0xfffffffen, 0n, -0xfffffffen], 58 [-0x80000001n, 0n, -0x80000001n], 59 [-0x80000000n, 0n, -0x80000000n], 60 [-0x7fffffffn, 0n, -0x7fffffffn], 61 [-0x7ffffffen, 0n, -0x7ffffffen], 62 [-2n, 0n, -2n], 63 [-1n, 0n, -1n], 64 [0n, 0n, 0n], 65 [1n, 0n, 1n], 66 [2n, 0n, 2n], 67 [0x7ffffffen, 0n, 0x7ffffffen], 68 [0x7fffffffn, 0n, 0x7fffffffn], 69 [0x80000000n, 0n, 0x80000000n], 70 [0x80000001n, 0n, 0x80000001n], 71 [0xfffffffen, 0n, 0xfffffffen], 72 [0xffffffffn, 0n, 0xffffffffn], 73 [0x100000000n, 0n, 0x100000000n], 74 [0x100000001n, 0n, 0x100000001n], 75 [0x7ffffffffffffffen, 0n, 0x7ffffffffffffffen], 76 [0x7fffffffffffffffn, 0n, 0x7fffffffffffffffn], 77 [-0x7fffffffffffffffn, 1n, -0x8000000000000000n], 78 [-0x7ffffffffffffffen, 1n, -0x7fffffffffffffffn], 79 [-0x100000001n, 1n, -0x100000002n], 80 [-0x100000000n, 1n, -0x100000001n], 81 [-0xffffffffn, 1n, -0x100000000n], 82 [-0xfffffffen, 1n, -0xffffffffn], 83 [-0x80000001n, 1n, -0x80000002n], 84 [-0x80000000n, 1n, -0x80000001n], 85 [-0x7fffffffn, 1n, -0x80000000n], 86 [-0x7ffffffen, 1n, -0x7fffffffn], 87 [-2n, 1n, -3n], 88 [-1n, 1n, -2n], 89 [0n, 1n, -1n], 90 [1n, 1n, 0n], 91 [2n, 1n, 1n], 92 [0x7ffffffen, 1n, 0x7ffffffdn], 93 [0x7fffffffn, 1n, 0x7ffffffen], 94 [0x80000000n, 1n, 0x7fffffffn], 95 [0x80000001n, 1n, 0x80000000n], 96 [0xfffffffen, 1n, 0xfffffffdn], 97 [0xffffffffn, 1n, 0xfffffffen], 98 [0x100000000n, 1n, 0xffffffffn], 99 [0x100000001n, 1n, 0x100000000n], 100 [0x7ffffffffffffffen, 1n, 0x7ffffffffffffffdn], 101 [0x7fffffffffffffffn, 1n, 0x7ffffffffffffffen], 102 [-0x7ffffffffffffffen, 2n, -0x8000000000000000n], 103 [-0x100000001n, 2n, -0x100000003n], 104 [-0x100000000n, 2n, -0x100000002n], 105 [-0xffffffffn, 2n, -0x100000001n], 106 [-0xfffffffen, 2n, -0x100000000n], 107 [-0x80000001n, 2n, -0x80000003n], 108 [-0x80000000n, 2n, -0x80000002n], 109 [-0x7fffffffn, 2n, -0x80000001n], 110 [-0x7ffffffen, 2n, -0x80000000n], 111 [-2n, 2n, -4n], 112 [-1n, 2n, -3n], 113 [0n, 2n, -2n], 114 [1n, 2n, -1n], 115 [2n, 2n, 0n], 116 [0x7ffffffen, 2n, 0x7ffffffcn], 117 [0x7fffffffn, 2n, 0x7ffffffdn], 118 [0x80000000n, 2n, 0x7ffffffen], 119 [0x80000001n, 2n, 0x7fffffffn], 120 [0xfffffffen, 2n, 0xfffffffcn], 121 [0xffffffffn, 2n, 0xfffffffdn], 122 [0x100000000n, 2n, 0xfffffffen], 123 [0x100000001n, 2n, 0xffffffffn], 124 [0x7ffffffffffffffen, 2n, 0x7ffffffffffffffcn], 125 [0x7fffffffffffffffn, 2n, 0x7ffffffffffffffdn], 126 [-0x100000001n, 0x7ffffffen, -0x17fffffffn], 127 [-0x100000000n, 0x7ffffffen, -0x17ffffffen], 128 [-0xffffffffn, 0x7ffffffen, -0x17ffffffdn], 129 [-0xfffffffen, 0x7ffffffen, -0x17ffffffcn], 130 [-0x80000001n, 0x7ffffffen, -0xffffffffn], 131 [-0x80000000n, 0x7ffffffen, -0xfffffffen], 132 [-0x7fffffffn, 0x7ffffffen, -0xfffffffdn], 133 [-0x7ffffffen, 0x7ffffffen, -0xfffffffcn], 134 [-2n, 0x7ffffffen, -0x80000000n], 135 [-1n, 0x7ffffffen, -0x7fffffffn], 136 [0n, 0x7ffffffen, -0x7ffffffen], 137 [1n, 0x7ffffffen, -0x7ffffffdn], 138 [2n, 0x7ffffffen, -0x7ffffffcn], 139 [0x7ffffffen, 0x7ffffffen, 0n], 140 [0x7fffffffn, 0x7ffffffen, 1n], 141 [0x80000000n, 0x7ffffffen, 2n], 142 [0x80000001n, 0x7ffffffen, 3n], 143 [0xfffffffen, 0x7ffffffen, 0x80000000n], 144 [0xffffffffn, 0x7ffffffen, 0x80000001n], 145 [0x100000000n, 0x7ffffffen, 0x80000002n], 146 [0x100000001n, 0x7ffffffen, 0x80000003n], 147 [0x7ffffffffffffffen, 0x7ffffffen, 0x7fffffff80000000n], 148 [0x7fffffffffffffffn, 0x7ffffffen, 0x7fffffff80000001n], 149 [-0x100000001n, 0x7fffffffn, -0x180000000n], 150 [-0x100000000n, 0x7fffffffn, -0x17fffffffn], 151 [-0xffffffffn, 0x7fffffffn, -0x17ffffffen], 152 [-0xfffffffen, 0x7fffffffn, -0x17ffffffdn], 153 [-0x80000001n, 0x7fffffffn, -0x100000000n], 154 [-0x80000000n, 0x7fffffffn, -0xffffffffn], 155 [-0x7fffffffn, 0x7fffffffn, -0xfffffffen], 156 [-0x7ffffffen, 0x7fffffffn, -0xfffffffdn], 157 [-2n, 0x7fffffffn, -0x80000001n], 158 [-1n, 0x7fffffffn, -0x80000000n], 159 [0n, 0x7fffffffn, -0x7fffffffn], 160 [1n, 0x7fffffffn, -0x7ffffffen], 161 [2n, 0x7fffffffn, -0x7ffffffdn], 162 [0x7ffffffen, 0x7fffffffn, -1n], 163 [0x7fffffffn, 0x7fffffffn, 0n], 164 [0x80000000n, 0x7fffffffn, 1n], 165 [0x80000001n, 0x7fffffffn, 2n], 166 [0xfffffffen, 0x7fffffffn, 0x7fffffffn], 167 [0xffffffffn, 0x7fffffffn, 0x80000000n], 168 [0x100000000n, 0x7fffffffn, 0x80000001n], 169 [0x100000001n, 0x7fffffffn, 0x80000002n], 170 [0x7ffffffffffffffen, 0x7fffffffn, 0x7fffffff7fffffffn], 171 [0x7fffffffffffffffn, 0x7fffffffn, 0x7fffffff80000000n], 172 [-0x100000001n, 0x80000000n, -0x180000001n], 173 [-0x100000000n, 0x80000000n, -0x180000000n], 174 [-0xffffffffn, 0x80000000n, -0x17fffffffn], 175 [-0xfffffffen, 0x80000000n, -0x17ffffffen], 176 [-0x80000001n, 0x80000000n, -0x100000001n], 177 [-0x80000000n, 0x80000000n, -0x100000000n], 178 [-0x7fffffffn, 0x80000000n, -0xffffffffn], 179 [-0x7ffffffen, 0x80000000n, -0xfffffffen], 180 [-2n, 0x80000000n, -0x80000002n], 181 [-1n, 0x80000000n, -0x80000001n], 182 [0n, 0x80000000n, -0x80000000n], 183 [1n, 0x80000000n, -0x7fffffffn], 184 [2n, 0x80000000n, -0x7ffffffen], 185 [0x7ffffffen, 0x80000000n, -2n], 186 [0x7fffffffn, 0x80000000n, -1n], 187 [0x80000000n, 0x80000000n, 0n], 188 [0x80000001n, 0x80000000n, 1n], 189 [0xfffffffen, 0x80000000n, 0x7ffffffen], 190 [0xffffffffn, 0x80000000n, 0x7fffffffn], 191 [0x100000000n, 0x80000000n, 0x80000000n], 192 [0x100000001n, 0x80000000n, 0x80000001n], 193 [0x7ffffffffffffffen, 0x80000000n, 0x7fffffff7ffffffen], 194 [0x7fffffffffffffffn, 0x80000000n, 0x7fffffff7fffffffn], 195 [-0x100000001n, 0x80000001n, -0x180000002n], 196 [-0x100000000n, 0x80000001n, -0x180000001n], 197 [-0xffffffffn, 0x80000001n, -0x180000000n], 198 [-0xfffffffen, 0x80000001n, -0x17fffffffn], 199 [-0x80000001n, 0x80000001n, -0x100000002n], 200 [-0x80000000n, 0x80000001n, -0x100000001n], 201 [-0x7fffffffn, 0x80000001n, -0x100000000n], 202 [-0x7ffffffen, 0x80000001n, -0xffffffffn], 203 [-2n, 0x80000001n, -0x80000003n], 204 [-1n, 0x80000001n, -0x80000002n], 205 [0n, 0x80000001n, -0x80000001n], 206 [1n, 0x80000001n, -0x80000000n], 207 [2n, 0x80000001n, -0x7fffffffn], 208 [0x7ffffffen, 0x80000001n, -3n], 209 [0x7fffffffn, 0x80000001n, -2n], 210 [0x80000000n, 0x80000001n, -1n], 211 [0x80000001n, 0x80000001n, 0n], 212 [0xfffffffen, 0x80000001n, 0x7ffffffdn], 213 [0xffffffffn, 0x80000001n, 0x7ffffffen], 214 [0x100000000n, 0x80000001n, 0x7fffffffn], 215 [0x100000001n, 0x80000001n, 0x80000000n], 216 [0x7ffffffffffffffen, 0x80000001n, 0x7fffffff7ffffffdn], 217 [0x7fffffffffffffffn, 0x80000001n, 0x7fffffff7ffffffen], 218 [-0x8000000000000000n, -0x80000001n, -0x7fffffff7fffffffn], 219 [-0x7fffffffffffffffn, -0x80000001n, -0x7fffffff7ffffffen], 220 [-0x7ffffffffffffffen, -0x80000001n, -0x7fffffff7ffffffdn], 221 [-0x100000001n, -0x80000001n, -0x80000000n], 222 [-0x100000000n, -0x80000001n, -0x7fffffffn], 223 [-0xffffffffn, -0x80000001n, -0x7ffffffen], 224 [-0xfffffffen, -0x80000001n, -0x7ffffffdn], 225 [-0x80000001n, -0x80000001n, 0n], 226 [-0x80000000n, -0x80000001n, 1n], 227 [-0x7fffffffn, -0x80000001n, 2n], 228 [-0x7ffffffen, -0x80000001n, 3n], 229 [-2n, -0x80000001n, 0x7fffffffn], 230 [-1n, -0x80000001n, 0x80000000n], 231 [0n, -0x80000001n, 0x80000001n], 232 [1n, -0x80000001n, 0x80000002n], 233 [2n, -0x80000001n, 0x80000003n], 234 [0x7ffffffen, -0x80000001n, 0xffffffffn], 235 [0x7fffffffn, -0x80000001n, 0x100000000n], 236 [0x80000000n, -0x80000001n, 0x100000001n], 237 [0x80000001n, -0x80000001n, 0x100000002n], 238 [0xfffffffen, -0x80000001n, 0x17fffffffn], 239 [0xffffffffn, -0x80000001n, 0x180000000n], 240 [0x100000000n, -0x80000001n, 0x180000001n], 241 [0x100000001n, -0x80000001n, 0x180000002n], 242 [-0x8000000000000000n, -0x80000000n, -0x7fffffff80000000n], 243 [-0x7fffffffffffffffn, -0x80000000n, -0x7fffffff7fffffffn], 244 [-0x7ffffffffffffffen, -0x80000000n, -0x7fffffff7ffffffen], 245 [-0x100000001n, -0x80000000n, -0x80000001n], 246 [-0x100000000n, -0x80000000n, -0x80000000n], 247 [-0xffffffffn, -0x80000000n, -0x7fffffffn], 248 [-0xfffffffen, -0x80000000n, -0x7ffffffen], 249 [-0x80000001n, -0x80000000n, -1n], 250 [-0x80000000n, -0x80000000n, 0n], 251 [-0x7fffffffn, -0x80000000n, 1n], 252 [-0x7ffffffen, -0x80000000n, 2n], 253 [-2n, -0x80000000n, 0x7ffffffen], 254 [-1n, -0x80000000n, 0x7fffffffn], 255 [0n, -0x80000000n, 0x80000000n], 256 [1n, -0x80000000n, 0x80000001n], 257 [2n, -0x80000000n, 0x80000002n], 258 [0x7ffffffen, -0x80000000n, 0xfffffffen], 259 [0x7fffffffn, -0x80000000n, 0xffffffffn], 260 [0x80000000n, -0x80000000n, 0x100000000n], 261 [0x80000001n, -0x80000000n, 0x100000001n], 262 [0xfffffffen, -0x80000000n, 0x17ffffffen], 263 [0xffffffffn, -0x80000000n, 0x17fffffffn], 264 [0x100000000n, -0x80000000n, 0x180000000n], 265 [0x100000001n, -0x80000000n, 0x180000001n], 266 [-0x8000000000000000n, -0x7fffffffn, -0x7fffffff80000001n], 267 [-0x7fffffffffffffffn, -0x7fffffffn, -0x7fffffff80000000n], 268 [-0x7ffffffffffffffen, -0x7fffffffn, -0x7fffffff7fffffffn], 269 [-0x100000001n, -0x7fffffffn, -0x80000002n], 270 [-0x100000000n, -0x7fffffffn, -0x80000001n], 271 [-0xffffffffn, -0x7fffffffn, -0x80000000n], 272 [-0xfffffffen, -0x7fffffffn, -0x7fffffffn], 273 [-0x80000001n, -0x7fffffffn, -2n], 274 [-0x80000000n, -0x7fffffffn, -1n], 275 [-0x7fffffffn, -0x7fffffffn, 0n], 276 [-0x7ffffffen, -0x7fffffffn, 1n], 277 [-2n, -0x7fffffffn, 0x7ffffffdn], 278 [-1n, -0x7fffffffn, 0x7ffffffen], 279 [0n, -0x7fffffffn, 0x7fffffffn], 280 [1n, -0x7fffffffn, 0x80000000n], 281 [2n, -0x7fffffffn, 0x80000001n], 282 [0x7ffffffen, -0x7fffffffn, 0xfffffffdn], 283 [0x7fffffffn, -0x7fffffffn, 0xfffffffen], 284 [0x80000000n, -0x7fffffffn, 0xffffffffn], 285 [0x80000001n, -0x7fffffffn, 0x100000000n], 286 [0xfffffffen, -0x7fffffffn, 0x17ffffffdn], 287 [0xffffffffn, -0x7fffffffn, 0x17ffffffen], 288 [0x100000000n, -0x7fffffffn, 0x17fffffffn], 289 [0x100000001n, -0x7fffffffn, 0x180000000n], 290 [-0x8000000000000000n, -0x7ffffffen, -0x7fffffff80000002n], 291 [-0x7fffffffffffffffn, -0x7ffffffen, -0x7fffffff80000001n], 292 [-0x7ffffffffffffffen, -0x7ffffffen, -0x7fffffff80000000n], 293 [-0x100000001n, -0x7ffffffen, -0x80000003n], 294 [-0x100000000n, -0x7ffffffen, -0x80000002n], 295 [-0xffffffffn, -0x7ffffffen, -0x80000001n], 296 [-0xfffffffen, -0x7ffffffen, -0x80000000n], 297 [-0x80000001n, -0x7ffffffen, -3n], 298 [-0x80000000n, -0x7ffffffen, -2n], 299 [-0x7fffffffn, -0x7ffffffen, -1n], 300 [-0x7ffffffen, -0x7ffffffen, 0n], 301 [-2n, -0x7ffffffen, 0x7ffffffcn], 302 [-1n, -0x7ffffffen, 0x7ffffffdn], 303 [0n, -0x7ffffffen, 0x7ffffffen], 304 [1n, -0x7ffffffen, 0x7fffffffn], 305 [2n, -0x7ffffffen, 0x80000000n], 306 [0x7ffffffen, -0x7ffffffen, 0xfffffffcn], 307 [0x7fffffffn, -0x7ffffffen, 0xfffffffdn], 308 [0x80000000n, -0x7ffffffen, 0xfffffffen], 309 [0x80000001n, -0x7ffffffen, 0xffffffffn], 310 [0xfffffffen, -0x7ffffffen, 0x17ffffffcn], 311 [0xffffffffn, -0x7ffffffen, 0x17ffffffdn], 312 [0x100000000n, -0x7ffffffen, 0x17ffffffen], 313 [0x100000001n, -0x7ffffffen, 0x17fffffffn], 314 [-0x100000001n, 0xfffffffen, -0x1ffffffffn], 315 [-0x100000000n, 0xfffffffen, -0x1fffffffen], 316 [-0xffffffffn, 0xfffffffen, -0x1fffffffdn], 317 [-0xfffffffen, 0xfffffffen, -0x1fffffffcn], 318 [-0x80000001n, 0xfffffffen, -0x17fffffffn], 319 [-0x80000000n, 0xfffffffen, -0x17ffffffen], 320 [-0x7fffffffn, 0xfffffffen, -0x17ffffffdn], 321 [-0x7ffffffen, 0xfffffffen, -0x17ffffffcn], 322 [-2n, 0xfffffffen, -0x100000000n], 323 [-1n, 0xfffffffen, -0xffffffffn], 324 [0n, 0xfffffffen, -0xfffffffen], 325 [1n, 0xfffffffen, -0xfffffffdn], 326 [2n, 0xfffffffen, -0xfffffffcn], 327 [0x7ffffffen, 0xfffffffen, -0x80000000n], 328 [0x7fffffffn, 0xfffffffen, -0x7fffffffn], 329 [0x80000000n, 0xfffffffen, -0x7ffffffen], 330 [0x80000001n, 0xfffffffen, -0x7ffffffdn], 331 [0xfffffffen, 0xfffffffen, 0n], 332 [0xffffffffn, 0xfffffffen, 1n], 333 [0x100000000n, 0xfffffffen, 2n], 334 [0x100000001n, 0xfffffffen, 3n], 335 [0x7ffffffffffffffen, 0xfffffffen, 0x7fffffff00000000n], 336 [0x7fffffffffffffffn, 0xfffffffen, 0x7fffffff00000001n], 337 [-0x100000001n, 0xffffffffn, -0x200000000n], 338 [-0x100000000n, 0xffffffffn, -0x1ffffffffn], 339 [-0xffffffffn, 0xffffffffn, -0x1fffffffen], 340 [-0xfffffffen, 0xffffffffn, -0x1fffffffdn], 341 [-0x80000001n, 0xffffffffn, -0x180000000n], 342 [-0x80000000n, 0xffffffffn, -0x17fffffffn], 343 [-0x7fffffffn, 0xffffffffn, -0x17ffffffen], 344 [-0x7ffffffen, 0xffffffffn, -0x17ffffffdn], 345 [-2n, 0xffffffffn, -0x100000001n], 346 [-1n, 0xffffffffn, -0x100000000n], 347 [0n, 0xffffffffn, -0xffffffffn], 348 [1n, 0xffffffffn, -0xfffffffen], 349 [2n, 0xffffffffn, -0xfffffffdn], 350 [0x7ffffffen, 0xffffffffn, -0x80000001n], 351 [0x7fffffffn, 0xffffffffn, -0x80000000n], 352 [0x80000000n, 0xffffffffn, -0x7fffffffn], 353 [0x80000001n, 0xffffffffn, -0x7ffffffen], 354 [0xfffffffen, 0xffffffffn, -1n], 355 [0xffffffffn, 0xffffffffn, 0n], 356 [0x100000000n, 0xffffffffn, 1n], 357 [0x100000001n, 0xffffffffn, 2n], 358 [0x7ffffffffffffffen, 0xffffffffn, 0x7ffffffeffffffffn], 359 [0x7fffffffffffffffn, 0xffffffffn, 0x7fffffff00000000n], 360 [-0x100000001n, 0x100000000n, -0x200000001n], 361 [-0x100000000n, 0x100000000n, -0x200000000n], 362 [-0xffffffffn, 0x100000000n, -0x1ffffffffn], 363 [-0xfffffffen, 0x100000000n, -0x1fffffffen], 364 [-0x80000001n, 0x100000000n, -0x180000001n], 365 [-0x80000000n, 0x100000000n, -0x180000000n], 366 [-0x7fffffffn, 0x100000000n, -0x17fffffffn], 367 [-0x7ffffffen, 0x100000000n, -0x17ffffffen], 368 [-2n, 0x100000000n, -0x100000002n], 369 [-1n, 0x100000000n, -0x100000001n], 370 [0n, 0x100000000n, -0x100000000n], 371 [1n, 0x100000000n, -0xffffffffn], 372 [2n, 0x100000000n, -0xfffffffen], 373 [0x7ffffffen, 0x100000000n, -0x80000002n], 374 [0x7fffffffn, 0x100000000n, -0x80000001n], 375 [0x80000000n, 0x100000000n, -0x80000000n], 376 [0x80000001n, 0x100000000n, -0x7fffffffn], 377 [0xfffffffen, 0x100000000n, -2n], 378 [0xffffffffn, 0x100000000n, -1n], 379 [0x100000000n, 0x100000000n, 0n], 380 [0x100000001n, 0x100000000n, 1n], 381 [0x7ffffffffffffffen, 0x100000000n, 0x7ffffffefffffffen], 382 [0x7fffffffffffffffn, 0x100000000n, 0x7ffffffeffffffffn], 383 [-0x100000001n, 0x100000001n, -0x200000002n], 384 [-0x100000000n, 0x100000001n, -0x200000001n], 385 [-0xffffffffn, 0x100000001n, -0x200000000n], 386 [-0xfffffffen, 0x100000001n, -0x1ffffffffn], 387 [-0x80000001n, 0x100000001n, -0x180000002n], 388 [-0x80000000n, 0x100000001n, -0x180000001n], 389 [-0x7fffffffn, 0x100000001n, -0x180000000n], 390 [-0x7ffffffen, 0x100000001n, -0x17fffffffn], 391 [-2n, 0x100000001n, -0x100000003n], 392 [-1n, 0x100000001n, -0x100000002n], 393 [0n, 0x100000001n, -0x100000001n], 394 [1n, 0x100000001n, -0x100000000n], 395 [2n, 0x100000001n, -0xffffffffn], 396 [0x7ffffffen, 0x100000001n, -0x80000003n], 397 [0x7fffffffn, 0x100000001n, -0x80000002n], 398 [0x80000000n, 0x100000001n, -0x80000001n], 399 [0x80000001n, 0x100000001n, -0x80000000n], 400 [0xfffffffen, 0x100000001n, -3n], 401 [0xffffffffn, 0x100000001n, -2n], 402 [0x100000000n, 0x100000001n, -1n], 403 [0x100000001n, 0x100000001n, 0n], 404 [0x7ffffffffffffffen, 0x100000001n, 0x7ffffffefffffffdn], 405 [0x7fffffffffffffffn, 0x100000001n, 0x7ffffffefffffffen], 406 [-0x8000000000000000n, -0x100000001n, -0x7ffffffeffffffffn], 407 [-0x7fffffffffffffffn, -0x100000001n, -0x7ffffffefffffffen], 408 [-0x7ffffffffffffffen, -0x100000001n, -0x7ffffffefffffffdn], 409 [-0x100000001n, -0x100000001n, 0n], 410 [-0x100000000n, -0x100000001n, 1n], 411 [-0xffffffffn, -0x100000001n, 2n], 412 [-0xfffffffen, -0x100000001n, 3n], 413 [-0x80000001n, -0x100000001n, 0x80000000n], 414 [-0x80000000n, -0x100000001n, 0x80000001n], 415 [-0x7fffffffn, -0x100000001n, 0x80000002n], 416 [-0x7ffffffen, -0x100000001n, 0x80000003n], 417 [-2n, -0x100000001n, 0xffffffffn], 418 [-1n, -0x100000001n, 0x100000000n], 419 [0n, -0x100000001n, 0x100000001n], 420 [1n, -0x100000001n, 0x100000002n], 421 [2n, -0x100000001n, 0x100000003n], 422 [0x7ffffffen, -0x100000001n, 0x17fffffffn], 423 [0x7fffffffn, -0x100000001n, 0x180000000n], 424 [0x80000000n, -0x100000001n, 0x180000001n], 425 [0x80000001n, -0x100000001n, 0x180000002n], 426 [0xfffffffen, -0x100000001n, 0x1ffffffffn], 427 [0xffffffffn, -0x100000001n, 0x200000000n], 428 [0x100000000n, -0x100000001n, 0x200000001n], 429 [0x100000001n, -0x100000001n, 0x200000002n], 430 [-0x8000000000000000n, -0x100000000n, -0x7fffffff00000000n], 431 [-0x7fffffffffffffffn, -0x100000000n, -0x7ffffffeffffffffn], 432 [-0x7ffffffffffffffen, -0x100000000n, -0x7ffffffefffffffen], 433 [-0x100000001n, -0x100000000n, -1n], 434 [-0x100000000n, -0x100000000n, 0n], 435 [-0xffffffffn, -0x100000000n, 1n], 436 [-0xfffffffen, -0x100000000n, 2n], 437 [-0x80000001n, -0x100000000n, 0x7fffffffn], 438 [-0x80000000n, -0x100000000n, 0x80000000n], 439 [-0x7fffffffn, -0x100000000n, 0x80000001n], 440 [-0x7ffffffen, -0x100000000n, 0x80000002n], 441 [-2n, -0x100000000n, 0xfffffffen], 442 [-1n, -0x100000000n, 0xffffffffn], 443 [0n, -0x100000000n, 0x100000000n], 444 [1n, -0x100000000n, 0x100000001n], 445 [2n, -0x100000000n, 0x100000002n], 446 [0x7ffffffen, -0x100000000n, 0x17ffffffen], 447 [0x7fffffffn, -0x100000000n, 0x17fffffffn], 448 [0x80000000n, -0x100000000n, 0x180000000n], 449 [0x80000001n, -0x100000000n, 0x180000001n], 450 [0xfffffffen, -0x100000000n, 0x1fffffffen], 451 [0xffffffffn, -0x100000000n, 0x1ffffffffn], 452 [0x100000000n, -0x100000000n, 0x200000000n], 453 [0x100000001n, -0x100000000n, 0x200000001n], 454 [-0x8000000000000000n, -0xffffffffn, -0x7fffffff00000001n], 455 [-0x7fffffffffffffffn, -0xffffffffn, -0x7fffffff00000000n], 456 [-0x7ffffffffffffffen, -0xffffffffn, -0x7ffffffeffffffffn], 457 [-0x100000001n, -0xffffffffn, -2n], 458 [-0x100000000n, -0xffffffffn, -1n], 459 [-0xffffffffn, -0xffffffffn, 0n], 460 [-0xfffffffen, -0xffffffffn, 1n], 461 [-0x80000001n, -0xffffffffn, 0x7ffffffen], 462 [-0x80000000n, -0xffffffffn, 0x7fffffffn], 463 [-0x7fffffffn, -0xffffffffn, 0x80000000n], 464 [-0x7ffffffen, -0xffffffffn, 0x80000001n], 465 [-2n, -0xffffffffn, 0xfffffffdn], 466 [-1n, -0xffffffffn, 0xfffffffen], 467 [0n, -0xffffffffn, 0xffffffffn], 468 [1n, -0xffffffffn, 0x100000000n], 469 [2n, -0xffffffffn, 0x100000001n], 470 [0x7ffffffen, -0xffffffffn, 0x17ffffffdn], 471 [0x7fffffffn, -0xffffffffn, 0x17ffffffen], 472 [0x80000000n, -0xffffffffn, 0x17fffffffn], 473 [0x80000001n, -0xffffffffn, 0x180000000n], 474 [0xfffffffen, -0xffffffffn, 0x1fffffffdn], 475 [0xffffffffn, -0xffffffffn, 0x1fffffffen], 476 [0x100000000n, -0xffffffffn, 0x1ffffffffn], 477 [0x100000001n, -0xffffffffn, 0x200000000n], 478 [-0x8000000000000000n, -0xfffffffen, -0x7fffffff00000002n], 479 [-0x7fffffffffffffffn, -0xfffffffen, -0x7fffffff00000001n], 480 [-0x7ffffffffffffffen, -0xfffffffen, -0x7fffffff00000000n], 481 [-0x100000001n, -0xfffffffen, -3n], 482 [-0x100000000n, -0xfffffffen, -2n], 483 [-0xffffffffn, -0xfffffffen, -1n], 484 [-0xfffffffen, -0xfffffffen, 0n], 485 [-0x80000001n, -0xfffffffen, 0x7ffffffdn], 486 [-0x80000000n, -0xfffffffen, 0x7ffffffen], 487 [-0x7fffffffn, -0xfffffffen, 0x7fffffffn], 488 [-0x7ffffffen, -0xfffffffen, 0x80000000n], 489 [-2n, -0xfffffffen, 0xfffffffcn], 490 [-1n, -0xfffffffen, 0xfffffffdn], 491 [0n, -0xfffffffen, 0xfffffffen], 492 [1n, -0xfffffffen, 0xffffffffn], 493 [2n, -0xfffffffen, 0x100000000n], 494 [0x7ffffffen, -0xfffffffen, 0x17ffffffcn], 495 [0x7fffffffn, -0xfffffffen, 0x17ffffffdn], 496 [0x80000000n, -0xfffffffen, 0x17ffffffen], 497 [0x80000001n, -0xfffffffen, 0x17fffffffn], 498 [0xfffffffen, -0xfffffffen, 0x1fffffffcn], 499 [0xffffffffn, -0xfffffffen, 0x1fffffffdn], 500 [0x100000000n, -0xfffffffen, 0x1fffffffen], 501 [0x100000001n, -0xfffffffen, 0x1ffffffffn], 502 [-2n, 0x7ffffffffffffffen, -0x8000000000000000n], 503 [-1n, 0x7ffffffffffffffen, -0x7fffffffffffffffn], 504 [0n, 0x7ffffffffffffffen, -0x7ffffffffffffffen], 505 [1n, 0x7ffffffffffffffen, -0x7ffffffffffffffdn], 506 [2n, 0x7ffffffffffffffen, -0x7ffffffffffffffcn], 507 [0x7ffffffen, 0x7ffffffffffffffen, -0x7fffffff80000000n], 508 [0x7fffffffn, 0x7ffffffffffffffen, -0x7fffffff7fffffffn], 509 [0x80000000n, 0x7ffffffffffffffen, -0x7fffffff7ffffffen], 510 [0x80000001n, 0x7ffffffffffffffen, -0x7fffffff7ffffffdn], 511 [0xfffffffen, 0x7ffffffffffffffen, -0x7fffffff00000000n], 512 [0xffffffffn, 0x7ffffffffffffffen, -0x7ffffffeffffffffn], 513 [0x100000000n, 0x7ffffffffffffffen, -0x7ffffffefffffffen], 514 [0x100000001n, 0x7ffffffffffffffen, -0x7ffffffefffffffdn], 515 [0x7ffffffffffffffen, 0x7ffffffffffffffen, 0n], 516 [0x7fffffffffffffffn, 0x7ffffffffffffffen, 1n], 517 [-1n, 0x7fffffffffffffffn, -0x8000000000000000n], 518 [0n, 0x7fffffffffffffffn, -0x7fffffffffffffffn], 519 [1n, 0x7fffffffffffffffn, -0x7ffffffffffffffen], 520 [2n, 0x7fffffffffffffffn, -0x7ffffffffffffffdn], 521 [0x7ffffffen, 0x7fffffffffffffffn, -0x7fffffff80000001n], 522 [0x7fffffffn, 0x7fffffffffffffffn, -0x7fffffff80000000n], 523 [0x80000000n, 0x7fffffffffffffffn, -0x7fffffff7fffffffn], 524 [0x80000001n, 0x7fffffffffffffffn, -0x7fffffff7ffffffen], 525 [0xfffffffen, 0x7fffffffffffffffn, -0x7fffffff00000001n], 526 [0xffffffffn, 0x7fffffffffffffffn, -0x7fffffff00000000n], 527 [0x100000000n, 0x7fffffffffffffffn, -0x7ffffffeffffffffn], 528 [0x100000001n, 0x7fffffffffffffffn, -0x7ffffffefffffffen], 529 [0x7ffffffffffffffen, 0x7fffffffffffffffn, -1n], 530 [0x7fffffffffffffffn, 0x7fffffffffffffffn, 0n], 531 [-0x8000000000000000n, -0x8000000000000000n, 0n], 532 [-0x7fffffffffffffffn, -0x8000000000000000n, 1n], 533 [-0x7ffffffffffffffen, -0x8000000000000000n, 2n], 534 [-0x100000001n, -0x8000000000000000n, 0x7ffffffeffffffffn], 535 [-0x100000000n, -0x8000000000000000n, 0x7fffffff00000000n], 536 [-0xffffffffn, -0x8000000000000000n, 0x7fffffff00000001n], 537 [-0xfffffffen, -0x8000000000000000n, 0x7fffffff00000002n], 538 [-0x80000001n, -0x8000000000000000n, 0x7fffffff7fffffffn], 539 [-0x80000000n, -0x8000000000000000n, 0x7fffffff80000000n], 540 [-0x7fffffffn, -0x8000000000000000n, 0x7fffffff80000001n], 541 [-0x7ffffffen, -0x8000000000000000n, 0x7fffffff80000002n], 542 [-2n, -0x8000000000000000n, 0x7ffffffffffffffen], 543 [-1n, -0x8000000000000000n, 0x7fffffffffffffffn], 544 [-0x8000000000000000n, -0x7fffffffffffffffn, -1n], 545 [-0x7fffffffffffffffn, -0x7fffffffffffffffn, 0n], 546 [-0x7ffffffffffffffen, -0x7fffffffffffffffn, 1n], 547 [-0x100000001n, -0x7fffffffffffffffn, 0x7ffffffefffffffen], 548 [-0x100000000n, -0x7fffffffffffffffn, 0x7ffffffeffffffffn], 549 [-0xffffffffn, -0x7fffffffffffffffn, 0x7fffffff00000000n], 550 [-0xfffffffen, -0x7fffffffffffffffn, 0x7fffffff00000001n], 551 [-0x80000001n, -0x7fffffffffffffffn, 0x7fffffff7ffffffen], 552 [-0x80000000n, -0x7fffffffffffffffn, 0x7fffffff7fffffffn], 553 [-0x7fffffffn, -0x7fffffffffffffffn, 0x7fffffff80000000n], 554 [-0x7ffffffen, -0x7fffffffffffffffn, 0x7fffffff80000001n], 555 [-2n, -0x7fffffffffffffffn, 0x7ffffffffffffffdn], 556 [-1n, -0x7fffffffffffffffn, 0x7ffffffffffffffen], 557 [0n, -0x7fffffffffffffffn, 0x7fffffffffffffffn], 558 [-0x8000000000000000n, -0x7ffffffffffffffen, -2n], 559 [-0x7fffffffffffffffn, -0x7ffffffffffffffen, -1n], 560 [-0x7ffffffffffffffen, -0x7ffffffffffffffen, 0n], 561 [-0x100000001n, -0x7ffffffffffffffen, 0x7ffffffefffffffdn], 562 [-0x100000000n, -0x7ffffffffffffffen, 0x7ffffffefffffffen], 563 [-0xffffffffn, -0x7ffffffffffffffen, 0x7ffffffeffffffffn], 564 [-0xfffffffen, -0x7ffffffffffffffen, 0x7fffffff00000000n], 565 [-0x80000001n, -0x7ffffffffffffffen, 0x7fffffff7ffffffdn], 566 [-0x80000000n, -0x7ffffffffffffffen, 0x7fffffff7ffffffen], 567 [-0x7fffffffn, -0x7ffffffffffffffen, 0x7fffffff7fffffffn], 568 [-0x7ffffffen, -0x7ffffffffffffffen, 0x7fffffff80000000n], 569 [-2n, -0x7ffffffffffffffen, 0x7ffffffffffffffcn], 570 [-1n, -0x7ffffffffffffffen, 0x7ffffffffffffffdn], 571 [0n, -0x7ffffffffffffffen, 0x7ffffffffffffffen], 572 [1n, -0x7ffffffffffffffen, 0x7fffffffffffffffn], 573 ]; 574 575 function f(tests) { 576 for (let test of tests) { 577 let lhs = test[0], rhs = test[1], expected = test[2]; 578 assertEq(BigInt.asIntN(64, lhs), lhs); 579 assertEq(BigInt.asIntN(64, rhs), rhs); 580 assertEq(BigInt.asIntN(64, expected), expected); 581 582 assertEq(lhs - rhs, expected); 583 } 584 } 585 586 for (let i = 0; i < 10; ++i) { 587 f(tests); 588 }