tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

asIntN-digit64.js (8054B)


      1 // asIntN test specialised when the input is an Int64 value.
      2 
      3 const tests = [
      4  [-0x8000000000000000n, 0, 0n],
      5  [-0x7fffffffffffffffn, 0, 0n],
      6  [-0x7ffffffffffffffen, 0, 0n],
      7  [-0x100000001n, 0, 0n],
      8  [-0x100000000n, 0, 0n],
      9  [-0xffffffffn, 0, 0n],
     10  [-0xfffffffen, 0, 0n],
     11  [-0x80000001n, 0, 0n],
     12  [-0x80000000n, 0, 0n],
     13  [-0x7fffffffn, 0, 0n],
     14  [-0x7ffffffen, 0, 0n],
     15  [-9n, 0, 0n],
     16  [-8n, 0, 0n],
     17  [-7n, 0, 0n],
     18  [-6n, 0, 0n],
     19  [-5n, 0, 0n],
     20  [-4n, 0, 0n],
     21  [-3n, 0, 0n],
     22  [-2n, 0, 0n],
     23  [-1n, 0, 0n],
     24  [0n, 0, 0n],
     25  [1n, 0, 0n],
     26  [2n, 0, 0n],
     27  [3n, 0, 0n],
     28  [4n, 0, 0n],
     29  [5n, 0, 0n],
     30  [6n, 0, 0n],
     31  [7n, 0, 0n],
     32  [8n, 0, 0n],
     33  [9n, 0, 0n],
     34  [0x7ffffffen, 0, 0n],
     35  [0x7fffffffn, 0, 0n],
     36  [0x80000000n, 0, 0n],
     37  [0x80000001n, 0, 0n],
     38  [0xfffffffen, 0, 0n],
     39  [0xffffffffn, 0, 0n],
     40  [0x100000000n, 0, 0n],
     41  [0x100000001n, 0, 0n],
     42  [0x7ffffffffffffffen, 0, 0n],
     43  [0x7fffffffffffffffn, 0, 0n],
     44  [-0x8000000000000000n, 1, 0n],
     45  [-0x7fffffffffffffffn, 1, -1n],
     46  [-0x7ffffffffffffffen, 1, 0n],
     47  [-0x100000001n, 1, -1n],
     48  [-0x100000000n, 1, 0n],
     49  [-0xffffffffn, 1, -1n],
     50  [-0xfffffffen, 1, 0n],
     51  [-0x80000001n, 1, -1n],
     52  [-0x80000000n, 1, 0n],
     53  [-0x7fffffffn, 1, -1n],
     54  [-0x7ffffffen, 1, 0n],
     55  [-9n, 1, -1n],
     56  [-8n, 1, 0n],
     57  [-7n, 1, -1n],
     58  [-6n, 1, 0n],
     59  [-5n, 1, -1n],
     60  [-4n, 1, 0n],
     61  [-3n, 1, -1n],
     62  [-2n, 1, 0n],
     63  [-1n, 1, -1n],
     64  [0n, 1, 0n],
     65  [1n, 1, -1n],
     66  [2n, 1, 0n],
     67  [3n, 1, -1n],
     68  [4n, 1, 0n],
     69  [5n, 1, -1n],
     70  [6n, 1, 0n],
     71  [7n, 1, -1n],
     72  [8n, 1, 0n],
     73  [9n, 1, -1n],
     74  [0x7ffffffen, 1, 0n],
     75  [0x7fffffffn, 1, -1n],
     76  [0x80000000n, 1, 0n],
     77  [0x80000001n, 1, -1n],
     78  [0xfffffffen, 1, 0n],
     79  [0xffffffffn, 1, -1n],
     80  [0x100000000n, 1, 0n],
     81  [0x100000001n, 1, -1n],
     82  [0x7ffffffffffffffen, 1, 0n],
     83  [0x7fffffffffffffffn, 1, -1n],
     84  [-0x8000000000000000n, 2, 0n],
     85  [-0x7fffffffffffffffn, 2, 1n],
     86  [-0x7ffffffffffffffen, 2, -2n],
     87  [-0x100000001n, 2, -1n],
     88  [-0x100000000n, 2, 0n],
     89  [-0xffffffffn, 2, 1n],
     90  [-0xfffffffen, 2, -2n],
     91  [-0x80000001n, 2, -1n],
     92  [-0x80000000n, 2, 0n],
     93  [-0x7fffffffn, 2, 1n],
     94  [-0x7ffffffen, 2, -2n],
     95  [-9n, 2, -1n],
     96  [-8n, 2, 0n],
     97  [-7n, 2, 1n],
     98  [-6n, 2, -2n],
     99  [-5n, 2, -1n],
    100  [-4n, 2, 0n],
    101  [-3n, 2, 1n],
    102  [-2n, 2, -2n],
    103  [-1n, 2, -1n],
    104  [0n, 2, 0n],
    105  [1n, 2, 1n],
    106  [2n, 2, -2n],
    107  [3n, 2, -1n],
    108  [4n, 2, 0n],
    109  [5n, 2, 1n],
    110  [6n, 2, -2n],
    111  [7n, 2, -1n],
    112  [8n, 2, 0n],
    113  [9n, 2, 1n],
    114  [0x7ffffffen, 2, -2n],
    115  [0x7fffffffn, 2, -1n],
    116  [0x80000000n, 2, 0n],
    117  [0x80000001n, 2, 1n],
    118  [0xfffffffen, 2, -2n],
    119  [0xffffffffn, 2, -1n],
    120  [0x100000000n, 2, 0n],
    121  [0x100000001n, 2, 1n],
    122  [0x7ffffffffffffffen, 2, -2n],
    123  [0x7fffffffffffffffn, 2, -1n],
    124  [-0x8000000000000000n, 31, 0n],
    125  [-0x7fffffffffffffffn, 31, 1n],
    126  [-0x7ffffffffffffffen, 31, 2n],
    127  [-0x100000001n, 31, -1n],
    128  [-0x100000000n, 31, 0n],
    129  [-0xffffffffn, 31, 1n],
    130  [-0xfffffffen, 31, 2n],
    131  [-0x80000001n, 31, -1n],
    132  [-0x80000000n, 31, 0n],
    133  [-0x7fffffffn, 31, 1n],
    134  [-0x7ffffffen, 31, 2n],
    135  [-9n, 31, -9n],
    136  [-8n, 31, -8n],
    137  [-7n, 31, -7n],
    138  [-6n, 31, -6n],
    139  [-5n, 31, -5n],
    140  [-4n, 31, -4n],
    141  [-3n, 31, -3n],
    142  [-2n, 31, -2n],
    143  [-1n, 31, -1n],
    144  [0n, 31, 0n],
    145  [1n, 31, 1n],
    146  [2n, 31, 2n],
    147  [3n, 31, 3n],
    148  [4n, 31, 4n],
    149  [5n, 31, 5n],
    150  [6n, 31, 6n],
    151  [7n, 31, 7n],
    152  [8n, 31, 8n],
    153  [9n, 31, 9n],
    154  [0x7ffffffen, 31, -2n],
    155  [0x7fffffffn, 31, -1n],
    156  [0x80000000n, 31, 0n],
    157  [0x80000001n, 31, 1n],
    158  [0xfffffffen, 31, -2n],
    159  [0xffffffffn, 31, -1n],
    160  [0x100000000n, 31, 0n],
    161  [0x100000001n, 31, 1n],
    162  [0x7ffffffffffffffen, 31, -2n],
    163  [0x7fffffffffffffffn, 31, -1n],
    164  [-0x8000000000000000n, 32, 0n],
    165  [-0x7fffffffffffffffn, 32, 1n],
    166  [-0x7ffffffffffffffen, 32, 2n],
    167  [-0x100000001n, 32, -1n],
    168  [-0x100000000n, 32, 0n],
    169  [-0xffffffffn, 32, 1n],
    170  [-0xfffffffen, 32, 2n],
    171  [-0x80000001n, 32, 0x7fffffffn],
    172  [-0x80000000n, 32, -0x80000000n],
    173  [-0x7fffffffn, 32, -0x7fffffffn],
    174  [-0x7ffffffen, 32, -0x7ffffffen],
    175  [-9n, 32, -9n],
    176  [-8n, 32, -8n],
    177  [-7n, 32, -7n],
    178  [-6n, 32, -6n],
    179  [-5n, 32, -5n],
    180  [-4n, 32, -4n],
    181  [-3n, 32, -3n],
    182  [-2n, 32, -2n],
    183  [-1n, 32, -1n],
    184  [0n, 32, 0n],
    185  [1n, 32, 1n],
    186  [2n, 32, 2n],
    187  [3n, 32, 3n],
    188  [4n, 32, 4n],
    189  [5n, 32, 5n],
    190  [6n, 32, 6n],
    191  [7n, 32, 7n],
    192  [8n, 32, 8n],
    193  [9n, 32, 9n],
    194  [0x7ffffffen, 32, 0x7ffffffen],
    195  [0x7fffffffn, 32, 0x7fffffffn],
    196  [0x80000000n, 32, -0x80000000n],
    197  [0x80000001n, 32, -0x7fffffffn],
    198  [0xfffffffen, 32, -2n],
    199  [0xffffffffn, 32, -1n],
    200  [0x100000000n, 32, 0n],
    201  [0x100000001n, 32, 1n],
    202  [0x7ffffffffffffffen, 32, -2n],
    203  [0x7fffffffffffffffn, 32, -1n],
    204  [-0x8000000000000000n, 33, 0n],
    205  [-0x7fffffffffffffffn, 33, 1n],
    206  [-0x7ffffffffffffffen, 33, 2n],
    207  [-0x100000001n, 33, 0xffffffffn],
    208  [-0x100000000n, 33, -0x100000000n],
    209  [-0xffffffffn, 33, -0xffffffffn],
    210  [-0xfffffffen, 33, -0xfffffffen],
    211  [-0x80000001n, 33, -0x80000001n],
    212  [-0x80000000n, 33, -0x80000000n],
    213  [-0x7fffffffn, 33, -0x7fffffffn],
    214  [-0x7ffffffen, 33, -0x7ffffffen],
    215  [-9n, 33, -9n],
    216  [-8n, 33, -8n],
    217  [-7n, 33, -7n],
    218  [-6n, 33, -6n],
    219  [-5n, 33, -5n],
    220  [-4n, 33, -4n],
    221  [-3n, 33, -3n],
    222  [-2n, 33, -2n],
    223  [-1n, 33, -1n],
    224  [0n, 33, 0n],
    225  [1n, 33, 1n],
    226  [2n, 33, 2n],
    227  [3n, 33, 3n],
    228  [4n, 33, 4n],
    229  [5n, 33, 5n],
    230  [6n, 33, 6n],
    231  [7n, 33, 7n],
    232  [8n, 33, 8n],
    233  [9n, 33, 9n],
    234  [0x7ffffffen, 33, 0x7ffffffen],
    235  [0x7fffffffn, 33, 0x7fffffffn],
    236  [0x80000000n, 33, 0x80000000n],
    237  [0x80000001n, 33, 0x80000001n],
    238  [0xfffffffen, 33, 0xfffffffen],
    239  [0xffffffffn, 33, 0xffffffffn],
    240  [0x100000000n, 33, -0x100000000n],
    241  [0x100000001n, 33, -0xffffffffn],
    242  [0x7ffffffffffffffen, 33, -2n],
    243  [0x7fffffffffffffffn, 33, -1n],
    244  [-0x8000000000000000n, 63, 0n],
    245  [-0x7fffffffffffffffn, 63, 1n],
    246  [-0x7ffffffffffffffen, 63, 2n],
    247  [-0x100000001n, 63, -0x100000001n],
    248  [-0x100000000n, 63, -0x100000000n],
    249  [-0xffffffffn, 63, -0xffffffffn],
    250  [-0xfffffffen, 63, -0xfffffffen],
    251  [-0x80000001n, 63, -0x80000001n],
    252  [-0x80000000n, 63, -0x80000000n],
    253  [-0x7fffffffn, 63, -0x7fffffffn],
    254  [-0x7ffffffen, 63, -0x7ffffffen],
    255  [-9n, 63, -9n],
    256  [-8n, 63, -8n],
    257  [-7n, 63, -7n],
    258  [-6n, 63, -6n],
    259  [-5n, 63, -5n],
    260  [-4n, 63, -4n],
    261  [-3n, 63, -3n],
    262  [-2n, 63, -2n],
    263  [-1n, 63, -1n],
    264  [0n, 63, 0n],
    265  [1n, 63, 1n],
    266  [2n, 63, 2n],
    267  [3n, 63, 3n],
    268  [4n, 63, 4n],
    269  [5n, 63, 5n],
    270  [6n, 63, 6n],
    271  [7n, 63, 7n],
    272  [8n, 63, 8n],
    273  [9n, 63, 9n],
    274  [0x7ffffffen, 63, 0x7ffffffen],
    275  [0x7fffffffn, 63, 0x7fffffffn],
    276  [0x80000000n, 63, 0x80000000n],
    277  [0x80000001n, 63, 0x80000001n],
    278  [0xfffffffen, 63, 0xfffffffen],
    279  [0xffffffffn, 63, 0xffffffffn],
    280  [0x100000000n, 63, 0x100000000n],
    281  [0x100000001n, 63, 0x100000001n],
    282  [0x7ffffffffffffffen, 63, -2n],
    283  [0x7fffffffffffffffn, 63, -1n],
    284  [-0x8000000000000000n, 64, -0x8000000000000000n],
    285  [-0x7fffffffffffffffn, 64, -0x7fffffffffffffffn],
    286  [-0x7ffffffffffffffen, 64, -0x7ffffffffffffffen],
    287  [-0x100000001n, 64, -0x100000001n],
    288  [-0x100000000n, 64, -0x100000000n],
    289  [-0xffffffffn, 64, -0xffffffffn],
    290  [-0xfffffffen, 64, -0xfffffffen],
    291  [-0x80000001n, 64, -0x80000001n],
    292  [-0x80000000n, 64, -0x80000000n],
    293  [-0x7fffffffn, 64, -0x7fffffffn],
    294  [-0x7ffffffen, 64, -0x7ffffffen],
    295  [-9n, 64, -9n],
    296  [-8n, 64, -8n],
    297  [-7n, 64, -7n],
    298  [-6n, 64, -6n],
    299  [-5n, 64, -5n],
    300  [-4n, 64, -4n],
    301  [-3n, 64, -3n],
    302  [-2n, 64, -2n],
    303  [-1n, 64, -1n],
    304  [0n, 64, 0n],
    305  [1n, 64, 1n],
    306  [2n, 64, 2n],
    307  [3n, 64, 3n],
    308  [4n, 64, 4n],
    309  [5n, 64, 5n],
    310  [6n, 64, 6n],
    311  [7n, 64, 7n],
    312  [8n, 64, 8n],
    313  [9n, 64, 9n],
    314  [0x7ffffffen, 64, 0x7ffffffen],
    315  [0x7fffffffn, 64, 0x7fffffffn],
    316  [0x80000000n, 64, 0x80000000n],
    317  [0x80000001n, 64, 0x80000001n],
    318  [0xfffffffen, 64, 0xfffffffen],
    319  [0xffffffffn, 64, 0xffffffffn],
    320  [0x100000000n, 64, 0x100000000n],
    321  [0x100000001n, 64, 0x100000001n],
    322  [0x7ffffffffffffffen, 64, 0x7ffffffffffffffen],
    323  [0x7fffffffffffffffn, 64, 0x7fffffffffffffffn],
    324 ];
    325 
    326 function f(tests) {
    327  for (let test of tests) {
    328    let input = test[0], bits = test[1], expected = test[2];
    329 
    330    assertEq(BigInt.asIntN(bits, input), expected);
    331  }
    332 }
    333 
    334 for (let i = 0; i < 10; ++i) {
    335  f(tests);
    336 }