tor-browser

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

math-f16round.js (860B)


      1 function testExact() {
      2  var values = [
      3    0,
      4    0.5,
      5    1,
      6    100.25,
      7    Infinity,
      8    NaN,
      9  ];
     10 
     11  for (var i = 0; i < 1000; ++i) {
     12    var x = values[i % values.length];
     13    assertEq(Math.f16round(x), x);
     14    assertEq(-Math.f16round(-x), x);
     15    assertEq(Math.f16round(-x), -x);
     16    assertEq(-Math.f16round(x), -x);
     17  }
     18 }
     19 for (let i = 0; i < 2; ++i) testExact();
     20 
     21 function testInexact() {
     22  var values = [
     23    0.1,
     24    Math.SQRT2,
     25    65519,
     26    65520
     27  ];
     28  var expected = [
     29    0.0999755859375,
     30    1.4140625,
     31    65504,
     32    Infinity,
     33  ];
     34 
     35  for (var i = 0; i < 1000; ++i) {
     36    var j = i % values.length;
     37    var x = values[j];
     38    var y = expected[j];
     39    assertEq(Math.f16round(x), y);
     40    assertEq(-Math.f16round(-x), y);
     41    assertEq(Math.f16round(-x), -y);
     42    assertEq(-Math.f16round(x), -y);
     43  }
     44 }
     45 for (let i = 0; i < 2; ++i) testInexact();