merger-testing.js (2041B)
1 // This file is for the audiochannelmerger-* layout tests. 2 // Requires |audio-testing.js| to work properly. 3 4 function testMergerInput(should, config) { 5 let context = new OfflineAudioContext(config.numberOfChannels, 128, 44100); 6 let merger = context.createChannelMerger(config.numberOfChannels); 7 let source = context.createBufferSource(); 8 source.buffer = createConstantBuffer(context, 128, config.testBufferContent); 9 10 // Connect the output of source into the specified input of merger. 11 if (config.mergerInputIndex) 12 source.connect(merger, 0, config.mergerInputIndex); 13 else 14 source.connect(merger); 15 merger.connect(context.destination); 16 source.start(); 17 18 return context.startRendering().then(function(buffer) { 19 let prefix = config.testBufferContent.length + '-channel source: '; 20 for (let i = 0; i < config.numberOfChannels; i++) 21 should(buffer.getChannelData(i), prefix + 'Channel #' + i) 22 .beConstantValueOf(config.expected[i]); 23 }); 24 } 25 26 async function testMergerInput_W3CTH(config) { 27 const context = new OfflineAudioContext(config.numberOfChannels, 128, 44100); 28 const merger = new ChannelMergerNode(context, { 29 numberOfInputs: config.numberOfChannels, 30 }); 31 const source = new AudioBufferSourceNode(context, { 32 buffer: createConstantBuffer(context, 128, config.testBufferContent), 33 }); 34 35 36 // Connect the output of source into the specified input of merger. 37 if (config.mergerInputIndex) { 38 source.connect(merger, 0, config.mergerInputIndex); 39 } else { 40 source.connect(merger); 41 } 42 merger.connect(context.destination); 43 source.start(); 44 45 return context.startRendering().then((buffer) => { 46 const prefix = config.testBufferContent.length + '-channel source: '; 47 for (let i = 0; i < config.numberOfChannels; i++) { 48 assert_array_equals( 49 buffer.getChannelData(i), 50 new Float32Array(buffer.length).fill(config.expected[i]), 51 `${prefix}Channel #${i} should be constant value of ` + 52 `${config.expected[i]}`); 53 } 54 }); 55 }