tor-browser

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

asUintN-digit64.js (7976B)


      1 // asUintN 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, 3n],
     88  [-0x100000000n, 2, 0n],
     89  [-0xffffffffn, 2, 1n],
     90  [-0xfffffffen, 2, 2n],
     91  [-0x80000001n, 2, 3n],
     92  [-0x80000000n, 2, 0n],
     93  [-0x7fffffffn, 2, 1n],
     94  [-0x7ffffffen, 2, 2n],
     95  [-9n, 2, 3n],
     96  [-8n, 2, 0n],
     97  [-7n, 2, 1n],
     98  [-6n, 2, 2n],
     99  [-5n, 2, 3n],
    100  [-4n, 2, 0n],
    101  [-3n, 2, 1n],
    102  [-2n, 2, 2n],
    103  [-1n, 2, 3n],
    104  [0n, 2, 0n],
    105  [1n, 2, 1n],
    106  [2n, 2, 2n],
    107  [3n, 2, 3n],
    108  [4n, 2, 0n],
    109  [5n, 2, 1n],
    110  [6n, 2, 2n],
    111  [7n, 2, 3n],
    112  [8n, 2, 0n],
    113  [9n, 2, 1n],
    114  [0x7ffffffen, 2, 2n],
    115  [0x7fffffffn, 2, 3n],
    116  [0x80000000n, 2, 0n],
    117  [0x80000001n, 2, 1n],
    118  [0xfffffffen, 2, 2n],
    119  [0xffffffffn, 2, 3n],
    120  [0x100000000n, 2, 0n],
    121  [0x100000001n, 2, 1n],
    122  [0x7ffffffffffffffen, 2, 2n],
    123  [0x7fffffffffffffffn, 2, 3n],
    124  [-0x8000000000000000n, 31, 0n],
    125  [-0x7fffffffffffffffn, 31, 1n],
    126  [-0x7ffffffffffffffen, 31, 2n],
    127  [-0x100000001n, 31, 0x7fffffffn],
    128  [-0x100000000n, 31, 0n],
    129  [-0xffffffffn, 31, 1n],
    130  [-0xfffffffen, 31, 2n],
    131  [-0x80000001n, 31, 0x7fffffffn],
    132  [-0x80000000n, 31, 0n],
    133  [-0x7fffffffn, 31, 1n],
    134  [-0x7ffffffen, 31, 2n],
    135  [-9n, 31, 0x7ffffff7n],
    136  [-8n, 31, 0x7ffffff8n],
    137  [-7n, 31, 0x7ffffff9n],
    138  [-6n, 31, 0x7ffffffan],
    139  [-5n, 31, 0x7ffffffbn],
    140  [-4n, 31, 0x7ffffffcn],
    141  [-3n, 31, 0x7ffffffdn],
    142  [-2n, 31, 0x7ffffffen],
    143  [-1n, 31, 0x7fffffffn],
    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, 0x7ffffffen],
    155  [0x7fffffffn, 31, 0x7fffffffn],
    156  [0x80000000n, 31, 0n],
    157  [0x80000001n, 31, 1n],
    158  [0xfffffffen, 31, 0x7ffffffen],
    159  [0xffffffffn, 31, 0x7fffffffn],
    160  [0x100000000n, 31, 0n],
    161  [0x100000001n, 31, 1n],
    162  [0x7ffffffffffffffen, 31, 0x7ffffffen],
    163  [0x7fffffffffffffffn, 31, 0x7fffffffn],
    164  [-0x8000000000000000n, 32, 0n],
    165  [-0x7fffffffffffffffn, 32, 1n],
    166  [-0x7ffffffffffffffen, 32, 2n],
    167  [-0x100000001n, 32, 0xffffffffn],
    168  [-0x100000000n, 32, 0n],
    169  [-0xffffffffn, 32, 1n],
    170  [-0xfffffffen, 32, 2n],
    171  [-0x80000001n, 32, 0x7fffffffn],
    172  [-0x80000000n, 32, 0x80000000n],
    173  [-0x7fffffffn, 32, 0x80000001n],
    174  [-0x7ffffffen, 32, 0x80000002n],
    175  [-9n, 32, 0xfffffff7n],
    176  [-8n, 32, 0xfffffff8n],
    177  [-7n, 32, 0xfffffff9n],
    178  [-6n, 32, 0xfffffffan],
    179  [-5n, 32, 0xfffffffbn],
    180  [-4n, 32, 0xfffffffcn],
    181  [-3n, 32, 0xfffffffdn],
    182  [-2n, 32, 0xfffffffen],
    183  [-1n, 32, 0xffffffffn],
    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, 0x80000001n],
    198  [0xfffffffen, 32, 0xfffffffen],
    199  [0xffffffffn, 32, 0xffffffffn],
    200  [0x100000000n, 32, 0n],
    201  [0x100000001n, 32, 1n],
    202  [0x7ffffffffffffffen, 32, 0xfffffffen],
    203  [0x7fffffffffffffffn, 32, 0xffffffffn],
    204  [-0x8000000000000000n, 33, 0n],
    205  [-0x7fffffffffffffffn, 33, 1n],
    206  [-0x7ffffffffffffffen, 33, 2n],
    207  [-0x100000001n, 33, 0xffffffffn],
    208  [-0x100000000n, 33, 0x100000000n],
    209  [-0xffffffffn, 33, 0x100000001n],
    210  [-0xfffffffen, 33, 0x100000002n],
    211  [-0x80000001n, 33, 0x17fffffffn],
    212  [-0x80000000n, 33, 0x180000000n],
    213  [-0x7fffffffn, 33, 0x180000001n],
    214  [-0x7ffffffen, 33, 0x180000002n],
    215  [-9n, 33, 0x1fffffff7n],
    216  [-8n, 33, 0x1fffffff8n],
    217  [-7n, 33, 0x1fffffff9n],
    218  [-6n, 33, 0x1fffffffan],
    219  [-5n, 33, 0x1fffffffbn],
    220  [-4n, 33, 0x1fffffffcn],
    221  [-3n, 33, 0x1fffffffdn],
    222  [-2n, 33, 0x1fffffffen],
    223  [-1n, 33, 0x1ffffffffn],
    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, 0x100000001n],
    242  [0x7ffffffffffffffen, 33, 0x1fffffffen],
    243  [0x7fffffffffffffffn, 33, 0x1ffffffffn],
    244  [-0x8000000000000000n, 63, 0n],
    245  [-0x7fffffffffffffffn, 63, 1n],
    246  [-0x7ffffffffffffffen, 63, 2n],
    247  [-0x100000001n, 63, 0x7ffffffeffffffffn],
    248  [-0x100000000n, 63, 0x7fffffff00000000n],
    249  [-0xffffffffn, 63, 0x7fffffff00000001n],
    250  [-0xfffffffen, 63, 0x7fffffff00000002n],
    251  [-0x80000001n, 63, 0x7fffffff7fffffffn],
    252  [-0x80000000n, 63, 0x7fffffff80000000n],
    253  [-0x7fffffffn, 63, 0x7fffffff80000001n],
    254  [-0x7ffffffen, 63, 0x7fffffff80000002n],
    255  [-9n, 63, 0x7ffffffffffffff7n],
    256  [-8n, 63, 0x7ffffffffffffff8n],
    257  [-7n, 63, 0x7ffffffffffffff9n],
    258  [-6n, 63, 0x7ffffffffffffffan],
    259  [-5n, 63, 0x7ffffffffffffffbn],
    260  [-4n, 63, 0x7ffffffffffffffcn],
    261  [-3n, 63, 0x7ffffffffffffffdn],
    262  [-2n, 63, 0x7ffffffffffffffen],
    263  [-1n, 63, 0x7fffffffffffffffn],
    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, 0x7ffffffffffffffen],
    283  [0x7fffffffffffffffn, 63, 0x7fffffffffffffffn],
    284  [0n, 64, 0n],
    285  [1n, 64, 1n],
    286  [2n, 64, 2n],
    287  [3n, 64, 3n],
    288  [4n, 64, 4n],
    289  [5n, 64, 5n],
    290  [6n, 64, 6n],
    291  [7n, 64, 7n],
    292  [8n, 64, 8n],
    293  [9n, 64, 9n],
    294  [0x7ffffffen, 64, 0x7ffffffen],
    295  [0x7fffffffn, 64, 0x7fffffffn],
    296  [0x80000000n, 64, 0x80000000n],
    297  [0x80000001n, 64, 0x80000001n],
    298  [0xfffffffen, 64, 0xfffffffen],
    299  [0xffffffffn, 64, 0xffffffffn],
    300  [0x100000000n, 64, 0x100000000n],
    301  [0x100000001n, 64, 0x100000001n],
    302  [0x7ffffffffffffffen, 64, 0x7ffffffffffffffen],
    303  [0x7fffffffffffffffn, 64, 0x7fffffffffffffffn],
    304 ];
    305 
    306 function f(tests) {
    307  for (let test of tests) {
    308    let input = test[0], bits = test[1], expected = test[2];
    309 
    310    assertEq(BigInt.asUintN(bits, input), expected);
    311  }
    312 }
    313 
    314 for (let i = 0; i < 10; ++i) {
    315  f(tests);
    316 }