/**
* Парити-тест спек-синтеза: renderSpec(SPEC_SFX[key]) должен быть бит-в-бит
* равен формуле бывшего файлового генератора (tools/audio/gen.mjs) — миграция
* sfx/bell_hit и sfx/whoosh на playSpec не должна изменить звучание.
* Слух агента нет, поэтому звучание сверяется численно (поразрядно).
*/
import { describe, expect, it } from 'vitest';
import { renderSpec } from '@rpg/engine';
import { bellHit, whoosh } from '../../../tools/audio/gen.mjs';
import { SPEC_SFX } from '../sfxSpecs';
describe('паритет SPEC_SFX с формулами gen.mjs', () => {
it('sfx/bell_hit — бит-в-бит равен bellHit()', () => {
const spec = renderSpec(SPEC_SFX['sfx/bell_hit']!);
const wav = bellHit();
expect(spec.length).toBe(wav.length);
for (let i = 0; i < wav.length; i++) expect(spec[i]).toBe(wav[i]);
});
it('sfx/whoosh — бит-в-бит равен whoosh()', () => {
const spec = renderSpec(SPEC_SFX['sfx/whoosh']!);
const wav = whoosh();
expect(spec.length).toBe(wav.length);
for (let i = 0; i < wav.length; i++) expect(spec[i]).toBe(wav[i]);
});
});