tor-browser

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

math-random.js (1233B)


      1 function test() {
      2  setRNGState(0x12341234, 0x98765);
      3 
      4  function f() {
      5    let x = [];
      6    for (let i = 0; i < 10000; i++)  {
      7      x.push(Math.random());
      8    }
      9    return x;
     10  }
     11  let x = f();
     12  assertEq(x[0], 0.28443027522441433);
     13  assertEq(x[10], 0.5283908544644392);
     14  assertEq(x[100], 0.5593668121538891);
     15  assertEq(x[1000], 0.7008807796441313);
     16  assertEq(x[2000], 0.11737403776989574);
     17  assertEq(x[3000], 0.08573924080320472);
     18  assertEq(x[4000], 0.22428965439295678);
     19  assertEq(x[5000], 0.4657521920883555);
     20  assertEq(x[6000], 0.11816220100329233);
     21  assertEq(x[7000], 0.6306689010335697);
     22  assertEq(x[8000], 0.8654862148946609);
     23  assertEq(x[9000], 0.31734259460387015);
     24  assertEq(x[9999], 0.013959566914027777);
     25 
     26  // Test some other (arbitrary) seeds.
     27  setRNGState(0, 1);
     28  x = f();
     29  assertEq(x[0], 2.220446049250313e-16);
     30  assertEq(x[2000], 0.8259328082050756);
     31  assertEq(x[6000], 0.01060492365550314);
     32  assertEq(x[9999], 0.7402370773147143);
     33 
     34  setRNGState(0x0fff0101, 0x44440001);
     35  x = f();
     36  assertEq(x[0], 0.24994062119568194);
     37  assertEq(x[2000], 0.4375430448883283);
     38  assertEq(x[6000], 0.7298689950209452);
     39  assertEq(x[9999], 0.13284280897626954);
     40 }
     41 
     42 if (typeof setRNGState == "function")
     43  test();