MCPcopy Create free account
hub / github.com/CoderLine/alphaTab / testVorbisFile

Function testVorbisFile

packages/alphatab/test/audio/AlphaSynth.test.ts:110–135  ·  view source on GitHub ↗
(name: string)

Source from the content-addressed store, hash-verified

108 });
109
110 async function testVorbisFile(name: string) {
111 const data = await TestPlatform.loadFile(`test-data/audio/${name}.ogg`);
112 const vorbis = new VorbisFile(ByteBuffer.fromBuffer(data));
113
114 expect(vorbis.streams.length).toBe(1);
115 expect(vorbis.streams[0].audioChannels).toBe(2);
116 expect(vorbis.streams[0].audioSampleRate).toBe(44100);
117 expect(vorbis.streams[0].samples.length).toBeGreaterThan(44100 * 0.05);
118
119 const generated = vorbis.streams[0].samples;
120 const reference = new DataView((await TestPlatform.loadFile(`test-data/audio/${name}_alphaTab.pcm`)).buffer);
121 try {
122 expect(generated.length).toBe(reference.buffer.byteLength / 4);
123
124 for (let i = 0; i < generated.length; i++) {
125 expect(generated[i], `Difference at index ${i}`).toBe(reference.getFloat32(i * 4, true));
126 }
127 } catch (e) {
128 await TestPlatform.saveFile(
129 `test-data/audio/${name}_alphaTab_new.pcm`,
130 new Uint8Array(vorbis.streams[0].samples.buffer)
131 );
132
133 throw e;
134 }
135 }
136
137 it('ogg-vorbis-short', async () => {
138 await testVorbisFile('Short');

Callers 1

AlphaSynth.test.tsFile · 0.85

Calls 6

getFloat32Method · 0.95
fromBufferMethod · 0.80
loadFileMethod · 0.45
toBeMethod · 0.45
toBeGreaterThanMethod · 0.45
saveFileMethod · 0.45

Tested by

no test coverage detected