jevstrudel.git / packages / core / bench / pattern.bench.mjs
1import { describe, bench } from 'vitest';
2
3import { calculateSteps, sequence, stack } from '../index.mjs';
4
5const pat64 = sequence(...Array(64).keys());
6
7describe('steps', () => {
8  calculateSteps(true);
9  bench(
10    '+tactus',
11    () => {
12      pat64.iter(64).fast(64).firstCycle();
13    },
14    { time: 1000 },
15  );
16
17  calculateSteps(false);
18  bench(
19    '-tactus',
20    () => {
21      pat64.iter(64).fast(64).firstCycle();
22    },
23    { time: 1000 },
24  );
25});
26
27describe('stack', () => {
28  calculateSteps(true);
29  bench(
30    '+tactus',
31    () => {
32      stack(pat64, pat64, pat64, pat64, pat64, pat64, pat64, pat64).fast(64).firstCycle();
33    },
34    { time: 1000 },
35  );
36
37  calculateSteps(false);
38  bench(
39    '-tactus',
40    () => {
41      stack(pat64, pat64, pat64, pat64, pat64, pat64, pat64, pat64).fast(64).firstCycle();
42    },
43    { time: 1000 },
44  );
45});
46calculateSteps(true);