import assert from 'node:assert/strict' import { test } from 'node:test' import { soundCheckWav } from './sound-check.js' test('проверочный WAV содержит два коротких тона с паузой и умеренной амплитудой', () => { assert.equal(soundCheckWav.toString('ascii', 0, 4), 'RIFF') assert.equal(soundCheckWav.toString('ascii', 8, 16), 'WAVEfmt ') assert.equal(soundCheckWav.readUInt32LE(4), soundCheckWav.length - 8) assert.equal(soundCheckWav.readUInt16LE(20), 1) assert.equal(soundCheckWav.readUInt16LE(22), 1) assert.equal(soundCheckWav.readUInt16LE(34), 16) const rate = soundCheckWav.readUInt32LE(24) assert.equal(soundCheckWav.readUInt32LE(40) / (rate * 2), 1) let first = 0 let second = 0 for (let index = 0; index < rate; index++) { const amplitude = Math.abs(soundCheckWav.readInt16LE(44 + index * 2)) assert.ok(amplitude <= 6553) if (index < rate * 0.05 || (index >= rate * 0.45 && index < rate * 0.55) || index >= rate * 0.95) assert.equal(amplitude, 0) if (index < rate * 0.5) first += amplitude else second += amplitude } assert.ok(first > 0 && second > 0) })