tor-browser

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

asIntN-digit32.js (2521B)


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