File: esnext.math.seeded-prng.js

package info (click to toggle)
node-core-js 3.33.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 18,828 kB
  • sloc: javascript: 87,204; makefile: 13
file content (28 lines) | stat: -rw-r--r-- 1,366 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
QUnit.test('Math.seededPRNG', assert => {
  const { seededPRNG } = Math;
  assert.isFunction(seededPRNG);
  assert.name(seededPRNG, 'seededPRNG');
  assert.arity(seededPRNG, 1);
  assert.looksNative(seededPRNG);
  assert.nonEnumerable(Math, 'seededPRNG');

  for (const gen of [seededPRNG({ seed: 42 }), seededPRNG({ seed: 42 })]) {
    assert.deepEqual(gen.next(), { value: 0.16461519912315087, done: false });
    assert.deepEqual(gen.next(), { value: 0.2203933906000046, done: false });
    assert.deepEqual(gen.next(), { value: 0.8249682894209105, done: false });
    assert.deepEqual(gen.next(), { value: 0.10750079537509083, done: false });
    assert.deepEqual(gen.next(), { value: 0.004673248161257476, done: false });
  }

  for (const gen of [seededPRNG({ seed: 43 }), seededPRNG({ seed: 43 })]) {
    assert.deepEqual(gen.next(), { value: 0.1923438591811283, done: false });
    assert.deepEqual(gen.next(), { value: 0.7896811578326683, done: false });
    assert.deepEqual(gen.next(), { value: 0.9518230761883996, done: false });
    assert.deepEqual(gen.next(), { value: 0.1414634102410296, done: false });
    assert.deepEqual(gen.next(), { value: 0.7379838030207752, done: false });
  }

  assert.throws(() => seededPRNG(), TypeError);
  assert.throws(() => seededPRNG(5), TypeError);
  assert.throws(() => seededPRNG({ seed: null }), TypeError);
});