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