tor-browser

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

math-min-max-int32.js (1666B)


      1 function max(lhs, rhs) {
      2  return lhs >= rhs ? lhs : rhs;
      3 }
      4 
      5 function min(lhs, rhs) {
      6  return lhs <= rhs ? lhs : rhs
      7 }
      8 
      9 function testMinMaxI32() {
     10  var xs = [
     11    -0x8000_0000,
     12    -100000,
     13    -1000,
     14    -100,
     15    -1,
     16    -2,
     17    0,
     18    1,
     19    2,
     20    100,
     21    1000,
     22    100000,
     23    0x7fff_ffff,
     24  ];
     25 
     26  for (var i = 0; i < 1000; ++i) {
     27    var x = xs[i % xs.length];
     28    var y = xs[((i / xs.length)|0) % xs.length];
     29 
     30    assertEq(Math.max(x, 0), max(x, 0));
     31    assertEq(Math.min(x, 0), min(x, 0));
     32 
     33    assertEq(Math.max(x, 1), max(x, 1));
     34    assertEq(Math.min(x, 1), min(x, 1));
     35 
     36    assertEq(Math.max(x, -1), max(x, -1));
     37    assertEq(Math.min(x, -1), min(x, -1));
     38 
     39    assertEq(Math.max(x, 2), max(x, 2));
     40    assertEq(Math.min(x, 2), min(x, 2));
     41 
     42    assertEq(Math.max(x, -2), max(x, -2));
     43    assertEq(Math.min(x, -2), min(x, -2));
     44 
     45    assertEq(Math.max(x, 100_000 - 1), max(x, 100_000 - 1));
     46    assertEq(Math.min(x, 100_000 - 1), min(x, 100_000 - 1));
     47 
     48    assertEq(Math.max(x, 100_000), max(x, 100_000));
     49    assertEq(Math.min(x, 100_000), min(x, 100_000));
     50 
     51    assertEq(Math.max(x, 100_000 + 1), max(x, 100_000 + 1));
     52    assertEq(Math.min(x, 100_000 + 1), min(x, 100_000 + 1));
     53 
     54    assertEq(Math.max(x, -100_000 - 1), max(x, -100_000 - 1));
     55    assertEq(Math.min(x, -100_000 - 1), min(x, -100_000 - 1));
     56 
     57    assertEq(Math.max(x, -100_000), max(x, -100_000));
     58    assertEq(Math.min(x, -100_000), min(x, -100_000));
     59 
     60    assertEq(Math.max(x, -100_000 + 1), max(x, -100_000 + 1));
     61    assertEq(Math.min(x, -100_000 + 1), min(x, -100_000 + 1));
     62 
     63    assertEq(Math.max(x, y), max(x, y));
     64    assertEq(Math.min(x, y), min(x, y));
     65  }
     66 }
     67 testMinMaxI32();