tor-browser

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

asUintN-digit32.js (2317B)


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