jevstrudel.git / packages / core / bench / signal.bench.mjs
1import { describe, bench } from 'vitest';
2
3import { calculateSteps, rand, useRNG } from '../index.mjs';
4
5const testingResolution = 128;
6
7const _generateRandomPattern = () => rand.iter(testingResolution).fast(testingResolution).firstCycle();
8
9describe('old random', () => {
10  calculateSteps(true);
11  bench(
12    '+tactus',
13    () => {
14      useRNG('legacy');
15      _generateRandomPattern();
16    },
17    {
18      time: 1000,
19      teardown() {
20        useRNG('legacy');
21      },
22    },
23  );
24
25  calculateSteps(false);
26  bench(
27    '-tactus',
28    () => {
29      useRNG('precise');
30      _generateRandomPattern();
31    },
32    {
33      time: 1000,
34      teardown() {
35        useRNG('legacy');
36      },
37    },
38  );
39});
40
41describe('random', () => {
42  calculateSteps(true);
43  bench('+tactus', _generateRandomPattern, { time: 1000 });
44
45  calculateSteps(false);
46  bench('-tactus', _generateRandomPattern, { time: 1000 });
47});
48
49calculateSteps(true);