Test files without 2 passes: 174; Subtests without 2 passes: 4961; Failure level: 4961/4961 (100.00%)
| Test | FF64 |
|---|---|
| /webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions.html (25/25, 100.00%, 0.50% of total) | OK |
| context = new AudioContext('latencyHint') threw TypeError: "Argument 1 of AudioContext.constructor can't be converted to a dictionary.". | PASS |
| context = new AudioContext() did not throw an exception. | PASS |
| context = new AudioContext({'latencyHint': 'balanced'}) did not throw an exception. | PASS |
| context = new AudioContext({'latencyHint': 'interactive'}) did not throw an exception. | PASS |
| context = new AudioContext({'latencyHint': 'playback'}) did not throw an exception. | PASS |
| context = new AudioContext({'latencyHint': interactiveLatency/2}) did not throw an exception. | PASS |
| context = new AudioContext({'latencyHint': validLatency}) did not throw an exception. | PASS |
| context.sampleRate (48000 Hz) is greater than 0. | PASS |
| creating two high latency contexts did not throw an exception. | PASS |
| high latency context baseLatency is equal to undefined. | PASS |
| interactive baseLatency is equal to undefined. | PASS |
| # AUDIT TASK RUNNER FINISHED: 2 out of 2 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test-audiocontextoptions-latencyHint-basic] 3 out of 9 assertions were failed. | FAIL |
| < [test-audiocontextoptions-latencyHint-double] 5 out of 10 assertions were failed. | FAIL |
| > [test-audiocontextoptions-latencyHint-basic] Test creating contexts with basic latencyHint types. | PASS |
| > [test-audiocontextoptions-latencyHint-double] Test creating contexts with explicit latencyHint values. | PASS |
| X balanced baseLatency is not greater than or equal to undefined. Got undefined. | FAIL |
| X context = new AudioContext({'latencyHint': 'foo'}) did not throw an exception. | FAIL |
| X default baseLatency is not greater than 0. Got undefined. | FAIL |
| X double-constructor baseLatency inrange 1 is not greater than or equal to undefined. Got undefined. | FAIL |
| X double-constructor baseLatency inrange 2 is not less than or equal to undefined. Got undefined. | FAIL |
| X double-constructor baseLatency small is not less than or equal to undefined. Got undefined. | FAIL |
| X high latency context baseLatency is not greater than undefined. Got undefined. | FAIL |
| X playback baseLatency is not greater than or equal to undefined. Got undefined. | FAIL |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-notch.html (7/7, 100.00%, 0.14% of total) | OK |
| Max error in Notch filter response is less than or equal to 1.9669e-8. | PASS |
| Number of filters tested is equal to 4. | PASS |
| Number of non-finite values in the rendered output is equal to 0. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 3 assertions) | PASS |
| > [test] Biquad notch filter | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions.html (54/54, 100.00%, 1.09% of total) | OK |
| Handled setValueCurve exception so output contains only the constant 1. | PASS |
| delayTime.setValueCurveAtTime([1, 5, Infinity], 0.043750000000000004, 0.01) threw TypeError: "Element of argument 1 of AudioParam.setValueCurveAtTime is not a finite floating-point value.". | PASS |
| delayTime.setValueCurveAtTime([1, 5], 0.043750000000000004, 0.01) did not throw an exception. | PASS |
| exponentialRampToValueAtTime(1, 0.0075) did not throw an exception. | PASS |
| exponentialRampToValueAtTime(1, 0.018750000000000003) threw NotSupportedError: "Operation is not supported". | PASS |
| exponentialRampToValueAtTime(1, 0.025) did not throw an exception. | PASS |
| g.gain.setValueAtTime(1.0, 15) did not throw an exception. | PASS |
| g.gain.setValueCurveAtTime([1,2,3], 10, 10) threw NotSupportedError: "Operation is not supported". | PASS |
| g.gain.setValueCurveAtTime([1,2,3], 2.5, 10) threw NotSupportedError: "Operation is not supported". | PASS |
| g.gain.setValueCurveAtTime([1,2,3], 4, 11) threw NotSupportedError: "Operation is not supported". | PASS |
| g.gain.setValueCurveAtTime([1,2,3], 5, 10) did not throw an exception. | PASS |
| g.gain.setValueCurveAtTime([1,2,3], 5, 5) threw NotSupportedError: "Operation is not supported". | PASS |
| g.gain.setValueCurveAtTime([1,2,3], 6, 9) threw NotSupportedError: "Operation is not supported". | PASS |
| linearRampToValueAtTime(0, 0.0025) did not throw an exception. | PASS |
| linearRampToValueAtTime(1, 0.0125) did not throw an exception. | PASS |
| linearRampToValueAtTime(1, 0.018750000000000003) threw NotSupportedError: "Operation is not supported". | PASS |
| second g.gain.setValueCurveAtTime([1,2,3], 5, 10) threw NotSupportedError: "Operation is not supported". | PASS |
| setTargetAtTime(1, 0.015000000000000001, 1) did not throw an exception. | PASS |
| setTargetAtTime(1, 0.018750000000000003, 1) threw NotSupportedError: "Operation is not supported". | PASS |
| setTargetAtTime(1, 0.037500000000000006, 0.1) did not throw an exception. | PASS |
| setValueAtTime(0, 0.0125) did not throw an exception. | PASS |
| setValueAtTime(1, 0) did not throw an exception. | PASS |
| setValueAtTime(1, 0.018750000000000003) threw NotSupportedError: "Operation is not supported". | PASS |
| setValueAtTime(1, 0.026250000000000002) did not throw an exception. | PASS |
| setValueCurveAtTime(..., 0.0025, 0.0025) did not throw an exception. | PASS |
| setValueCurveAtTime(..., 0.0075, 0.0025) did not throw an exception. | PASS |
| setValueCurveAtTime(..., 0.01, 0.0025) did not throw an exception. | PASS |
| setValueCurveAtTime(..., 0.0125, 0.0025) did not throw an exception. | PASS |
| setValueCurveAtTime([1, Infinity], 0.043750000000000004, 0.01) threw TypeError: "Element of argument 1 of AudioParam.setValueCurveAtTime is not a finite floating-point value.". | PASS |
| setValueCurveAtTime([1,2], 0, 0.01) did not throw an exception. | PASS |
| setValueCurveAtTime([1], 0, 0.01) threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| setValueCurveAtTime([NaN, NaN], 0.043750000000000004, 0.01) threw TypeError: "Element of argument 1 of AudioParam.setValueCurveAtTime is not a finite floating-point value.". | PASS |
| setValueCurveAtTime([], 0, 0.01) threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| setValueCurveAtTime(curve, 0.00625, 0.01) threw NotSupportedError: "Operation is not supported". | PASS |
| setValueCurveAtTime(curve, 0.0125, 0.0125) did not throw an exception. | PASS |
| setValueCurveAtTime(curve, 0.018750000000000003, 0.01) threw NotSupportedError: "Operation is not supported". | PASS |
| setValueCurveAtTime(curve, 0.03125, 0.01) threw NotSupportedError: "Operation is not supported". | PASS |
| setValueCurveAtTime(curve, 0.031415926535897934, 0.01) threw NotSupportedError: "Operation is not supported". | PASS |
| setValueCurveAtTime(curve, 0.043750000000000004, 0.01) threw NotSupportedError: "Operation is not supported". | PASS |
| setValueCurveAtTime(curve, 0.05, 0.1) did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [automations] All assertions passed. (total 13 assertions) | PASS |
| < [catch-exception] All assertions passed. (total 1 assertions) | PASS |
| < [curve lengths] All assertions passed. (total 3 assertions) | PASS |
| < [curve overlap] All assertions passed. (total 8 assertions) | PASS |
| < [setValueCurve] All assertions passed. (total 6 assertions) | PASS |
| < [start-end] All assertions passed. (total 9 assertions) | PASS |
| > [automations] | PASS |
| > [catch-exception] | PASS |
| > [curve lengths] | PASS |
| > [curve overlap] | PASS |
| > [setValueCurve] | PASS |
| > [start-end] | PASS |
| /webaudio/the-audio-api/the-analysernode-interface/ctor-analyser.html (70/70, 100.00%, 1.41% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new AnalyserNode() threw TypeError: "Not enough arguments to AnalyserNode.". | PASS |
| new AnalyserNode(1) threw TypeError: "Argument 1 of AnalyserNode.constructor is not an object.". | PASS |
| new AnalyserNode(c, {channelCount: 0}) threw NotSupportedError: "Operation is not supported". | PASS |
| new AnalyserNode(c, {channelCount: 17}} did not throw an exception. | PASS |
| new AnalyserNode(c, {channelCount: 99}) threw NotSupportedError: "Operation is not supported". | PASS |
| new AnalyserNode(c, {channelCountMode: "clamped-max"}) did not throw an exception. | PASS |
| new AnalyserNode(c, {channelCountMode: "explicit"}) did not throw an exception. | PASS |
| new AnalyserNode(c, {channelCountMode: "foobar"} threw TypeError: "'channelCountMode' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelCountMode.". | PASS |
| new AnalyserNode(c, {channelCountMode: "max"} did not throw an exception. | PASS |
| new AnalyserNode(c, {channelCountMode: "max"}) did not throw an exception. | PASS |
| new AnalyserNode(c, {channelInterpretation: "discrete"}) did not throw an exception. | PASS |
| new AnalyserNode(c, {channelInterpretation: "foobar"}) threw TypeError: "'channelInterpretation' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelInterpretation.". | PASS |
| new AnalyserNode(c, {channelInterpretation: "speakers"}) did not throw an exception. | PASS |
| new AnalyserNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node = new AnalyserNode(c, { fftSize: 33 }) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| node = new AnalyserNode(c, { frequencyBinCount: 33 }) did not throw an exception. | PASS |
| node = new AnalyserNode(c, { maxDecibels: -500 }) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| node = new AnalyserNode(c, { minDecibels: -10 }) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| node = new AnalyserNode(c, { smoothingTimeConstant: 2 }) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| node = new AnalyserNode(c, {"maxDecibels":-150,"minDecibels":-10}) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| node = new AnalyserNode(c, {"maxDecibels":-150,"minDecibels":-200}) did not throw an exception. | PASS |
| node = new AnalyserNode(c, {"maxDecibels":20,"minDecibels":-10}) did not throw an exception. | PASS |
| node = new AnalyserNode(c, {"minDecibels":-10,"maxDecibels":-150}) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| node = new AnalyserNode(c, {"minDecibels":-10,"maxDecibels":20}) did not throw an exception. | PASS |
| node = new AnalyserNode(c, {"minDecibels":-200,"maxDecibels":-150}) did not throw an exception. | PASS |
| node.channelCount is equal to 17. | PASS |
| node.channelCountMode after invalid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to clamped-max. | PASS |
| node.channelCountMode after valid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to max. | PASS |
| node.channelCountMode is equal to max. | PASS |
| node.channelInterpretation after invalid setter is equal to discrete. | PASS |
| node.channelInterpretation is equal to discrete. | PASS |
| node.channelInterpretation is equal to speakers. | PASS |
| node.frequencyBinCount is equal to 1024. | PASS |
| node0 = new AnalyserNode(context) did not throw an exception. | PASS |
| node0 instanceof AnalyserNode is equal to true. | PASS |
| node0.channelCountMode is equal to max. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.fftSize is equal to 2048. | PASS |
| node0.frequencyBinCount is equal to 1024. | PASS |
| node0.maxDecibels is equal to -30. | PASS |
| node0.minDecibels is equal to -100. | PASS |
| node0.numberOfInputs is equal to 1. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node0.smoothingTimeConstant is equal to 0.8. | PASS |
| node1 = new AnalyserNode(c, {"fftSize":32,"maxDecibels":1,"minDecibels":-13,"smoothingTimeConstant":0.125}) did not throw an exception. | PASS |
| node1 instanceof AnalyserNode is equal to true. | PASS |
| node1.fftSize is equal to 32. | PASS |
| node1.maxDecibels is equal to 1. | PASS |
| node1.minDecibels is equal to -13. | PASS |
| node1.smoothingTimeConstant is equal to 0.125. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 7 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [construct invalid options] All assertions passed. (total 6 assertions) | PASS |
| < [constructor with options] All assertions passed. (total 6 assertions) | PASS |
| < [default constructor] 1 out of 12 assertions were failed. | FAIL |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [setting min/max] All assertions passed. (total 6 assertions) | PASS |
| < [test AudioNodeOptions] All assertions passed. (total 20 assertions) | PASS |
| > [construct invalid options] | PASS |
| > [constructor with options] | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [setting min/max] | PASS |
| > [test AudioNodeOptions] | PASS |
| X node0.channelCount is not equal to 2. Got 1. | FAIL |
| /webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer.html (15/15, 100.00%, 0.30% of total) | OK |
| buffer = context.createBuffer(4, 88200, 44100) is true. | PASS |
| buffer.duration is equal to 2. | PASS |
| buffer.getChannelData(0) instanceof window.Float32Array is true. | PASS |
| buffer.getChannelData(1) instanceof window.Float32Array is true. | PASS |
| buffer.getChannelData(2) instanceof window.Float32Array is true. | PASS |
| buffer.getChannelData(3) instanceof window.Float32Array is true. | PASS |
| buffer.getChannelData(4) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| buffer.length is equal to 88200. | PASS |
| buffer.numberOfChannels is equal to 4. | PASS |
| buffer.sampleRate is equal to 44100. | PASS |
| context.createBuffer(1, 1000, 24576).duration is equal to 0.040690104166666664. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Basic tests for AudioBuffer] All assertions passed. (total 11 assertions) | PASS |
| > [Basic tests for AudioBuffer] | PASS |
| /webaudio/the-audio-api/the-iirfilternode-interface/test-iirfilternode.html (8/8, 100.00%, 0.16% of total) | OK |
| IIRFilterNode coefficients are checked properly | PASS |
| IIRFilterNode getFrequencyResponse handles invalid frequencies properly | PASS |
| at least one feedforward coefficient must be non-zero | PASS |
| feedback coefficients can not be empty | PASS |
| feedforward coefficients can not be empty | PASS |
| more than 20 feedback coefficients can not be used | PASS |
| more than 20 feedforward coefficients can not be used | PASS |
| the first feedback coefficient must be non-zero | PASS |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam.https.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [Initializing AudioWorklet and Context] | PASS |
| /webaudio/the-audio-api/the-convolvernode-interface/convolver-cascade.html (5/5, 100.00%, 0.10% of total) | OK |
| Output of cascaded mono convolvers is not constantly 0 (contains 1999 different values). | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [cascade-mono] All assertions passed. (total 1 assertions) | PASS |
| > [cascade-mono] Cascaded mono convolvers | PASS |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https.html (1/1, 100.00%, 0.02% of total) | OK |
| Test currentTime and currentFrame in AudioWorkletGlobalScope | FAIL |
| /webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-basic.html (14/14, 100.00%, 0.28% of total) | OK |
| context.createChannelMerger() did not throw an exception. | PASS |
| context.createChannelMerger(0) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| context.createChannelMerger(32) did not throw an exception. | PASS |
| context.createChannelMerger(33) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| merger.channelCount is equal to 1. | PASS |
| merger.channelCountMode is equal to explicit. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 2 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [exceptions-channels] All assertions passed. (total 4 assertions) | PASS |
| < [exceptions-properties] 2 out of 4 assertions were failed. | FAIL |
| > [exceptions-channels] | PASS |
| > [exceptions-properties] | PASS |
| X merger.channelCount = 3 did not throw an exception. | FAIL |
| X merger.channelCountMode = "max" did not throw an exception. | FAIL |
| /webaudio/the-audio-api/the-delaynode-interface/delaynode-scheduling.html (1/1, 100.00%, 0.02% of total) | TIMEOUT |
| /webaudio/the-audio-api/the-delaynode-interface/delaynode-scheduling.html | TIMEOUT |
| /webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit.html (10/10, 100.00%, 0.20% of total) | OK |
| Delaying test signal by 0.5 sec was done correctly | PASS |
| Setting Delay length to 0 seconds threw NotSupportedError: "Operation is not supported". | PASS |
| Setting Delay length to 180 seconds or more threw NotSupportedError: "Operation is not supported". | PASS |
| Setting Delay length to NaN threw TypeError: "Argument 1 of BaseAudioContext.createDelay is not a finite floating-point value.". | PASS |
| Setting Delay length to negative threw NotSupportedError: "Operation is not supported". | PASS |
| delay.delayTime.value = 0.5 is equal to 0.5. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 6 assertions) | PASS |
| > [test] Tests attribute and maximum allowed delay of DelayNode | PASS |
| /webaudio/the-audio-api/the-waveshapernode-interface/ctor-waveshaper.html (48/48, 100.00%, 0.97% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new WaveShaperNode() threw TypeError: "Not enough arguments to WaveShaperNode.". | PASS |
| new WaveShaperNode(1) threw TypeError: "Argument 1 of WaveShaperNode.constructor is not an object.". | PASS |
| new WaveShaperNode(c, {channelCount: 0}) threw NotSupportedError: "Operation is not supported". | PASS |
| new WaveShaperNode(c, {channelCount: 17}} did not throw an exception. | PASS |
| new WaveShaperNode(c, {channelCount: 99}) threw NotSupportedError: "Operation is not supported". | PASS |
| new WaveShaperNode(c, {channelCountMode: "clamped-max"}) did not throw an exception. | PASS |
| new WaveShaperNode(c, {channelCountMode: "explicit"}) did not throw an exception. | PASS |
| new WaveShaperNode(c, {channelCountMode: "foobar"} threw TypeError: "'channelCountMode' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelCountMode.". | PASS |
| new WaveShaperNode(c, {channelCountMode: "max"} did not throw an exception. | PASS |
| new WaveShaperNode(c, {channelCountMode: "max"}) did not throw an exception. | PASS |
| new WaveShaperNode(c, {channelInterpretation: "discrete"}) did not throw an exception. | PASS |
| new WaveShaperNode(c, {channelInterpretation: "foobar"}) threw TypeError: "'channelInterpretation' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelInterpretation.". | PASS |
| new WaveShaperNode(c, {channelInterpretation: "speakers"}) did not throw an exception. | PASS |
| new WaveShaperNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node.channelCount is equal to 17. | PASS |
| node.channelCountMode after invalid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to clamped-max. | PASS |
| node.channelCountMode after valid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to max. | PASS |
| node.channelCountMode is equal to max. | PASS |
| node.channelInterpretation after invalid setter is equal to discrete. | PASS |
| node.channelInterpretation is equal to discrete. | PASS |
| node.channelInterpretation is equal to speakers. | PASS |
| node0 = new WaveShaperNode(context) did not throw an exception. | PASS |
| node0 instanceof WaveShaperNode is equal to true. | PASS |
| node0.channelCount is equal to 2. | PASS |
| node0.channelCountMode is equal to max. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.curve is equal to null. | PASS |
| node0.numberOfInputs is equal to 1. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node0.oversample is equal to none. | PASS |
| node1 = new WaveShaperNode(, {"curve":{"0":1,"1":2,"2":3},"oversample":"4x"}) did not throw an exception. | PASS |
| node1.curve is identical to the array [1,2,3]. | PASS |
| node1.oversample is equal to 4x. | PASS |
| # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [incorrect construction] All assertions passed. (total 3 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [test AudioNodeOptions] All assertions passed. (total 20 assertions) | PASS |
| < [valid default construction] All assertions passed. (total 9 assertions) | PASS |
| < [valid non-default] All assertions passed. (total 3 assertions) | PASS |
| > [incorrect construction] | PASS |
| > [initialize] | PASS |
| > [test AudioNodeOptions] | PASS |
| > [valid default construction] | PASS |
| > [valid non-default] | PASS |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/sample-accurate-scheduling.html (16/16, 100.00%, 0.32% of total) | OK |
| Content of left and right channels match and is identical to the array [1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0...]. | PASS |
| Non-zero sample found at sample offset 0 is true. | PASS |
| Non-zero sample found at sample offset 1000 is true. | PASS |
| Non-zero sample found at sample offset 1005 is true. | PASS |
| Non-zero sample found at sample offset 20000 is true. | PASS |
| Non-zero sample found at sample offset 21234 is true. | PASS |
| Non-zero sample found at sample offset 3 is true. | PASS |
| Non-zero sample found at sample offset 37590 is true. | PASS |
| Non-zero sample found at sample offset 512 is true. | PASS |
| Non-zero sample found at sample offset 517 is true. | PASS |
| Number of impulses found is equal to 9. | PASS |
| bad offset is equal to 0. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 12 assertions) | PASS |
| > [test] Test sample-accurate scheduling | PASS |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-time-limits.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [buffersource: huge stop time] | PASS |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start.html (22/22, 100.00%, 0.44% of total) | OK |
| Case 0: start(when): implicitly play whole buffer from beginning to end is identical to the array [0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0...]. | PASS |
| Case 0: start(when): implicitly play whole buffer from beginning to end: tail contains only the constant 0. | PASS |
| Case 1: start(when, 0): play whole buffer from beginning to end explicitly giving offset of 0 is identical to the array [0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0...]. | PASS |
| Case 1: start(when, 0): play whole buffer from beginning to end explicitly giving offset of 0: tail contains only the constant 0. | PASS |
| Case 2: start(when, 0, 8_frames): play whole buffer from beginning to end explicitly giving offset of 0 and duration of 8 frames is identical to the array [0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0...]. | PASS |
| Case 2: start(when, 0, 8_frames): play whole buffer from beginning to end explicitly giving offset of 0 and duration of 8 frames: tail contains only the constant 0. | PASS |
| Case 3: start(when, 4_frames): play with explicit non-zero offset is identical to the array [4,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0...]. | PASS |
| Case 3: start(when, 4_frames): play with explicit non-zero offset: tail contains only the constant 0. | PASS |
| Case 4: start(when, 4_frames, 4_frames): play with explicit non-zero offset and duration is identical to the array [4,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0...]. | PASS |
| Case 4: start(when, 4_frames, 4_frames): play with explicit non-zero offset and duration: tail contains only the constant 0. | PASS |
| Case 5: start(when, 7_frames): play with explicit non-zero offset near end of buffer is identical to the array [7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...]. | PASS |
| Case 5: start(when, 7_frames): play with explicit non-zero offset near end of buffer: tail contains only the constant 0. | PASS |
| Case 6: start(when, 8_frames): play with explicit offset at end of buffer is identical to the array [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...]. | PASS |
| Case 6: start(when, 8_frames): play with explicit offset at end of buffer: tail contains only the constant 0. | PASS |
| Case 7: start(when, 9_frames): play with explicit offset past end of buffer is identical to the array [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...]. | PASS |
| Case 7: start(when, 9_frames): play with explicit offset past end of buffer: tail contains only the constant 0. | PASS |
| Case 8: start(when, 0, 15_frames): play with whole buffer, with long duration (clipped) is identical to the array [0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0...]. | PASS |
| Case 8: start(when, 0, 15_frames): play with whole buffer, with long duration (clipped): tail contains only the constant 0. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Tests AudioBufferSourceNode start()] All assertions passed. (total 18 assertions) | PASS |
| > [Tests AudioBufferSourceNode start()] | PASS |
| /webaudio/the-audio-api/the-pannernode-interface/panner-automation-position.html (2/2, 100.00%, 0.04% of total) | TIMEOUT |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [0: 1-channel inverse rolloff: 1] | PASS |
| /webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [silent-disconnect] | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/audioparam-exceptional-values.html (59/59, 100.00%, 1.19% of total) | OK |
| Creating context for testing did not throw an exception. | PASS |
| gain.gain.exponentialRampToValueAtTime(-1e-100,1) threw RangeError: "The value passed to exponentialRampToValueAtTime must be positive.". | PASS |
| gain.gain.exponentialRampToValueAtTime(-Infinity,1) threw TypeError: "Argument 1 of AudioParam.exponentialRampToValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.exponentialRampToValueAtTime(0,1) threw RangeError: "The value passed to exponentialRampToValueAtTime must be positive.". | PASS |
| gain.gain.exponentialRampToValueAtTime(1,-1) threw RangeError: "The end time for an AudioParam method must be non-negative.". | PASS |
| gain.gain.exponentialRampToValueAtTime(1,-Infinity) threw TypeError: "Argument 2 of AudioParam.exponentialRampToValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.exponentialRampToValueAtTime(1,Infinity) threw TypeError: "Argument 2 of AudioParam.exponentialRampToValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.exponentialRampToValueAtTime(1,NaN) threw TypeError: "Argument 2 of AudioParam.exponentialRampToValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.exponentialRampToValueAtTime(1e-100,1) threw RangeError: "The value passed to exponentialRampToValueAtTime must be positive.". | PASS |
| gain.gain.exponentialRampToValueAtTime(Infinity,1) threw TypeError: "Argument 1 of AudioParam.exponentialRampToValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.exponentialRampToValueAtTime(NaN,1) threw TypeError: "Argument 1 of AudioParam.exponentialRampToValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.linearRampToValueAtTime(-Infinity,1) threw TypeError: "Argument 1 of AudioParam.linearRampToValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.linearRampToValueAtTime(1,-1) threw RangeError: "The end time for an AudioParam method must be non-negative.". | PASS |
| gain.gain.linearRampToValueAtTime(1,-Infinity) threw TypeError: "Argument 2 of AudioParam.linearRampToValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.linearRampToValueAtTime(1,Infinity) threw TypeError: "Argument 2 of AudioParam.linearRampToValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.linearRampToValueAtTime(1,NaN) threw TypeError: "Argument 2 of AudioParam.linearRampToValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.linearRampToValueAtTime(Infinity,1) threw TypeError: "Argument 1 of AudioParam.linearRampToValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.linearRampToValueAtTime(NaN,1) threw TypeError: "Argument 1 of AudioParam.linearRampToValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setTargetAtTime(-Infinity,1,1) threw TypeError: "Argument 1 of AudioParam.setTargetAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setTargetAtTime(1,-1,1) threw RangeError: "The start time for an AudioParam method must be non-negative.". | PASS |
| gain.gain.setTargetAtTime(1,-Infinity,1) threw TypeError: "Argument 2 of AudioParam.setTargetAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setTargetAtTime(1,1,-1) threw RangeError: "The start time for an AudioParam method must be non-negative.". | PASS |
| gain.gain.setTargetAtTime(1,1,-Infinity) threw TypeError: "Argument 3 of AudioParam.setTargetAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setTargetAtTime(1,1,Infinity) threw TypeError: "Argument 3 of AudioParam.setTargetAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setTargetAtTime(1,1,NaN) threw TypeError: "Argument 3 of AudioParam.setTargetAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setTargetAtTime(1,Infinity,1) threw TypeError: "Argument 2 of AudioParam.setTargetAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setTargetAtTime(1,NaN,1) threw TypeError: "Argument 2 of AudioParam.setTargetAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setTargetAtTime(Infinity,1,1) threw TypeError: "Argument 1 of AudioParam.setTargetAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setTargetAtTime(NaN,1,1) threw TypeError: "Argument 1 of AudioParam.setTargetAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setValueAtTime(-Infinity,1) threw TypeError: "Argument 1 of AudioParam.setValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setValueAtTime(1,-1) threw RangeError: "The start time for an AudioParam method must be non-negative.". | PASS |
| gain.gain.setValueAtTime(1,-Infinity) threw TypeError: "Argument 2 of AudioParam.setValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setValueAtTime(1,Infinity) threw TypeError: "Argument 2 of AudioParam.setValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setValueAtTime(1,NaN) threw TypeError: "Argument 2 of AudioParam.setValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setValueAtTime(Infinity,1) threw TypeError: "Argument 1 of AudioParam.setValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setValueAtTime(NaN,1) threw TypeError: "Argument 1 of AudioParam.setValueAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setValueCurveAtTime([0,0,0],-1,1) threw RangeError: "The start time for an AudioParam method must be non-negative.". | PASS |
| gain.gain.setValueCurveAtTime([0,0,0],-Infinity,1) threw TypeError: "Argument 2 of AudioParam.setValueCurveAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setValueCurveAtTime([0,0,0],1,-1) threw RangeError: "The curve duration for setValueCurveAtTime must be strictly positive.". | PASS |
| gain.gain.setValueCurveAtTime([0,0,0],Infinity,1) threw TypeError: "Argument 2 of AudioParam.setValueCurveAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setValueCurveAtTime([0,0,0],NaN,1) threw TypeError: "Argument 2 of AudioParam.setValueCurveAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setValueCurveAtTime([1,2,Infinity,3],1,1) threw TypeError: "Element of argument 1 of AudioParam.setValueCurveAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setValueCurveAtTime([1,NaN,2,3],1,1) threw TypeError: "Element of argument 1 of AudioParam.setValueCurveAtTime is not a finite floating-point value.". | PASS |
| gain.gain.setValueCurveAtTime(curve, 1, -1) threw RangeError: "The curve duration for setValueCurveAtTime must be strictly positive.". | PASS |
| gain.gain.setValueCurveAtTime(curve, 1, 0) threw RangeError: "The curve duration for setValueCurveAtTime must be strictly positive.". | PASS |
| # AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [special cases 1] All assertions passed. (total 9 assertions) | PASS |
| < [special cases 2] All assertions passed. (total 3 assertions) | PASS |
| < [test setValueCurve] All assertions passed. (total 5 assertions) | PASS |
| < [test time] All assertions passed. (total 15 assertions) | PASS |
| < [test value] All assertions passed. (total 12 assertions) | PASS |
| > [initialize] | PASS |
| > [special cases 1] Test exceptions for finite values | PASS |
| > [special cases 2] Test special cases for expeonentialRamp | PASS |
| > [test setValueCurve] Test non-finite arguments for setValueCurveAtTime | PASS |
| > [test time] Test non-finite arguments for AudioParam time | PASS |
| > [test value] Test non-finite arguments for AudioParam value | PASS |
| /webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html (32/32, 100.00%, 0.65% of total) | ERROR |
| 0: buffer = context.createBuffer(3, 16, context.sampleRate) did not throw an exception. | PASS |
| 0: buffer.copyToChannel(null, 0) threw TypeError: "Argument 1 of AudioBuffer.copyToChannel is not an object.". | PASS |
| 1: buffer.copyFromChannel(null, 0) threw TypeError: "Argument 1 of AudioBuffer.copyFromChannel is not an object.". | PASS |
| 1: buffer.copyToChannel(context, 0) threw TypeError: "Argument 1 of AudioBuffer.copyToChannel does not implement interface Float32Array.". | PASS |
| 2: buffer.copyFromChannel(context, 0) threw TypeError: "Argument 1 of AudioBuffer.copyFromChannel does not implement interface Float32Array.". | PASS |
| 2: buffer.copyToChannel(x, -1) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| 3: buffer.copyFromChannel(x, -1) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| 3: buffer.copyToChannel(x, 3) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| 4: buffer.copyFromChannel(x, 3) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| 4: buffer.copyToChannel(x, 0, -1) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| 5: buffer.copyFromChannel(x, 0, -1) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| 5: buffer.copyToChannel(x, 0, 16) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| 6: buffer.copyFromChannel(x, 0, 16) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| 6: buffer.copyToChannel(x, 3) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| 7: buffer.copyFromChannel(x, 3) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| AudioBuffer.prototype.copyFromChannel does exist. | PASS |
| AudioBuffer.prototype.copyToChannel does exist. | PASS |
| Initialized values contains only the constant -1. | PASS |
| buffer.copyFromChannel(dst8, 0) is identical to the array [1,2,3,4,5,6,7,8]. | PASS |
| buffer.copyFromChannel(dst8, 0, 1) is identical to the array [2,3,4,5,6,7,8,9]. | PASS |
| buffer.copyFromChannel(dst8, 1) is identical to the array [2,3,4,5,6,7,8,9]. | PASS |
| buffer.copyFromChannel(dst8, 1, 1) is identical to the array [3,4,5,6,7,8,9,10]. | PASS |
| buffer.copyFromChannel(dst8, 2) is identical to the array [3,4,5,6,7,8,9,10]. | PASS |
| buffer.copyFromChannel(dst8, 2, 1) is identical to the array [4,5,6,7,8,9,10,11]. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [copyFrom-exceptions] All assertions passed. (total 9 assertions) | PASS |
| < [copyTo-exceptions] All assertions passed. (total 8 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| > [copyFrom-exceptions] | PASS |
| > [copyFrom-validate] | PASS |
| > [copyTo-exceptions] | PASS |
| > [initialize] | PASS |
| /webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting.html (13/13, 100.00%, 0.26% of total) | OK |
| Context sample rate is equal to 44100. | PASS |
| Frame where detuned oscillator reaches Nyquist is equal to 5. | PASS |
| Osc(freq: 1, detune: 18514.189453125) output equals [0,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7,1.7484555314695172e-7...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}. | PASS |
| Reference oscillator frequency is greater than or equal to 22050. | PASS |
| osc[0:4] is not constantly 0 (contains 4 different values). | PASS |
| # AUDIT TASK RUNNER FINISHED: 2 out of 2 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [detune automation] 1 out of 3 assertions were failed. | FAIL |
| < [detune limits] 1 out of 4 assertions were failed. | FAIL |
| > [detune automation] Oscillator output with detune automation should be zero above Nyquist | PASS |
| > [detune limits] Oscillator with detune and frequency at Nyquist or above | PASS |
| X Osc(freq: 44100.00390625) output: Expected 0 for all values but found 5511 unexpected values: Index Actual [1] 1.7484555314695172e-7 [2] 1.7484555314695172e-7 [3] 1.7484555314695172e-7 [4] 1.7484555314695172e-7 ...and 5507 more errors. | FAIL |
| X osc[5:]: Expected 0 for all values but found 5507 unexpected values: Index Actual [0] 0.0007123791729100049 [1] 0.0008548549376428127 [2] 0.0009973307605832815 [3] 0.0011398064671084285 ...and 5503 more errors. | FAIL |
| /webaudio/the-audio-api/the-audioparam-interface/audioparam-linearRampToValueAtTime.html (106/106, 100.00%, 2.14% of total) | OK |
| Max error for test 0 at offset 1254 is less than or equal to 0.000001865. | PASS |
| Max error for test 1 at offset 2561 is less than or equal to 0.000001865. | PASS |
| Max error for test 10 at offset 14468 is less than or equal to 0.000001865. | PASS |
| Max error for test 11 at offset 14638 is less than or equal to 0.000001865. | PASS |
| Max error for test 12 at offset 17114 is less than or equal to 0.000001865. | PASS |
| Max error for test 13 at offset 18437 is less than or equal to 0.000001865. | PASS |
| Max error for test 14 at offset 18607 is less than or equal to 0.000001865. | PASS |
| Max error for test 15 at offset 21083 is less than or equal to 0.000001865. | PASS |
| Max error for test 16 at offset 22480 is less than or equal to 0.000001865. | PASS |
| Max error for test 17 at offset 22576 is less than or equal to 0.000001865. | PASS |
| Max error for test 18 at offset 25052 is less than or equal to 0.000001865. | PASS |
| Max error for test 19 at offset 26375 is less than or equal to 0.000001865. | PASS |
| Max error for test 2 at offset 2731 is less than or equal to 0.000001865. | PASS |
| Max error for test 20 at offset 26545 is less than or equal to 0.000001865. | PASS |
| Max error for test 21 at offset 29021 is less than or equal to 0.000001865. | PASS |
| Max error for test 22 at offset 29117 is less than or equal to 0.000001865. | PASS |
| Max error for test 23 at offset 30514 is less than or equal to 0.000001865. | PASS |
| Max error for test 24 at offset 32990 is less than or equal to 0.000001865. | PASS |
| Max error for test 25 at offset 34313 is less than or equal to 0.000001865. | PASS |
| Max error for test 26 at offset 34483 is less than or equal to 0.000001865. | PASS |
| Max error for test 27 at offset 36959 is less than or equal to 0.000001865. | PASS |
| Max error for test 28 at offset 37129 is less than or equal to 0.000001865. | PASS |
| Max error for test 29 at offset 38452 is less than or equal to 0.000001865. | PASS |
| Max error for test 3 at offset 3980 is less than or equal to 0.000001865. | PASS |
| Max error for test 30 at offset 40928 is less than or equal to 0.000001865. | PASS |
| Max error for test 31 at offset 42251 is less than or equal to 0.000001865. | PASS |
| Max error for test 32 at offset 42421 is less than or equal to 0.000001865. | PASS |
| Max error for test 33 at offset 44897 is less than or equal to 0.000001865. | PASS |
| Max error for test 34 at offset 45067 is less than or equal to 0.000001865. | PASS |
| Max error for test 35 at offset 46390 is less than or equal to 0.000001865. | PASS |
| Max error for test 36 at offset 48866 is less than or equal to 0.000001865. | PASS |
| Max error for test 37 at offset 49036 is less than or equal to 0.000001865. | PASS |
| Max error for test 38 at offset 50359 is less than or equal to 0.000001865. | PASS |
| Max error for test 39 at offset 52835 is less than or equal to 0.000001865. | PASS |
| Max error for test 4 at offset 6530 is less than or equal to 0.000001865. | PASS |
| Max error for test 40 at offset 53005 is less than or equal to 0.000001865. | PASS |
| Max error for test 41 at offset 54328 is less than or equal to 0.000001865. | PASS |
| Max error for test 42 at offset 56804 is less than or equal to 0.000001865. | PASS |
| Max error for test 43 at offset 56974 is less than or equal to 0.000001865. | PASS |
| Max error for test 44 at offset 58297 is less than or equal to 0.000001865. | PASS |
| Max error for test 45 at offset 60773 is less than or equal to 0.000001865. | PASS |
| Max error for test 46 at offset 60943 is less than or equal to 0.000001865. | PASS |
| Max error for test 47 at offset 62266 is less than or equal to 0.000001865. | PASS |
| Max error for test 48 at offset 64742 is less than or equal to 0.000001865. | PASS |
| Max error for test 49 at offset 64912 is less than or equal to 0.000001865. | PASS |
| Max error for test 5 at offset 6700 is less than or equal to 0.000001865. | PASS |
| Max error for test 50 at offset 67388 is less than or equal to 0.000001865. | PASS |
| Max error for test 51 at offset 68719 is less than or equal to 0.000001865. | PASS |
| Max error for test 52 at offset 70116 is less than or equal to 0.000001865. | PASS |
| Max error for test 53 at offset 71365 is less than or equal to 0.000001865. | PASS |
| Max error for test 54 at offset 71519 is less than or equal to 0.000001865. | PASS |
| Max error for test 55 at offset 72842 is less than or equal to 0.000001865. | PASS |
| Max error for test 56 at offset 75334 is less than or equal to 0.000001865. | PASS |
| Max error for test 57 at offset 76657 is less than or equal to 0.000001865. | PASS |
| Max error for test 58 at offset 76737 is less than or equal to 0.000001865. | PASS |
| Max error for test 59 at offset 78134 is less than or equal to 0.000001865. | PASS |
| Max error for test 6 at offset 9176 is less than or equal to 0.000001865. | PASS |
| Max error for test 60 at offset 79457 is less than or equal to 0.000001865. | PASS |
| Max error for test 61 at offset 80780 is less than or equal to 0.000001865. | PASS |
| Max error for test 62 at offset 83272 is less than or equal to 0.000001865. | PASS |
| Max error for test 63 at offset 84595 is less than or equal to 0.000001865. | PASS |
| Max error for test 64 at offset 84749 is less than or equal to 0.000001865. | PASS |
| Max error for test 65 at offset 86072 is less than or equal to 0.000001865. | PASS |
| Max error for test 66 at offset 87395 is less than or equal to 0.000001865. | PASS |
| Max error for test 67 at offset 88644 is less than or equal to 0.000001865. | PASS |
| Max error for test 68 at offset 91210 is less than or equal to 0.000001865. | PASS |
| Max error for test 69 at offset 92533 is less than or equal to 0.000001865. | PASS |
| Max error for test 7 at offset 10499 is less than or equal to 0.000001865. | PASS |
| Max error for test 70 at offset 92687 is less than or equal to 0.000001865. | PASS |
| Max error for test 71 at offset 94010 is less than or equal to 0.000001865. | PASS |
| Max error for test 72 at offset 96502 is less than or equal to 0.000001865. | PASS |
| Max error for test 73 at offset 97899 is less than or equal to 0.000001865. | PASS |
| Max error for test 74 at offset 99148 is less than or equal to 0.000001865. | PASS |
| Max error for test 75 at offset 100467 is less than or equal to 0.000001865. | PASS |
| Max error for test 76 at offset 100552 is less than or equal to 0.000001865. | PASS |
| Max error for test 77 at offset 103190 is less than or equal to 0.000001865. | PASS |
| Max error for test 78 at offset 104436 is less than or equal to 0.000001865. | PASS |
| Max error for test 79 at offset 104598 is less than or equal to 0.000001865. | PASS |
| Max error for test 8 at offset 10669 is less than or equal to 0.000001865. | PASS |
| Max error for test 80 at offset 105921 is less than or equal to 0.000001865. | PASS |
| Max error for test 81 at offset 108405 is less than or equal to 0.000001865. | PASS |
| Max error for test 82 at offset 108567 is less than or equal to 0.000001865. | PASS |
| Max error for test 83 at offset 111051 is less than or equal to 0.000001865. | PASS |
| Max error for test 84 at offset 112451 is less than or equal to 0.000001865. | PASS |
| Max error for test 85 at offset 112459 is less than or equal to 0.000001865. | PASS |
| Max error for test 86 at offset 115020 is less than or equal to 0.000001865. | PASS |
| Max error for test 87 at offset 115182 is less than or equal to 0.000001865. | PASS |
| Max error for test 88 at offset 116426 is less than or equal to 0.000001865. | PASS |
| Max error for test 89 at offset 119068 is less than or equal to 0.000001865. | PASS |
| Max error for test 9 at offset 13219 is less than or equal to 0.000001865. | PASS |
| Max error for test 90 at offset 120306 is less than or equal to 0.000001865. | PASS |
| Max error for test 91 at offset 120395 is less than or equal to 0.000001865. | PASS |
| Max error for test 92 at offset 121718 is less than or equal to 0.000001865. | PASS |
| Max error for test 93 at offset 124360 is less than or equal to 0.000001865. | PASS |
| Max error for test 94 at offset 125586 is less than or equal to 0.000001865. | PASS |
| Max error for test 95 at offset 126908 is less than or equal to 0.000001865. | PASS |
| Max error for test 96 at offset 128330 is less than or equal to 0.000001865. | PASS |
| Max error for test 97 at offset 128381 is less than or equal to 0.000001865. | PASS |
| Max error for test 98 at offset 129710 is less than or equal to 0.000001865. | PASS |
| Max error for test 99 at offset 131532 is less than or equal to 0.000001865. | PASS |
| Number of failed tests with an acceptable relative tolerance of 0.000001865 is equal to 0. | PASS |
| Number of tests started and ended at the correct time is equal to 100. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 102 assertions) | PASS |
| > [test] AudioParam linearRampToValueAtTime() functionality | PASS |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-peaking.html (7/7, 100.00%, 0.14% of total) | OK |
| Max error in Peaking filter response is less than or equal to 5.8234e-8. | PASS |
| Number of filters tested is equal to 4. | PASS |
| Number of non-finite values in the rendered output is equal to 0. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 3 assertions) | PASS |
| > [test] Biquad peaking filter | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurveAtTime.html (26/26, 100.00%, 0.52% of total) | OK |
| Max error for test 0 at offset 903 is less than or equal to 0.0000037194. | PASS |
| Max error for test 1 at offset 2226 is less than or equal to 0.0000037194. | PASS |
| Max error for test 10 at offset 14133 is less than or equal to 0.0000037194. | PASS |
| Max error for test 11 at offset 15456 is less than or equal to 0.0000037194. | PASS |
| Max error for test 12 at offset 16779 is less than or equal to 0.0000037194. | PASS |
| Max error for test 13 at offset 18102 is less than or equal to 0.0000037194. | PASS |
| Max error for test 14 at offset 19425 is less than or equal to 0.0000037194. | PASS |
| Max error for test 15 at offset 20748 is less than or equal to 0.0000037194. | PASS |
| Max error for test 16 at offset 22071 is less than or equal to 0.0000037194. | PASS |
| Max error for test 17 at offset 23394 is less than or equal to 0.0000037194. | PASS |
| Max error for test 18 at offset 24717 is less than or equal to 0.0000037194. | PASS |
| Max error for test 19 at offset 26040 is less than or equal to 0.0000037194. | PASS |
| Max error for test 2 at offset 3549 is less than or equal to 0.0000037194. | PASS |
| Max error for test 3 at offset 4872 is less than or equal to 0.0000037194. | PASS |
| Max error for test 4 at offset 6195 is less than or equal to 0.0000037194. | PASS |
| Max error for test 5 at offset 7518 is less than or equal to 0.0000037194. | PASS |
| Max error for test 6 at offset 8841 is less than or equal to 0.0000037194. | PASS |
| Max error for test 7 at offset 10164 is less than or equal to 0.0000037194. | PASS |
| Max error for test 8 at offset 11487 is less than or equal to 0.0000037194. | PASS |
| Max error for test 9 at offset 12810 is less than or equal to 0.0000037194. | PASS |
| Number of failed tests with an acceptable relative tolerance of 0.0000037194 is equal to 0. | PASS |
| Number of tests started and ended at the correct time is equal to 20. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 22 assertions) | PASS |
| > [test] AudioParam setValueCurveAtTime() functionality. | PASS |
| /webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining.html (49/49, 100.00%, 0.99% of total) | ERROR |
| The return value of AnalyserNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of AnalyserNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of AnalyserNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of AudioBufferSourceNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of AudioBufferSourceNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of AudioBufferSourceNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of BiquadFilterNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of BiquadFilterNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of BiquadFilterNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of ChannelMergerNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of ChannelMergerNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of ChannelMergerNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of ChannelSplitterNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of ChannelSplitterNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of ChannelSplitterNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of ConvolverNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of ConvolverNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of ConvolverNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of DelayNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of DelayNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of DelayNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of DynamicsCompressorNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of DynamicsCompressorNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of DynamicsCompressorNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of GainNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of GainNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of GainNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of MediaElementAudioSourceNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of MediaElementAudioSourceNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of MediaElementAudioSourceNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of OscillatorNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of OscillatorNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of OscillatorNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of PannerNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of PannerNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of PannerNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of ScriptProcessorNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of ScriptProcessorNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of ScriptProcessorNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of StereoPannerNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of StereoPannerNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of StereoPannerNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| The return value of WaveShaperNode.connect(BiquadFilterNode, 0) matches the destination BiquadFilterNode is equal to true. | PASS |
| The return value of WaveShaperNode.connect(ChannelMergerNode, 0, 1) matches the destination ChannelMergerNode is equal to true. | PASS |
| The return value of WaveShaperNode.connect(GainNode) matches the destination GainNode is equal to true. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [from-dictionary] All assertions passed. (total 42 assertions) | PASS |
| > [from-dictionary] | PASS |
| > [media-group] | PASS |
| /webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain.html (1/1, 100.00%, 0.02% of total) | OK |
| Test effect of AnalyserNode on GainNode output | PASS |
| /webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-getChannelData.html (10/10, 100.00%, 0.20% of total) | OK |
| buffer.getChannelData(0) === buffer.getChannelData(0) is equal to true. | PASS |
| buffer.getChannelData(1) === buffer.getChannelData(1) is equal to true. | PASS |
| buffer1.getChannelData(0) === buffer2.getChannelData(0) is equal to false. | PASS |
| buffer1.getChannelData(1) === buffer2.getChannelData(1) is equal to false. | PASS |
| # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [buffer-eq] All assertions passed. (total 2 assertions) | PASS |
| < [buffer-not-eq] All assertions passed. (total 2 assertions) | PASS |
| > [buffer-eq] | PASS |
| > [buffer-not-eq] | PASS |
| /webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-reuse.html (1/1, 100.00%, 0.02% of total) | OK |
| AudioBuffer can be reused between AudioBufferSourceNodes | PASS |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling.html (6/6, 100.00%, 0.12% of total) | OK |
| Interpolated sine wave equals [0,0.05756402388215065,0.11493714898824692,0.17192909121513367,0.22835086286067963,0.28401532769203186,0.3387378752231598,0.39233705401420593,0.4446351230144501,0.49545860290527344,0.5446389317512512,0.5920130610466003,0.6374238729476929,0.6807207465171814,0.721760094165802,0.7604058384895325...] with an element-wise tolerance of {"absoluteThreshold":0.090348,"relativeThreshold":0}. | PASS |
| SNR (49.51 dB) is greater than or equal to 37.17. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [interpolate] All assertions passed. (total 2 assertions) | PASS |
| > [interpolate] Interpolation of AudioBuffers to context sample rate | PASS |
| /webaudio/the-audio-api/the-stereopanner-interface/ctor-stereopanner.html (45/45, 100.00%, 0.91% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new StereoPannerNode() threw TypeError: "Not enough arguments to StereoPannerNode.". | PASS |
| new StereoPannerNode(1) threw TypeError: "Argument 1 of StereoPannerNode.constructor is not an object.". | PASS |
| new StereoPannerNode(c, {"channelCount":0}) threw NotSupportedError: "Operation is not supported". | PASS |
| new StereoPannerNode(c, {"channelCount":1}) did not throw an exception. | PASS |
| new StereoPannerNode(c, {"channelCount":2}) did not throw an exception. | PASS |
| new StereoPannerNode(c, {"channelCount":3}) threw NotSupportedError: "Operation is not supported". | PASS |
| new StereoPannerNode(c, {"channelCount":99}) threw NotSupportedError: "Operation is not supported". | PASS |
| new StereoPannerNode(c, {"channelCountMode":"clamped-max"}) did not throw an exception. | PASS |
| new StereoPannerNode(c, {"channelCountMode":"explicit"}) did not throw an exception. | PASS |
| new StereoPannerNode(c, {"channelCountMode":"foobar"}) threw TypeError: "'channelCountMode' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelCountMode.". | PASS |
| new StereoPannerNode(c, {"channelCountMode":"max"}) threw NotSupportedError: "Operation is not supported". | PASS |
| new StereoPannerNode(c, {"channelInterpretation":"discrete"}) did not throw an exception. | PASS |
| new StereoPannerNode(c, {"channelInterpretation":"foobar"}) threw TypeError: "'channelInterpretation' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelInterpretation.". | PASS |
| new StereoPannerNode(c, {"channelInterpretation":"speakers"}) did not throw an exception. | PASS |
| new StereoPannerNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node.channelCount is equal to 1. | PASS |
| node.channelCount is equal to 2. | PASS |
| node.channelCountMode is equal to clamped-max. | PASS |
| node.channelCountMode is equal to explicit. | PASS |
| node.channelInterpretation is equal to discrete. | PASS |
| node.channelInterpretation is equal to speakers. | PASS |
| node0 = new StereoPannerNode(context) did not throw an exception. | PASS |
| node0 instanceof StereoPannerNode is equal to true. | PASS |
| node0.channelCount is equal to 2. | PASS |
| node0.channelCountMode is equal to clamped-max. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.numberOfInputs is equal to 1. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node0.pan.value is equal to 0. | PASS |
| node1 = new StereoPannerNode(, {"pan":0.75}) did not throw an exception. | PASS |
| node1 instanceof StereoPannerNode is equal to true. | PASS |
| node1.pan.value is equal to 0.75. | PASS |
| # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [constructor with options] All assertions passed. (total 3 assertions) | PASS |
| < [default constructor] All assertions passed. (total 8 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [test AudioNodeOptions] All assertions passed. (total 18 assertions) | PASS |
| > [constructor with options] | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [test AudioNodeOptions] | PASS |
| /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-getoutputtimestamp.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [getoutputtimestamp-initial-values] | PASS |
| /webaudio/the-audio-api/the-iirfilternode-interface/iirfilter.html (54/54, 100.00%, 1.09% of total) | OK |
| 4-th order IIRFilter (biquad ref) equals [0.000004181719305051956,0.000032965795980999246,0.00012939768203068525,0.0003477365826256573,0.0007387272780761123,0.0013446897501125932,0.0021993762347847223,0.0033279559575021267,0.0047471169382333755,0.006465281825512648,0.008482922799885273,0.010792970657348633,0.013381303288042545,0.01622731238603592,0.019304519519209862,0.022581251338124275...] with an element-wise tolerance of {"absoluteThreshold":1.59e-7,"relativeThreshold":0.0000211}. | PASS |
| IIR 1-pole output equals [1,-0.9,0.81,-0.7290000000000001,0.6561000000000001,-0.5904900000000002,0.5314410000000002,-0.47829690000000014,0.43046721000000016,-0.38742048900000015,0.34867844010000015,-0.31381059609000017,0.28242953648100017,-0.25418658283290013,0.22876792454961012,-0.2058911320946491...] with an element-wise tolerance of {"absoluteThreshold":2.7657e-8,"relativeThreshold":0}. | PASS |
| IIR 1-zero output equals [0.5,0.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}. | PASS |
| IIRFilter for Biquad allpass equals [0.9908915162086487,0.9728335738182068,0.9551669955253601,0.938035786151886,0.9215781688690186,0.9059253931045532,0.8912009000778198,0.8775191903114319,0.8649850487709045,0.8536927700042725,0.8437252044677734,0.8351536989212036,0.8280370235443115,0.8224214315414429,0.8183400630950928,0.8158131241798401...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0.0000431}. | PASS |
| IIRFilter for Biquad bandpass equals [0.004554244689643383,0.01358321588486433,0.022416500374674797,0.030982105061411858,0.039210930466651917,0.047037314623594284,0.05439956113696098,0.061240408569574356,0.06750746816396713,0.07315362989902496,0.07813738286495209,0.0824231505393982,0.08598148077726364,0.08878929913043976,0.09082996845245361,0.09209345281124115...] with an element-wise tolerance of {"absoluteThreshold":2e-7,"relativeThreshold":0.00087}. | PASS |
| IIRFilter for Biquad highpass equals [0.9836710095405579,0.9474786520004272,0.9044824242591858,0.8552321195602417,0.8003132939338684,0.7403419613838196,0.6759582161903381,0.6078203320503235,0.5365989208221436,0.462971031665802,0.3876142203807831,0.3112010061740875,0.23439353704452515,0.15783827006816864,0.08216116577386856,0.007963056676089764...] with an element-wise tolerance of {"absoluteThreshold":0.0000029,"relativeThreshold":0.00003}. | PASS |
| IIRFilter for Biquad highshelf equals [3.0451014041900635,2.816114664077759,2.5985424518585205,2.3935577869415283,2.2019753456115723,2.024296998977661,1.8607537746429443,1.7113466262817383,1.5758823156356812,1.4540070295333862,1.345236897468567,1.2489848136901855,1.1645853519439697,1.091315746307373,1.0284156799316406,0.975102961063385...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0.0000124}. | PASS |
| IIRFilter for Biquad lowpass equals [0.002067622495815158,0.010262038558721542,0.026408344507217407,0.0501461960375309,0.08106273412704468,0.11869751662015915,0.16254764795303345,0.2120732069015503,0.26670268177986145,0.32583874464035034,0.3888637125492096,0.4551454186439514,0.5240428447723389,0.5949114561080933,0.6671090722084045,0.7400005459785461...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0.000049834}. | PASS |
| IIRFilter for Biquad lowshelf equals [1.038480281829834,1.1165722608566284,1.1966440677642822,1.278151512145996,1.360594630241394,1.443515419960022,1.526496171951294,1.609157681465149,1.6911571025848389,1.7721866369247437,1.851970911026001,1.930266261100769,2.0068578720092773,2.0815584659576416,2.1542069911956787,2.224666118621826...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0.0000298}. | PASS |
| IIRFilter for Biquad notch equals [0.995445728302002,0.986416757106781,0.9775835275650024,0.9690179228782654,0.9607890844345093,0.9529626965522766,0.9456004500389099,0.9387595653533936,0.9324925541877747,0.9268463850021362,0.9218626022338867,0.9175768494606018,0.9140185117721558,0.9112107157707214,0.9091700315475464,0.9079065322875977...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0.0000422}. | PASS |
| IIRFilter for Biquad peaking equals [1.0055487155914307,1.016571283340454,1.0273985862731934,1.0379410982131958,1.048111915588379,1.0578279495239258,1.0670101642608643,1.0755844116210938,1.0834821462631226,1.0906407833099365,1.0970040559768677,1.1025229692459106,1.107155442237854,1.1108675003051758,1.1136326789855957,1.1154327392578125...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0.0000505}. | PASS |
| Max difference between IIR and Biquad on channel 0 is less than or equal to 0.000037671. | PASS |
| Max difference between IIR and Biquad on channel 1 is less than or equal to 0.000030071. | PASS |
| Max difference between IIR and Biquad on channel 2 is less than or equal to 0.000026241. | PASS |
| Output of IIR filter with unnormalized coefficients equals [1,-0.8999999761581421,0.8100000023841858,-0.7289999723434448,0.6560999751091003,-0.5904899835586548,0.5314409732818604,-0.4782969057559967,0.4304672181606293,-0.3874204754829407,0.34867843985557556,-0.3138105869293213,0.2824295461177826,-0.25418657064437866,0.22876793146133423,-0.20589113235473633...] with an element-wise tolerance of {"absoluteThreshold":2.1958e-38,"relativeThreshold":0}. | PASS |
| SNR for IIRFIlter for Biquad allpass is greater than or equal to 91.319. | PASS |
| SNR for IIRFIlter for Biquad bandpass is greater than or equal to 104.06. | PASS |
| SNR for IIRFIlter for Biquad highpass is greater than or equal to 105.459. | PASS |
| SNR for IIRFIlter for Biquad highshelf is greater than or equal to 103.159. | PASS |
| SNR for IIRFIlter for Biquad lowpass is greater than or equal to 91.221. | PASS |
| SNR for IIRFIlter for Biquad lowshelf is greater than or equal to 90.609. | PASS |
| SNR for IIRFIlter for Biquad notch is greater than or equal to 91.312. | PASS |
| SNR for IIRFIlter for Biquad peaking is greater than or equal to 91.504. | PASS |
| SNR of 4-th order IIRFilter (biquad ref) is greater than or equal to 108.947. | PASS |
| createIIRFilter with normalized coefficients did not throw an exception. | PASS |
| createIIRFilter with unnormalized coefficients did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 13 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [0: lowpass] All assertions passed. (total 2 assertions) | PASS |
| < [1: highpass] All assertions passed. (total 2 assertions) | PASS |
| < [2: bandpass] All assertions passed. (total 2 assertions) | PASS |
| < [3: notch] All assertions passed. (total 2 assertions) | PASS |
| < [4: allpass] All assertions passed. (total 2 assertions) | PASS |
| < [4th-order-iir] All assertions passed. (total 2 assertions) | PASS |
| < [5: lowshelf] All assertions passed. (total 2 assertions) | PASS |
| < [6: highshelf] All assertions passed. (total 2 assertions) | PASS |
| < [7: peaking] All assertions passed. (total 2 assertions) | PASS |
| < [coefficient-normalization] All assertions passed. (total 3 assertions) | PASS |
| < [multi-channel] All assertions passed. (total 3 assertions) | PASS |
| < [one-pole] All assertions passed. (total 1 assertions) | PASS |
| < [one-zero] All assertions passed. (total 1 assertions) | PASS |
| > [0: lowpass] | PASS |
| > [1: highpass] | PASS |
| > [2: bandpass] | PASS |
| > [3: notch] | PASS |
| > [4: allpass] | PASS |
| > [4th-order-iir] | PASS |
| > [5: lowshelf] | PASS |
| > [6: highshelf] | PASS |
| > [7: peaking] | PASS |
| > [coefficient-normalization] | PASS |
| > [multi-channel] | PASS |
| > [one-pole] | PASS |
| > [one-zero] | PASS |
| /webaudio/historical.html (7/7, 100.00%, 0.14% of total) | OK |
| dopplerFactor member should not exist on the AudioListener. | PASS |
| setVelocity member should not exist on the AudioListener. | PASS |
| setVelocity should not exist on PannerNodes. | PASS |
| speedOfSound member should not exist on the AudioListener. | PASS |
| webkitAudioContext interface should not exist | PASS |
| webkitAudioPannerNode interface should not exist | PASS |
| webkitOfflineAudioContext interface should not exist | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/k-rate-delay.html (12/12, 100.00%, 0.24% of total) | OK |
| DelayNode: Output of a-rate DelayNode is identical to the array [0,0.1693689525127411,0.3387379050254822,0.4880809485912323,0.6374239921569824,0.7490829825401306,0.8607419729232788,0.921514630317688,0.9822872281074524,0.9849877953529358,0.9876883625984192,0.931997537612915,0.8763067126274109,0.7688093781471252,0.6613120436668396,0.5147184133529663...]. | PASS |
| DelayNode: Output of k-rate DelayNode is identical to the array [0,0.1693689525127411,0.3387379050254822,0.4880809485912323,0.6374239921569824,0.7490829825401306,0.8607419729232788,0.921514630317688,0.9822872281074524,0.9849877953529358,0.9876883625984192,0.931997537612915,0.8763067126274109,0.7688093781471252,0.6613120436668396,0.5147184133529663...]. | PASS |
| DelayNode: Setting delayTime.automationRate to "k-rate" is equal to k-rate. | PASS |
| DelayNode: a-rate node:delayTime.linearRampToValueAtTime(0.5,1) did not throw an exception. | PASS |
| DelayNode: a-rate node:delayTime.setValueAtTime(0,0) did not throw an exception. | PASS |
| DelayNode: k-rate node: delayTime.linearRampToValueAtTime(0.5,1) did not throw an exception. | PASS |
| DelayNode: k-rate node: delayTime.setValueAtTime(0,0) did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Test k-rate DelayNode] 1 out of 8 assertions were failed. | FAIL |
| > [Test k-rate DelayNode] | PASS |
| X DelayNode: Difference between a-rate and k-rate DelayNode should have contain at least one value different from 0. | FAIL |
| /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-4-chan.html (25/25, 100.00%, 0.50% of total) | TIMEOUT |
| new AudioBuffer({numberOfChannels: 2, length: 4, sampleRate: 8192}) did not throw an exception. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [1-channel input] 2 out of 2 assertions were failed. | FAIL |
| < [2-channel input] 2 out of 2 assertions were failed. | FAIL |
| < [3-channel input] 2 out of 2 assertions were failed. | FAIL |
| < [4-channel input] 2 out of 2 assertions were failed. | FAIL |
| < [5.1-channel input] 2 out of 2 assertions were failed. | FAIL |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| > [1-channel input] produces 2-channel output | PASS |
| > [2-channel input] produces 2-channel output | PASS |
| > [3-channel input] 3->2 downmix producing 2-channel output | PASS |
| > [4-channel input] 4->2 downmix producing 2-channel output | PASS |
| > [5.1-channel input] 5.1->2 downmix producing 2-channel output | PASS |
| > [delayed buffer set] Delayed set of 4-channel response | PASS |
| > [initialize] Convolver response with one channel | PASS |
| X 1: Channel 0 expected to be equal to the array [0,0,0.9458408951759338,0.8448333740234375,1.7668662071228027,1.7069319486618042,1.6640567779541016,1.7177010774612427,1.6363751888275146,1.8421850204467773,1.1905916929244995,0.20796972513198853,-0.5251069664955139,-1.5682599544525146,-1.7950979471206665,-1.6221753358840942...] but differs in 969 places: Index Actual Expected [0] 1.1920928955078125e-7 0.0000000000000000e+0 [1] -7.4505805969238281e-8 0.0000000000000000e+0 [2] 9.4584071636199951e-1 9.4584089517593384e-1 [3] 8.4483325481414795e-1 8.4483337402343750e-1 ...and 965 more errors. | FAIL |
| X 1: Channel 1 expected to be equal to the array [0,0,0,0.9458408951759338,0.8448333740234375,1.7668662071228027,1.7069319486618042,1.6640567779541016,1.7177010774612427,1.6363751888275146,1.8421850204467773,1.1905916929244995,0.20796972513198853,-0.5251069664955139,-1.5682599544525146,-1.7950979471206665...] but differs in 1011 places: Index Actual Expected [2] -2.6077032089233398e-8 0.0000000000000000e+0 [3] 9.4584083557128906e-1 9.4584089517593384e-1 [4] 8.4483331441879272e-1 8.4483337402343750e-1 [5] 1.7668659687042236e+0 1.7668662071228027e+0 ...and 1007 more errors. | FAIL |
| X 2: Channel 0 expected to be equal to the array [0,0,0.9458408951759338,0.8448333740234375,1.812909483909607,1.6304945945739746,1.751382827758789,1.6240888833999634,1.7747939825057983,1.3059051036834717,-0.5349912047386169,-1.5818383693695068,-1.8035974502563477,-1.5881481170654297,-1.7987757921218872,-1.4335107803344727...] but differs in 1032 places: Index Actual Expected [0] -8.9406967163085938e-8 0.0000000000000000e+0 [1] -1.9371509552001953e-7 0.0000000000000000e+0 [2] 9.4584083557128906e-1 9.4584089517593384e-1 [3] 8.4483325481414795e-1 8.4483337402343750e-1 ...and 1028 more errors. | FAIL |
| X 2: Channel 1 expected to be equal to the array [0,0,0,0.9458408951759338,0.8448333740234375,1.812909483909607,1.6304945945739746,1.751382827758789,1.6240888833999634,1.7747939825057983,1.3059051036834717,-0.5349912047386169,-1.5818383693695068,-1.8035974502563477,-1.5881481170654297,-1.7987757921218872...] but differs in 1003 places: Index Actual Expected [0] -5.9604644775390625e-8 0.0000000000000000e+0 [1] -1.4901161193847656e-7 0.0000000000000000e+0 [2] -2.0489096641540527e-7 0.0000000000000000e+0 [3] 9.4584083557128906e-1 9.4584089517593384e-1 ...and 999 more errors. | FAIL |
| X 3: Channel 0 expected to be equal to the array [0,0,0.9458408951759338,0.8448333740234375,1.812909483909607,1.6304945945739746,1.751382827758789,1.6240888833999634,1.7747939825057983,1.3059051036834717,-0.5349912047386169,-1.5818383693695068,-1.8035974502563477,-1.5881481170654297,-1.7987757921218872,-1.4335107803344727...] but differs in 1032 places: Index Actual Expected [0] -8.9406967163085938e-8 0.0000000000000000e+0 [1] -1.9371509552001953e-7 0.0000000000000000e+0 [2] 9.4584083557128906e-1 9.4584089517593384e-1 [3] 8.4483325481414795e-1 8.4483337402343750e-1 ...and 1028 more errors. | FAIL |
| X 3: Channel 1 expected to be equal to the array [0,0,0,0.9458408951759338,0.8448333740234375,1.812909483909607,1.6304945945739746,1.751382827758789,1.6240888833999634,1.7747939825057983,1.3059051036834717,-0.5349912047386169,-1.5818383693695068,-1.8035974502563477,-1.5881481170654297,-1.7987757921218872...] but differs in 1003 places: Index Actual Expected [0] -5.9604644775390625e-8 0.0000000000000000e+0 [1] -1.4901161193847656e-7 0.0000000000000000e+0 [2] -2.0489096641540527e-7 0.0000000000000000e+0 [3] 9.4584083557128906e-1 9.4584089517593384e-1 ...and 999 more errors. | FAIL |
| X 4: Channel 0 expected to be equal to the array [0,0,0.9706697463989258,0.8062858581542969,1.8264563083648682,1.6379892826080322,1.0640915632247925,0.11066664755344391,0.0652712881565094,-0.2920137643814087,-0.7946902513504028,-0.007852882146835327,-0.029863953590393066,0.06670215725898743,-0.27740323543548584,-1.19685959815979...] but differs in 1056 places: Index Actual Expected [1] -4.4703483581542969e-8 0.0000000000000000e+0 [2] 9.7066980600357056e-1 9.7066974639892578e-1 [3] 8.0628573894500732e-1 8.0628585815429688e-1 [5] 1.6379891633987427e+0 1.6379892826080322e+0 ...and 1052 more errors. | FAIL |
| X 4: Channel 1 expected to be equal to the array [0,0,0,0.9706697463989258,0.8062858581542969,1.8264563083648682,1.6379892826080322,1.0640915632247925,0.11066664755344391,0.0652712881565094,-0.2920137643814087,-0.7946902513504028,-0.007852882146835327,-0.029863953590393066,0.06670215725898743,-0.27740323543548584...] but differs in 1060 places: Index Actual Expected [0] 2.9802322387695313e-8 0.0000000000000000e+0 [1] 1.6763806343078613e-8 0.0000000000000000e+0 [2] 3.4458935260772705e-8 0.0000000000000000e+0 [3] 9.7066986560821533e-1 9.7066974639892578e-1 ...and 1056 more errors. | FAIL |
| X 5.1: Channel 0 expected to be equal to the array [0,0,2.2955899238586426,2.0720272064208984,3.9322750568389893,2.6799845695495605,1.0305213928222656,0.573580801486969,1.1953470706939697,1.1813762187957764,-0.4176445007324219,-2.2066144943237305,-2.9535818099975586,-1.275363564491272,0.26151078939437866,0.6016380786895752...] but differs in 1030 places: Index Actual Expected [0] 1.1920928955078125e-7 0.0000000000000000e+0 [1] -1.0430812835693359e-7 0.0000000000000000e+0 [2] 2.2955901622772217e+0 2.2955899238586426e+0 [4] 3.9322748184204102e+0 3.9322750568389893e+0 ...and 1026 more errors. | FAIL |
| X 5.1: Channel 1 expected to be equal to the array [0,0,0,2.2955899238586426,2.0720272064208984,3.9322750568389893,2.6799845695495605,1.0305213928222656,0.573580801486969,1.1953470706939697,1.1813762187957764,-0.4176445007324219,-2.2066144943237305,-2.9535818099975586,-1.275363564491272,0.26151078939437866...] but differs in 1039 places: Index Actual Expected [0] 2.9802322387695313e-8 0.0000000000000000e+0 [2] 1.1175870895385742e-8 0.0000000000000000e+0 [3] 2.2955901622772217e+0 2.2955899238586426e+0 [4] 2.0720274448394775e+0 2.0720272064208984e+0 ...and 1035 more errors. | FAIL |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-constructor-options.https.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [setup] | PASS |
| /webaudio/the-audio-api/the-dynamicscompressornode-interface/ctor-dynamicscompressor.html (57/57, 100.00%, 1.15% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new DynamicsCompressorNode() threw TypeError: "Not enough arguments to DynamicsCompressorNode.". | PASS |
| new DynamicsCompressorNode(1) threw TypeError: "Argument 1 of DynamicsCompressorNode.constructor is not an object.". | PASS |
| new DynamicsCompressorNode(c, {"channelCount":0}) threw NotSupportedError: "Operation is not supported". | PASS |
| new DynamicsCompressorNode(c, {"channelCount":1}) did not throw an exception. | PASS |
| new DynamicsCompressorNode(c, {"channelCount":2}) did not throw an exception. | PASS |
| new DynamicsCompressorNode(c, {"channelCount":99}) threw NotSupportedError: "Operation is not supported". | PASS |
| new DynamicsCompressorNode(c, {"channelCountMode":"clamped-max"}) did not throw an exception. | PASS |
| new DynamicsCompressorNode(c, {"channelCountMode":"explicit"}) did not throw an exception. | PASS |
| new DynamicsCompressorNode(c, {"channelCountMode":"foobar"}) threw TypeError: "'channelCountMode' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelCountMode.". | PASS |
| new DynamicsCompressorNode(c, {"channelInterpretation":"discrete"}) did not throw an exception. | PASS |
| new DynamicsCompressorNode(c, {"channelInterpretation":"foobar"}) threw TypeError: "'channelInterpretation' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelInterpretation.". | PASS |
| new DynamicsCompressorNode(c, {"channelInterpretation":"speakers"}) did not throw an exception. | PASS |
| new DynamicsCompressorNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node.channelCount is equal to 1. | PASS |
| node.channelCount is equal to 2. | PASS |
| node.channelCountMode is equal to clamped-max. | PASS |
| node.channelCountMode is equal to explicit. | PASS |
| node.channelInterpretation is equal to discrete. | PASS |
| node.channelInterpretation is equal to speakers. | PASS |
| node0 = new DynamicsCompressorNode(context) did not throw an exception. | PASS |
| node0 instanceof DynamicsCompressorNode is equal to true. | PASS |
| node0.attack.value is equal to 0.003000000026077032. | PASS |
| node0.channelCount is equal to 2. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.knee.value is equal to 30. | PASS |
| node0.numberOfInputs is equal to 1. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node0.ratio.value is equal to 12. | PASS |
| node0.reduction is equal to 0. | PASS |
| node0.release.value is equal to 0.25. | PASS |
| node0.threshold.value is equal to -24. | PASS |
| node1 = new DynamicsCompressorNode(c, {"threshold":-33,"knee":15,"ratio":7,"attack":0.625,"release":0.125}) did not throw an exception. | PASS |
| node1 instanceof DynamicsCompressorNode is equal to true. | PASS |
| node1.attack.value is equal to 0.625. | PASS |
| node1.channelCount is equal to 2. | PASS |
| node1.channelInterpretation is equal to speakers. | PASS |
| node1.knee.value is equal to 15. | PASS |
| node1.ratio.value is equal to 7. | PASS |
| node1.release.value is equal to 0.125. | PASS |
| node1.threshold.value is equal to -33. | PASS |
| # AUDIT TASK RUNNER FINISHED: 3 out of 5 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [constructor with options] 1 out of 10 assertions were failed. | FAIL |
| < [default constructor] 1 out of 13 assertions were failed. | FAIL |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [test AudioNodeOptions] 2 out of 18 assertions were failed. | FAIL |
| > [constructor with options] | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [test AudioNodeOptions] | PASS |
| X new DynamicsCompressorNode(c, {"channelCount":3}) did not throw an exception. | FAIL |
| X new DynamicsCompressorNode(c, {"channelCountMode":"max"}) did not throw an exception. | FAIL |
| X node0.channelCountMode is not equal to clamped-max. Got explicit. | FAIL |
| X node1.channelCountMode is not equal to clamped-max. Got explicit. | FAIL |
| /webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html (3/3, 100.00%, 0.06% of total) | OK |
| All data processed correctly | FAIL |
| Channel 0 processed some data | PASS |
| Element Source tests completed | PASS |
| /webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic.html (40/40, 100.00%, 0.81% of total) | OK |
| Calling start() twice threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| Calling stop() before start() threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| Constructor: node = new ConstantSourceNode() did not throw an exception. | PASS |
| Constructor: node instance of ConstantSourceNode is equal to true. | PASS |
| Constructor: node.channelCount is equal to 2. | PASS |
| Constructor: node.channelCountMode is equal to max. | PASS |
| Constructor: node.channelInterpretation is equal to speakers. | PASS |
| Constructor: node.numberOfInputs is equal to 0. | PASS |
| Constructor: node.numberOfOutputs is equal to 1. | PASS |
| Constructor: node.offset.defaultValue is equal to 1. | PASS |
| Constructor: node.offset.maxValue is equal to 3.4028234663852886e+38. | PASS |
| Constructor: node.offset.minValue is equal to -3.4028234663852886e+38. | PASS |
| Constructor: node.offset.value is equal to 1. | PASS |
| Factory method: node = context.createConstantSource() did not throw an exception. | PASS |
| Factory method: node instance of ConstantSourceNode is equal to true. | PASS |
| Factory method: node.channelCount is equal to 2. | PASS |
| Factory method: node.channelCountMode is equal to max. | PASS |
| Factory method: node.channelInterpretation is equal to speakers. | PASS |
| Factory method: node.numberOfInputs is equal to 0. | PASS |
| Factory method: node.numberOfOutputs is equal to 1. | PASS |
| Factory method: node.offset.defaultValue is equal to 1. | PASS |
| Factory method: node.offset.maxValue is equal to 3.4028234663852886e+38. | PASS |
| Factory method: node.offset.minValue is equal to -3.4028234663852886e+38. | PASS |
| Factory method: node.offset.value is equal to 1. | PASS |
| start(-1) threw RangeError: "The value for the start time is outside the valid range.". | PASS |
| start(-Infinity) threw TypeError: "Argument 1 of AudioScheduledSourceNode.start is not a finite floating-point value.". | PASS |
| start(Infinity) threw TypeError: "Argument 1 of AudioScheduledSourceNode.start is not a finite floating-point value.". | PASS |
| start(NaN) threw TypeError: "Argument 1 of AudioScheduledSourceNode.start is not a finite floating-point value.". | PASS |
| stop(-1) threw RangeError: "The value for the stop time is outside the valid range.". | PASS |
| stop(-Infinity) threw TypeError: "Argument 1 of AudioScheduledSourceNode.stop is not a finite floating-point value.". | PASS |
| stop(Infinity) threw TypeError: "Argument 1 of AudioScheduledSourceNode.stop is not a finite floating-point value.". | PASS |
| stop(NaN) threw TypeError: "Argument 1 of AudioScheduledSourceNode.stop is not a finite floating-point value.". | PASS |
| # AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [createConstantSource()] All assertions passed. (total 11 assertions) | PASS |
| < [new ConstantSourceNode()] All assertions passed. (total 11 assertions) | PASS |
| < [start/stop exceptions] All assertions passed. (total 10 assertions) | PASS |
| > [createConstantSource()] | PASS |
| > [new ConstantSourceNode()] | PASS |
| > [start/stop exceptions] | PASS |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-channel-count.https.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [setup-buffer-and-worklet] | PASS |
| /webaudio/the-audio-api/the-gainnode-interface/gain-basic.html (5/5, 100.00%, 0.10% of total) | OK |
| gainNode.gain instanceof AudioParam is true. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 1 assertions) | PASS |
| > [test] | PASS |
| /webaudio/the-audio-api/the-audionode-interface/audionode.html (16/16, 100.00%, 0.32% of total) | OK |
| AudioBufferSource.numberOfInputs is equal to 0. | PASS |
| AudioBufferSource.numberOfOutputs is equal to 1. | PASS |
| AudioContext.destination.numberOfInputs is equal to 1. | PASS |
| AudioContext.destination.numberOfOutputs is equal to 0. | PASS |
| AudioNode is an EventTarget is true. | PASS |
| Connecting a node to a different context threw InvalidAccessError: "A parameter or an operation is not supported by the underlying object". | PASS |
| audioNode.connect(0, 0, 0) threw TypeError: "Argument 1 of AudioNode.connect is not an object.". | PASS |
| audioNode.connect(context.destination, 0, 0) did not throw an exception. | PASS |
| audioNode.connect(context.destination, 0, 5) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| audioNode.connect(context.destination, 5, 0) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| audioNode.connect(null, 0, 0) threw TypeError: "Argument 1 of AudioNode.connect is not an object.". | PASS |
| context3 = new AudioContext(1, 44100, 44100) threw TypeError: "Argument 1 of AudioContext.constructor can't be converted to a dictionary.". | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 12 assertions) | PASS |
| > [test] Basic tests for AudioNode API. | PASS |
| /webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html (3/3, 100.00%, 0.06% of total) | OK |
| discrete | PASS |
| speakers, initially mono | PASS |
| speakers, initially stereo | PASS |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowpass.html (7/7, 100.00%, 0.14% of total) | OK |
| Max error in Lowpass filter response is less than or equal to 9.7869e-8. | PASS |
| Number of filters tested is equal to 5. | PASS |
| Number of non-finite values in the rendered output is equal to 0. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 3 assertions) | PASS |
| > [test] Biquad lowpass filter | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueAtTime.html (106/106, 100.00%, 2.14% of total) | OK |
| Max error for test 0 at offset 0 is less than or equal to 6e-8. | PASS |
| Max error for test 1 at offset 1323 is less than or equal to 6e-8. | PASS |
| Max error for test 10 at offset 13230 is less than or equal to 6e-8. | PASS |
| Max error for test 11 at offset 14553 is less than or equal to 6e-8. | PASS |
| Max error for test 12 at offset 15876 is less than or equal to 6e-8. | PASS |
| Max error for test 13 at offset 17199 is less than or equal to 6e-8. | PASS |
| Max error for test 14 at offset 18522 is less than or equal to 6e-8. | PASS |
| Max error for test 15 at offset 19845 is less than or equal to 6e-8. | PASS |
| Max error for test 16 at offset 21168 is less than or equal to 6e-8. | PASS |
| Max error for test 17 at offset 22491 is less than or equal to 6e-8. | PASS |
| Max error for test 18 at offset 23814 is less than or equal to 6e-8. | PASS |
| Max error for test 19 at offset 25137 is less than or equal to 6e-8. | PASS |
| Max error for test 2 at offset 2646 is less than or equal to 6e-8. | PASS |
| Max error for test 20 at offset 26460 is less than or equal to 6e-8. | PASS |
| Max error for test 21 at offset 27783 is less than or equal to 6e-8. | PASS |
| Max error for test 22 at offset 29106 is less than or equal to 6e-8. | PASS |
| Max error for test 23 at offset 30429 is less than or equal to 6e-8. | PASS |
| Max error for test 24 at offset 31752 is less than or equal to 6e-8. | PASS |
| Max error for test 25 at offset 33075 is less than or equal to 6e-8. | PASS |
| Max error for test 26 at offset 34398 is less than or equal to 6e-8. | PASS |
| Max error for test 27 at offset 35721 is less than or equal to 6e-8. | PASS |
| Max error for test 28 at offset 37044 is less than or equal to 6e-8. | PASS |
| Max error for test 29 at offset 38367 is less than or equal to 6e-8. | PASS |
| Max error for test 3 at offset 3969 is less than or equal to 6e-8. | PASS |
| Max error for test 30 at offset 39690 is less than or equal to 6e-8. | PASS |
| Max error for test 31 at offset 41013 is less than or equal to 6e-8. | PASS |
| Max error for test 32 at offset 42336 is less than or equal to 6e-8. | PASS |
| Max error for test 33 at offset 43659 is less than or equal to 6e-8. | PASS |
| Max error for test 34 at offset 44982 is less than or equal to 6e-8. | PASS |
| Max error for test 35 at offset 46305 is less than or equal to 6e-8. | PASS |
| Max error for test 36 at offset 47628 is less than or equal to 6e-8. | PASS |
| Max error for test 37 at offset 48951 is less than or equal to 6e-8. | PASS |
| Max error for test 38 at offset 50274 is less than or equal to 6e-8. | PASS |
| Max error for test 39 at offset 51597 is less than or equal to 6e-8. | PASS |
| Max error for test 4 at offset 5292 is less than or equal to 6e-8. | PASS |
| Max error for test 40 at offset 52920 is less than or equal to 6e-8. | PASS |
| Max error for test 41 at offset 54243 is less than or equal to 6e-8. | PASS |
| Max error for test 42 at offset 55566 is less than or equal to 6e-8. | PASS |
| Max error for test 43 at offset 56889 is less than or equal to 6e-8. | PASS |
| Max error for test 44 at offset 58212 is less than or equal to 6e-8. | PASS |
| Max error for test 45 at offset 59535 is less than or equal to 6e-8. | PASS |
| Max error for test 46 at offset 60858 is less than or equal to 6e-8. | PASS |
| Max error for test 47 at offset 62181 is less than or equal to 6e-8. | PASS |
| Max error for test 48 at offset 63504 is less than or equal to 6e-8. | PASS |
| Max error for test 49 at offset 64827 is less than or equal to 6e-8. | PASS |
| Max error for test 5 at offset 6615 is less than or equal to 6e-8. | PASS |
| Max error for test 50 at offset 66150 is less than or equal to 6e-8. | PASS |
| Max error for test 51 at offset 67473 is less than or equal to 6e-8. | PASS |
| Max error for test 52 at offset 68796 is less than or equal to 6e-8. | PASS |
| Max error for test 53 at offset 70119 is less than or equal to 6e-8. | PASS |
| Max error for test 54 at offset 71442 is less than or equal to 6e-8. | PASS |
| Max error for test 55 at offset 72765 is less than or equal to 6e-8. | PASS |
| Max error for test 56 at offset 74088 is less than or equal to 6e-8. | PASS |
| Max error for test 57 at offset 75411 is less than or equal to 6e-8. | PASS |
| Max error for test 58 at offset 76734 is less than or equal to 6e-8. | PASS |
| Max error for test 59 at offset 78057 is less than or equal to 6e-8. | PASS |
| Max error for test 6 at offset 7938 is less than or equal to 6e-8. | PASS |
| Max error for test 60 at offset 79380 is less than or equal to 6e-8. | PASS |
| Max error for test 61 at offset 80703 is less than or equal to 6e-8. | PASS |
| Max error for test 62 at offset 82026 is less than or equal to 6e-8. | PASS |
| Max error for test 63 at offset 83349 is less than or equal to 6e-8. | PASS |
| Max error for test 64 at offset 84672 is less than or equal to 6e-8. | PASS |
| Max error for test 65 at offset 85995 is less than or equal to 6e-8. | PASS |
| Max error for test 66 at offset 87318 is less than or equal to 6e-8. | PASS |
| Max error for test 67 at offset 88641 is less than or equal to 6e-8. | PASS |
| Max error for test 68 at offset 89964 is less than or equal to 6e-8. | PASS |
| Max error for test 69 at offset 91287 is less than or equal to 6e-8. | PASS |
| Max error for test 7 at offset 9261 is less than or equal to 6e-8. | PASS |
| Max error for test 70 at offset 92610 is less than or equal to 6e-8. | PASS |
| Max error for test 71 at offset 93933 is less than or equal to 6e-8. | PASS |
| Max error for test 72 at offset 95256 is less than or equal to 6e-8. | PASS |
| Max error for test 73 at offset 96579 is less than or equal to 6e-8. | PASS |
| Max error for test 74 at offset 97902 is less than or equal to 6e-8. | PASS |
| Max error for test 75 at offset 99225 is less than or equal to 6e-8. | PASS |
| Max error for test 76 at offset 100548 is less than or equal to 6e-8. | PASS |
| Max error for test 77 at offset 101871 is less than or equal to 6e-8. | PASS |
| Max error for test 78 at offset 103194 is less than or equal to 6e-8. | PASS |
| Max error for test 79 at offset 104517 is less than or equal to 6e-8. | PASS |
| Max error for test 8 at offset 10584 is less than or equal to 6e-8. | PASS |
| Max error for test 80 at offset 105840 is less than or equal to 6e-8. | PASS |
| Max error for test 81 at offset 107163 is less than or equal to 6e-8. | PASS |
| Max error for test 82 at offset 108486 is less than or equal to 6e-8. | PASS |
| Max error for test 83 at offset 109809 is less than or equal to 6e-8. | PASS |
| Max error for test 84 at offset 111132 is less than or equal to 6e-8. | PASS |
| Max error for test 85 at offset 112455 is less than or equal to 6e-8. | PASS |
| Max error for test 86 at offset 113778 is less than or equal to 6e-8. | PASS |
| Max error for test 87 at offset 115101 is less than or equal to 6e-8. | PASS |
| Max error for test 88 at offset 116424 is less than or equal to 6e-8. | PASS |
| Max error for test 89 at offset 117747 is less than or equal to 6e-8. | PASS |
| Max error for test 9 at offset 11907 is less than or equal to 6e-8. | PASS |
| Max error for test 90 at offset 119070 is less than or equal to 6e-8. | PASS |
| Max error for test 91 at offset 120393 is less than or equal to 6e-8. | PASS |
| Max error for test 92 at offset 121716 is less than or equal to 6e-8. | PASS |
| Max error for test 93 at offset 123039 is less than or equal to 6e-8. | PASS |
| Max error for test 94 at offset 124362 is less than or equal to 6e-8. | PASS |
| Max error for test 95 at offset 125685 is less than or equal to 6e-8. | PASS |
| Max error for test 96 at offset 127008 is less than or equal to 6e-8. | PASS |
| Max error for test 97 at offset 128331 is less than or equal to 6e-8. | PASS |
| Max error for test 98 at offset 129654 is less than or equal to 6e-8. | PASS |
| Max error for test 99 at offset 130977 is less than or equal to 6e-8. | PASS |
| Number of failed tests with an acceptable relative tolerance of 6e-8 is equal to 0. | PASS |
| Number of tests started and ended at the correct time is equal to 100. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 102 assertions) | PASS |
| > [test] AudioParam setValueAtTime() functionality. | PASS |
| /webaudio/the-audio-api/the-gainnode-interface/gain.html (10/10, 100.00%, 0.20% of total) | OK |
| Left SNR (in dB) is greater than or equal to 148.69. | PASS |
| Left output from gain node equals [0,0.12505052983760834,0.24813784658908844,0.36732959747314453,0.480754554271698,0.5866320133209229,0.6832997798919678,0.7692402601242065,0.8431042432785034,0.9037321209907532,0.9501721262931824,0.9816950559616089,0.997806191444397,0.9982524514198303,0.9830269813537598,0.9523686766624451...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":1.1908e-7}. | PASS |
| Right SNR (in dB) is greater than or equal to 148.69. | PASS |
| Right output from gain node equals [0,0.12505052983760834,0.24813784658908844,0.36732959747314453,0.480754554271698,0.5866320133209229,0.6832997798919678,0.7692402601242065,0.8431042432785034,0.9037321209907532,0.9501721262931824,0.9816950559616089,0.997806191444397,0.9982524514198303,0.9830269813537598,0.9523686766624451...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":1.1908e-7}. | PASS |
| # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [create context] All assertions passed. (total 0 assertions) | PASS |
| < [test] All assertions passed. (total 4 assertions) | PASS |
| > [create context] Create context for test | PASS |
| > [test] GainNode functionality | PASS |
| /webaudio/the-audio-api/the-waveshapernode-interface/waveshaper.html (5/5, 100.00%, 0.10% of total) | OK |
| WaveShaperNode applied non-linear distortion correctly is true. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 1 assertions) | PASS |
| > [test] | PASS |
| /webaudio/the-audio-api/the-audionode-interface/audionode-connect-return-value.html (1/1, 100.00%, 0.02% of total) | OK |
| connect should return the node connected to. | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueCurveAtTime.html (1/1, 100.00%, 0.02% of total) | TIMEOUT |
| /webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueCurveAtTime.html | TIMEOUT |
| /webaudio/the-audio-api/the-pannernode-interface/panner-equalpower-stereo.html (8/8, 100.00%, 0.16% of total) | OK |
| Error in left channel gain values is less than or equal to 0.0000013. | PASS |
| Error in right channel gain values is less than or equal to 0.0000013. | PASS |
| Number of impulses found is equal to 100. | PASS |
| Offsets of impulses at the wrong position is identical to the array []. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 4 assertions) | PASS |
| > [test] Equal-power panner model of AudioPannerNode with stereo source | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad.html (55/55, 100.00%, 1.11% of total) | OK |
| All k-rate params: Output of a-rate BiquadFilterNode is identical to the array [0,0.005672738421708345,0.031761426478624344,0.09152895957231522,0.18822041153907776,0.31529122591018677,0.4580240547657013,0.596237063407898,0.7076711058616638,0.7715818881988525,0.7720558643341064,0.7006218433380127,0.5578290820121765,0.3535992503166199,0.10631799697875977,-0.1592119038105011...]. | PASS |
| All k-rate params: Output of k-rate BiquadFilterNode is identical to the array [0,0.005672738421708345,0.031761426478624344,0.09152895957231522,0.18822041153907776,0.31529122591018677,0.4580240547657013,0.596237063407898,0.7076711058616638,0.7715818881988525,0.7720558643341064,0.7006218433380127,0.5578290820121765,0.3535992503166199,0.10631799697875977,-0.1592119038105011...]. | PASS |
| All k-rate params: Setting Q.automationRate to "k-rate" is equal to k-rate. | PASS |
| All k-rate params: Setting detune.automationRate to "k-rate" is equal to k-rate. | PASS |
| All k-rate params: Setting frequency.automationRate to "k-rate" is equal to k-rate. | PASS |
| All k-rate params: Setting gain.automationRate to "k-rate" is equal to k-rate. | PASS |
| All k-rate params: a-rate node:frequency.linearRampToValueAtTime(0,1) did not throw an exception. | PASS |
| All k-rate params: a-rate node:frequency.setValueAtTime(350,0) did not throw an exception. | PASS |
| All k-rate params: k-rate node: frequency.linearRampToValueAtTime(0,1) did not throw an exception. | PASS |
| All k-rate params: k-rate node: frequency.setValueAtTime(350,0) did not throw an exception. | PASS |
| k-rate Q: Output of a-rate BiquadFilterNode is identical to the array [0,0.39067503809928894,0.8280425071716309,1.237112283706665,1.5446852445602417,1.689960241317749,1.6333723068237305,1.3625420331954956,0.8945993781089783,0.2746044099330902,-0.42971938848495483,-1.136267900466919,-1.7588073015213013,-2.217907190322876,-2.451180934906006,-2.4215526580810547...]. | PASS |
| k-rate Q: Output of k-rate BiquadFilterNode is identical to the array [0,0.39067503809928894,0.8280425071716309,1.237112283706665,1.5446852445602417,1.689960241317749,1.6333723068237305,1.3625420331954956,0.8945993781089783,0.2746044099330902,-0.42971938848495483,-1.136267900466919,-1.7588073015213013,-2.217907190322876,-2.451180934906006,-2.4215526580810547...]. | PASS |
| k-rate Q: Setting Q.automationRate to "k-rate" is equal to k-rate. | PASS |
| k-rate Q: a-rate node:Q.linearRampToValueAtTime(10,1) did not throw an exception. | PASS |
| k-rate Q: a-rate node:Q.setValueAtTime(1,0) did not throw an exception. | PASS |
| k-rate Q: k-rate node: Q.linearRampToValueAtTime(10,1) did not throw an exception. | PASS |
| k-rate Q: k-rate node: Q.setValueAtTime(1,0) did not throw an exception. | PASS |
| k-rate detune: Output of a-rate BiquadFilterNode is identical to the array [0,0.39067503809928894,0.8280425071716309,1.237112283706665,1.5446852445602417,1.689960241317749,1.6333723068237305,1.3625420331954956,0.8945993781089783,0.2746044099330902,-0.42971938848495483,-1.136267900466919,-1.7588073015213013,-2.217907190322876,-2.451180934906006,-2.4215526580810547...]. | PASS |
| k-rate detune: Output of k-rate BiquadFilterNode is identical to the array [0,0.39067503809928894,0.8280425071716309,1.237112283706665,1.5446852445602417,1.689960241317749,1.6333723068237305,1.3625420331954956,0.8945993781089783,0.2746044099330902,-0.42971938848495483,-1.136267900466919,-1.7588073015213013,-2.217907190322876,-2.451180934906006,-2.4215526580810547...]. | PASS |
| k-rate detune: Setting detune.automationRate to "k-rate" is equal to k-rate. | PASS |
| k-rate detune: a-rate node:detune.linearRampToValueAtTime(1200,1) did not throw an exception. | PASS |
| k-rate detune: a-rate node:detune.setValueAtTime(0,0) did not throw an exception. | PASS |
| k-rate detune: k-rate node: detune.linearRampToValueAtTime(1200,1) did not throw an exception. | PASS |
| k-rate detune: k-rate node: detune.setValueAtTime(0,0) did not throw an exception. | PASS |
| k-rate frequency: Output of a-rate BiquadFilterNode is identical to the array [0,0.39067503809928894,0.8280425071716309,1.237112283706665,1.5446852445602417,1.689960241317749,1.6333723068237305,1.3625420331954956,0.8945993781089783,0.2746044099330902,-0.42971938848495483,-1.136267900466919,-1.7588073015213013,-2.217907190322876,-2.451180934906006,-2.4215526580810547...]. | PASS |
| k-rate frequency: Output of k-rate BiquadFilterNode is identical to the array [0,0.39067503809928894,0.8280425071716309,1.237112283706665,1.5446852445602417,1.689960241317749,1.6333723068237305,1.3625420331954956,0.8945993781089783,0.2746044099330902,-0.42971938848495483,-1.136267900466919,-1.7588073015213013,-2.217907190322876,-2.451180934906006,-2.4215526580810547...]. | PASS |
| k-rate frequency: Setting frequency.automationRate to "k-rate" is equal to k-rate. | PASS |
| k-rate frequency: a-rate node:frequency.linearRampToValueAtTime(0,1) did not throw an exception. | PASS |
| k-rate frequency: a-rate node:frequency.setValueAtTime(350,0) did not throw an exception. | PASS |
| k-rate frequency: k-rate node: frequency.linearRampToValueAtTime(0,1) did not throw an exception. | PASS |
| k-rate frequency: k-rate node: frequency.setValueAtTime(350,0) did not throw an exception. | PASS |
| k-rate gain: Output of a-rate BiquadFilterNode is identical to the array [0,0.39067503809928894,0.8280425071716309,1.237112283706665,1.5446852445602417,1.689960241317749,1.6333723068237305,1.3625420331954956,0.8945993781089783,0.2746044099330902,-0.42971938848495483,-1.136267900466919,-1.7588073015213013,-2.217907190322876,-2.451180934906006,-2.4215526580810547...]. | PASS |
| k-rate gain: Output of k-rate BiquadFilterNode is identical to the array [0,0.39067503809928894,0.8280425071716309,1.237112283706665,1.5446852445602417,1.689960241317749,1.6333723068237305,1.3625420331954956,0.8945993781089783,0.2746044099330902,-0.42971938848495483,-1.136267900466919,-1.7588073015213013,-2.217907190322876,-2.451180934906006,-2.4215526580810547...]. | PASS |
| k-rate gain: Setting gain.automationRate to "k-rate" is equal to k-rate. | PASS |
| k-rate gain: a-rate node:gain.linearRampToValueAtTime(0,1) did not throw an exception. | PASS |
| k-rate gain: a-rate node:gain.setValueAtTime(10,0) did not throw an exception. | PASS |
| k-rate gain: k-rate node: gain.linearRampToValueAtTime(0,1) did not throw an exception. | PASS |
| k-rate gain: k-rate node: gain.setValueAtTime(10,0) did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 5 out of 5 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Biquad k-rate AudioParams (all)] 1 out of 11 assertions were failed. | FAIL |
| < [Biquad k-rate Q] 1 out of 8 assertions were failed. | FAIL |
| < [Biquad k-rate detune] 1 out of 8 assertions were failed. | FAIL |
| < [Biquad k-rate frequency] 1 out of 8 assertions were failed. | FAIL |
| < [Biquad k-rate gain] 1 out of 8 assertions were failed. | FAIL |
| > [Biquad k-rate AudioParams (all)] | PASS |
| > [Biquad k-rate Q] | PASS |
| > [Biquad k-rate detune] | PASS |
| > [Biquad k-rate frequency] | PASS |
| > [Biquad k-rate gain] | PASS |
| X All k-rate params: Difference between a-rate and k-rate BiquadFilterNode should have contain at least one value different from 0. | FAIL |
| X k-rate Q: Difference between a-rate and k-rate BiquadFilterNode should have contain at least one value different from 0. | FAIL |
| X k-rate detune: Difference between a-rate and k-rate BiquadFilterNode should have contain at least one value different from 0. | FAIL |
| X k-rate frequency: Difference between a-rate and k-rate BiquadFilterNode should have contain at least one value different from 0. | FAIL |
| X k-rate gain: Difference between a-rate and k-rate BiquadFilterNode should have contain at least one value different from 0. | FAIL |
| /webaudio/the-audio-api/the-audioparam-interface/retrospective-exponentialRampToValueAtTime.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [test] Test exponentialRampToValue with end time in the past | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/retrospective-linearRampToValueAtTime.html (1/1, 100.00%, 0.02% of total) | TIMEOUT |
| /webaudio/the-audio-api/the-audioparam-interface/retrospective-linearRampToValueAtTime.html | TIMEOUT |
| /webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html (1/1, 100.00%, 0.02% of total) | OK |
| Test AnalyserNode when the input is silent | PASS |
| /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume.html (6/6, 100.00%, 0.12% of total) | ERROR |
| offlineContext = new OfflineAudioContext(1, 44100, 44100) did not throw an exception. | PASS |
| offlineContext.state is equal to suspended. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [test-suspend] Test suspend() for offline context | PASS |
| X p1 = offlineContext.suspend() incorrectly threw TypeError: "offlineContext.suspend is not a function". | FAIL |
| X p1 instanceof Promise is not true. Got false. | FAIL |
| /webaudio/the-audio-api/the-audionode-interface/channel-mode-interp-basic.html (10/10, 100.00%, 0.20% of total) | OK |
| After rendering node.channelCountMode is equal to explicit. | PASS |
| After rendering node.channelInterpretation is equal to discrete. | PASS |
| node.channelCountMode is equal to explicit. | PASS |
| node.channelInterpretation is equal to discrete. | PASS |
| # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [interp] All assertions passed. (total 2 assertions) | PASS |
| < [mode] All assertions passed. (total 2 assertions) | PASS |
| > [interp] | PASS |
| > [mode] | PASS |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-messageport.https.html (1/1, 100.00%, 0.02% of total) | OK |
| Test MessagePort in AudioWorkletNode and AudioWorkletProcessor | FAIL |
| /webaudio/the-audio-api/the-dynamicscompressornode-interface/dynamicscompressor-basic.html (11/11, 100.00%, 0.22% of total) | OK |
| compressor.attack.value is equal to 0.003000000026077032. | PASS |
| compressor.knee.value is equal to 30. | PASS |
| compressor.ratio.value is equal to 12. | PASS |
| compressor.reduction is equal to 0. | PASS |
| compressor.release.value is equal to 0.25. | PASS |
| compressor.threshold.value is equal to -24. | PASS |
| typeof compressor.reduction is equal to number. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 7 assertions) | PASS |
| > [test] Basic tests for DynamicsCompressorNode API | PASS |
| /webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode.html (6/6, 100.00%, 0.12% of total) | OK |
| ConstantSourceNode can be constructed | PASS |
| ConstantSourceNode onended event | PASS |
| ConstantSourceNode start and stop when work | PASS |
| ConstantSourceNode stop and start | PASS |
| ConstantSourceNode with automation | PASS |
| ConstantSourceNode with no automation | PASS |
| /webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html (5/5, 100.00%, 0.10% of total) | OK |
| Delaying test signal by 1 sec was done correctly | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 1 assertions) | PASS |
| > [test] DelayNode with delay set to default maximum delay | PASS |
| /webaudio/idlharness.https.window.html (1115/1115, 100.00%, 22.48% of total) | OK |
| AnalyserNode interface object length | PASS |
| AnalyserNode interface object name | PASS |
| AnalyserNode interface: attribute fftSize | PASS |
| AnalyserNode interface: attribute frequencyBinCount | PASS |
| AnalyserNode interface: attribute maxDecibels | PASS |
| AnalyserNode interface: attribute minDecibels | PASS |
| AnalyserNode interface: attribute smoothingTimeConstant | PASS |
| AnalyserNode interface: calling getByteFrequencyData(Uint8Array) on new AnalyserNode(context) with too few arguments must throw TypeError | PASS |
| AnalyserNode interface: calling getByteTimeDomainData(Uint8Array) on new AnalyserNode(context) with too few arguments must throw TypeError | PASS |
| AnalyserNode interface: calling getFloatFrequencyData(Float32Array) on new AnalyserNode(context) with too few arguments must throw TypeError | PASS |
| AnalyserNode interface: calling getFloatTimeDomainData(Float32Array) on new AnalyserNode(context) with too few arguments must throw TypeError | PASS |
| AnalyserNode interface: existence and properties of interface object | PASS |
| AnalyserNode interface: existence and properties of interface prototype object | PASS |
| AnalyserNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| AnalyserNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| AnalyserNode interface: new AnalyserNode(context) must inherit property "fftSize" with the proper type | PASS |
| AnalyserNode interface: new AnalyserNode(context) must inherit property "frequencyBinCount" with the proper type | PASS |
| AnalyserNode interface: new AnalyserNode(context) must inherit property "getByteFrequencyData(Uint8Array)" with the proper type | PASS |
| AnalyserNode interface: new AnalyserNode(context) must inherit property "getByteTimeDomainData(Uint8Array)" with the proper type | PASS |
| AnalyserNode interface: new AnalyserNode(context) must inherit property "getFloatFrequencyData(Float32Array)" with the proper type | PASS |
| AnalyserNode interface: new AnalyserNode(context) must inherit property "getFloatTimeDomainData(Float32Array)" with the proper type | PASS |
| AnalyserNode interface: new AnalyserNode(context) must inherit property "maxDecibels" with the proper type | PASS |
| AnalyserNode interface: new AnalyserNode(context) must inherit property "minDecibels" with the proper type | PASS |
| AnalyserNode interface: new AnalyserNode(context) must inherit property "smoothingTimeConstant" with the proper type | PASS |
| AnalyserNode interface: operation getByteFrequencyData(Uint8Array) | PASS |
| AnalyserNode interface: operation getByteTimeDomainData(Uint8Array) | PASS |
| AnalyserNode interface: operation getFloatFrequencyData(Float32Array) | PASS |
| AnalyserNode interface: operation getFloatTimeDomainData(Float32Array) | PASS |
| AnalyserNode must be primary interface of new AnalyserNode(context) | PASS |
| AudioBuffer interface object length | PASS |
| AudioBuffer interface object name | PASS |
| AudioBuffer interface: attribute duration | PASS |
| AudioBuffer interface: attribute length | PASS |
| AudioBuffer interface: attribute numberOfChannels | PASS |
| AudioBuffer interface: attribute sampleRate | PASS |
| AudioBuffer interface: buffer must inherit property "copyFromChannel(Float32Array, unsigned long, unsigned long)" with the proper type | PASS |
| AudioBuffer interface: buffer must inherit property "copyToChannel(Float32Array, unsigned long, unsigned long)" with the proper type | PASS |
| AudioBuffer interface: buffer must inherit property "duration" with the proper type | PASS |
| AudioBuffer interface: buffer must inherit property "getChannelData(unsigned long)" with the proper type | PASS |
| AudioBuffer interface: buffer must inherit property "length" with the proper type | PASS |
| AudioBuffer interface: buffer must inherit property "numberOfChannels" with the proper type | PASS |
| AudioBuffer interface: buffer must inherit property "sampleRate" with the proper type | PASS |
| AudioBuffer interface: calling copyFromChannel(Float32Array, unsigned long, unsigned long) on buffer with too few arguments must throw TypeError | PASS |
| AudioBuffer interface: calling copyToChannel(Float32Array, unsigned long, unsigned long) on buffer with too few arguments must throw TypeError | PASS |
| AudioBuffer interface: calling getChannelData(unsigned long) on buffer with too few arguments must throw TypeError | PASS |
| AudioBuffer interface: existence and properties of interface object | PASS |
| AudioBuffer interface: existence and properties of interface prototype object | PASS |
| AudioBuffer interface: existence and properties of interface prototype object's "constructor" property | PASS |
| AudioBuffer interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| AudioBuffer interface: operation copyFromChannel(Float32Array, unsigned long, unsigned long) | PASS |
| AudioBuffer interface: operation copyToChannel(Float32Array, unsigned long, unsigned long) | PASS |
| AudioBuffer interface: operation getChannelData(unsigned long) | PASS |
| AudioBuffer must be primary interface of buffer | PASS |
| AudioBufferSourceNode interface object length | PASS |
| AudioBufferSourceNode interface object name | PASS |
| AudioBufferSourceNode interface: attribute buffer | PASS |
| AudioBufferSourceNode interface: attribute detune | PASS |
| AudioBufferSourceNode interface: attribute loop | PASS |
| AudioBufferSourceNode interface: attribute loopEnd | PASS |
| AudioBufferSourceNode interface: attribute loopStart | PASS |
| AudioBufferSourceNode interface: attribute playbackRate | PASS |
| AudioBufferSourceNode interface: calling start(double, double, double) on new AudioBufferSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioBufferSourceNode interface: existence and properties of interface object | PASS |
| AudioBufferSourceNode interface: existence and properties of interface prototype object | PASS |
| AudioBufferSourceNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| AudioBufferSourceNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "buffer" with the proper type | PASS |
| AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "detune" with the proper type | PASS |
| AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "loop" with the proper type | PASS |
| AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "loopEnd" with the proper type | PASS |
| AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "loopStart" with the proper type | PASS |
| AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "playbackRate" with the proper type | PASS |
| AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "start(double, double, double)" with the proper type | PASS |
| AudioBufferSourceNode interface: operation start(double, double, double) | PASS |
| AudioBufferSourceNode must be primary interface of new AudioBufferSourceNode(context) | PASS |
| AudioContext interface object length | PASS |
| AudioContext interface object name | PASS |
| AudioContext interface: attribute baseLatency | FAIL |
| AudioContext interface: attribute outputLatency | FAIL |
| AudioContext interface: calling createMediaElementSource(HTMLMediaElement) on context with too few arguments must throw TypeError | PASS |
| AudioContext interface: calling createMediaStreamSource(MediaStream) on context with too few arguments must throw TypeError | PASS |
| AudioContext interface: calling createMediaStreamTrackSource(MediaStreamTrack) on context with too few arguments must throw TypeError | FAIL |
| AudioContext interface: context must inherit property "baseLatency" with the proper type | FAIL |
| AudioContext interface: context must inherit property "close()" with the proper type | PASS |
| AudioContext interface: context must inherit property "createMediaElementSource(HTMLMediaElement)" with the proper type | PASS |
| AudioContext interface: context must inherit property "createMediaStreamDestination()" with the proper type | PASS |
| AudioContext interface: context must inherit property "createMediaStreamSource(MediaStream)" with the proper type | PASS |
| AudioContext interface: context must inherit property "createMediaStreamTrackSource(MediaStreamTrack)" with the proper type | FAIL |
| AudioContext interface: context must inherit property "getOutputTimestamp()" with the proper type | FAIL |
| AudioContext interface: context must inherit property "outputLatency" with the proper type | FAIL |
| AudioContext interface: context must inherit property "resume()" with the proper type | PASS |
| AudioContext interface: context must inherit property "suspend()" with the proper type | PASS |
| AudioContext interface: existence and properties of interface object | PASS |
| AudioContext interface: existence and properties of interface prototype object | PASS |
| AudioContext interface: existence and properties of interface prototype object's "constructor" property | PASS |
| AudioContext interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| AudioContext interface: operation close() | PASS |
| AudioContext interface: operation createMediaElementSource(HTMLMediaElement) | PASS |
| AudioContext interface: operation createMediaStreamDestination() | PASS |
| AudioContext interface: operation createMediaStreamSource(MediaStream) | PASS |
| AudioContext interface: operation createMediaStreamTrackSource(MediaStreamTrack) | FAIL |
| AudioContext interface: operation getOutputTimestamp() | FAIL |
| AudioContext interface: operation resume() | FAIL |
| AudioContext interface: operation suspend() | PASS |
| AudioContext must be primary interface of context | PASS |
| AudioDestinationNode interface object length | PASS |
| AudioDestinationNode interface object name | PASS |
| AudioDestinationNode interface: attribute maxChannelCount | PASS |
| AudioDestinationNode interface: context.destination must inherit property "maxChannelCount" with the proper type | PASS |
| AudioDestinationNode interface: existence and properties of interface object | PASS |
| AudioDestinationNode interface: existence and properties of interface prototype object | PASS |
| AudioDestinationNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| AudioDestinationNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| AudioDestinationNode must be primary interface of context.destination | PASS |
| AudioListener interface object length | PASS |
| AudioListener interface object name | PASS |
| AudioListener interface: attribute forwardX | FAIL |
| AudioListener interface: attribute forwardY | FAIL |
| AudioListener interface: attribute forwardZ | FAIL |
| AudioListener interface: attribute positionX | FAIL |
| AudioListener interface: attribute positionY | FAIL |
| AudioListener interface: attribute positionZ | FAIL |
| AudioListener interface: attribute upX | FAIL |
| AudioListener interface: attribute upY | FAIL |
| AudioListener interface: attribute upZ | FAIL |
| AudioListener interface: calling setOrientation(float, float, float, float, float, float) on context.listener with too few arguments must throw TypeError | PASS |
| AudioListener interface: calling setPosition(float, float, float) on context.listener with too few arguments must throw TypeError | PASS |
| AudioListener interface: context.listener must inherit property "forwardX" with the proper type | FAIL |
| AudioListener interface: context.listener must inherit property "forwardY" with the proper type | FAIL |
| AudioListener interface: context.listener must inherit property "forwardZ" with the proper type | FAIL |
| AudioListener interface: context.listener must inherit property "positionX" with the proper type | FAIL |
| AudioListener interface: context.listener must inherit property "positionY" with the proper type | FAIL |
| AudioListener interface: context.listener must inherit property "positionZ" with the proper type | FAIL |
| AudioListener interface: context.listener must inherit property "setOrientation(float, float, float, float, float, float)" with the proper type | PASS |
| AudioListener interface: context.listener must inherit property "setPosition(float, float, float)" with the proper type | PASS |
| AudioListener interface: context.listener must inherit property "upX" with the proper type | FAIL |
| AudioListener interface: context.listener must inherit property "upY" with the proper type | FAIL |
| AudioListener interface: context.listener must inherit property "upZ" with the proper type | FAIL |
| AudioListener interface: existence and properties of interface object | PASS |
| AudioListener interface: existence and properties of interface prototype object | PASS |
| AudioListener interface: existence and properties of interface prototype object's "constructor" property | PASS |
| AudioListener interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| AudioListener interface: operation setOrientation(float, float, float, float, float, float) | PASS |
| AudioListener interface: operation setPosition(float, float, float) | PASS |
| AudioListener must be primary interface of context.listener | PASS |
| AudioNode interface object length | PASS |
| AudioNode interface object name | PASS |
| AudioNode interface: attribute channelCount | PASS |
| AudioNode interface: attribute channelCountMode | PASS |
| AudioNode interface: attribute channelInterpretation | PASS |
| AudioNode interface: attribute context | PASS |
| AudioNode interface: attribute numberOfInputs | PASS |
| AudioNode interface: attribute numberOfOutputs | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on context.destination with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new DelayNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new GainNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new PannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on worklet_node with too few arguments must throw TypeError | FAIL |
| AudioNode interface: calling connect(AudioParam, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on context.destination with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new DelayNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new GainNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new PannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling connect(AudioParam, unsigned long) on worklet_node with too few arguments must throw TypeError | FAIL |
| AudioNode interface: calling disconnect(AudioNode) on context.createScriptProcessor() with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on context.destination with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new AnalyserNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new AudioBufferSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new BiquadFilterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new ChannelMergerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new ChannelSplitterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new ConstantSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new ConvolverNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new DelayNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new DynamicsCompressorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new GainNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new OscillatorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new PannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new StereoPannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on new WaveShaperNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode) on worklet_node with too few arguments must throw TypeError | FAIL |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on context.destination with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new DelayNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new GainNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new PannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long) on worklet_node with too few arguments must throw TypeError | FAIL |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on context.destination with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new DelayNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new GainNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new PannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on worklet_node with too few arguments must throw TypeError | FAIL |
| AudioNode interface: calling disconnect(AudioParam) on context.createScriptProcessor() with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on context.destination with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new AnalyserNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new AudioBufferSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new BiquadFilterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new ChannelMergerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new ChannelSplitterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new ConstantSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new ConvolverNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new DelayNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new DynamicsCompressorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new GainNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new OscillatorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new PannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new StereoPannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on new WaveShaperNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam) on worklet_node with too few arguments must throw TypeError | FAIL |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on context.destination with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new DelayNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new GainNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new PannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(AudioParam, unsigned long) on worklet_node with too few arguments must throw TypeError | FAIL |
| AudioNode interface: calling disconnect(unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on context.destination with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new DelayNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new GainNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new PannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeError | PASS |
| AudioNode interface: calling disconnect(unsigned long) on worklet_node with too few arguments must throw TypeError | FAIL |
| AudioNode interface: context.createScriptProcessor() must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "context" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: context.createScriptProcessor() must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "context" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: context.destination must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: existence and properties of interface object | PASS |
| AudioNode interface: existence and properties of interface prototype object | PASS |
| AudioNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| AudioNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new AnalyserNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new AudioBufferSourceNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new BiquadFilterNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new ChannelMergerNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new ChannelSplitterNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new ConstantSourceNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new ConvolverNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new DelayNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new DynamicsCompressorNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new GainNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new OscillatorNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new PannerNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new StereoPannerNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "channelCount" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "channelCountMode" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "channelInterpretation" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "context" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect()" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioNode)" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioParam)" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(unsigned long)" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "numberOfInputs" with the proper type | PASS |
| AudioNode interface: new WaveShaperNode(context) must inherit property "numberOfOutputs" with the proper type | PASS |
| AudioNode interface: operation connect(AudioNode, unsigned long, unsigned long) | PASS |
| AudioNode interface: operation connect(AudioParam, unsigned long) | PASS |
| AudioNode interface: operation disconnect() | PASS |
| AudioNode interface: operation disconnect(AudioNode) | PASS |
| AudioNode interface: operation disconnect(AudioNode, unsigned long) | PASS |
| AudioNode interface: operation disconnect(AudioNode, unsigned long, unsigned long) | PASS |
| AudioNode interface: operation disconnect(AudioParam) | PASS |
| AudioNode interface: operation disconnect(AudioParam, unsigned long) | PASS |
| AudioNode interface: operation disconnect(unsigned long) | PASS |
| AudioNode interface: worklet_node must inherit property "channelCount" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "channelCountMode" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "channelInterpretation" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "connect(AudioParam, unsigned long)" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "context" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "disconnect()" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "disconnect(AudioNode)" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "disconnect(AudioNode, unsigned long)" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "disconnect(AudioParam)" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "disconnect(AudioParam, unsigned long)" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "disconnect(unsigned long)" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "numberOfInputs" with the proper type | FAIL |
| AudioNode interface: worklet_node must inherit property "numberOfOutputs" with the proper type | FAIL |
| AudioParam interface object length | PASS |
| AudioParam interface object name | PASS |
| AudioParam interface: attribute automationRate | FAIL |
| AudioParam interface: attribute defaultValue | PASS |
| AudioParam interface: attribute maxValue | PASS |
| AudioParam interface: attribute minValue | PASS |
| AudioParam interface: attribute value | PASS |
| AudioParam interface: calling cancelAndHoldAtTime(double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeError | FAIL |
| AudioParam interface: calling cancelScheduledValues(double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeError | PASS |
| AudioParam interface: calling exponentialRampToValueAtTime(float, double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeError | PASS |
| AudioParam interface: calling linearRampToValueAtTime(float, double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeError | PASS |
| AudioParam interface: calling setTargetAtTime(float, double, float) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeError | PASS |
| AudioParam interface: calling setValueAtTime(float, double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeError | PASS |
| AudioParam interface: calling setValueCurveAtTime([object Object], double, double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeError | PASS |
| AudioParam interface: existence and properties of interface object | PASS |
| AudioParam interface: existence and properties of interface prototype object | PASS |
| AudioParam interface: existence and properties of interface prototype object's "constructor" property | PASS |
| AudioParam interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "automationRate" with the proper type | FAIL |
| AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "cancelAndHoldAtTime(double)" with the proper type | FAIL |
| AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "cancelScheduledValues(double)" with the proper type | PASS |
| AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "defaultValue" with the proper type | PASS |
| AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "exponentialRampToValueAtTime(float, double)" with the proper type | PASS |
| AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "linearRampToValueAtTime(float, double)" with the proper type | PASS |
| AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "maxValue" with the proper type | PASS |
| AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "minValue" with the proper type | PASS |
| AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "setTargetAtTime(float, double, float)" with the proper type | PASS |
| AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "setValueAtTime(float, double)" with the proper type | PASS |
| AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "setValueCurveAtTime([object Object], double, double)" with the proper type | PASS |
| AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "value" with the proper type | PASS |
| AudioParam interface: operation cancelAndHoldAtTime(double) | FAIL |
| AudioParam interface: operation cancelScheduledValues(double) | PASS |
| AudioParam interface: operation exponentialRampToValueAtTime(float, double) | PASS |
| AudioParam interface: operation linearRampToValueAtTime(float, double) | PASS |
| AudioParam interface: operation setTargetAtTime(float, double, float) | PASS |
| AudioParam interface: operation setValueAtTime(float, double) | PASS |
| AudioParam interface: operation setValueCurveAtTime([object Object], double, double) | PASS |
| AudioParam must be primary interface of new AudioBufferSourceNode(context).playbackRate | PASS |
| AudioParamMap interface object length | FAIL |
| AudioParamMap interface object name | FAIL |
| AudioParamMap interface: existence and properties of interface object | FAIL |
| AudioParamMap interface: existence and properties of interface prototype object | FAIL |
| AudioParamMap interface: existence and properties of interface prototype object's "constructor" property | FAIL |
| AudioParamMap interface: existence and properties of interface prototype object's @@unscopables property | FAIL |
| AudioParamMap must be primary interface of worklet_node.parameters | FAIL |
| AudioProcessingEvent interface object length | FAIL |
| AudioProcessingEvent interface object name | PASS |
| AudioProcessingEvent interface: attribute inputBuffer | PASS |
| AudioProcessingEvent interface: attribute outputBuffer | PASS |
| AudioProcessingEvent interface: attribute playbackTime | PASS |
| AudioProcessingEvent interface: existence and properties of interface object | PASS |
| AudioProcessingEvent interface: existence and properties of interface prototype object | PASS |
| AudioProcessingEvent interface: existence and properties of interface prototype object's "constructor" property | PASS |
| AudioProcessingEvent interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| AudioProcessingEvent interface: new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer }) must inherit property "inputBuffer" with the proper type | FAIL |
| AudioProcessingEvent interface: new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer }) must inherit property "outputBuffer" with the proper type | FAIL |
| AudioProcessingEvent interface: new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer }) must inherit property "playbackTime" with the proper type | FAIL |
| AudioProcessingEvent must be primary interface of new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer }) | FAIL |
| AudioScheduledSourceNode interface object length | PASS |
| AudioScheduledSourceNode interface object name | PASS |
| AudioScheduledSourceNode interface: attribute onended | PASS |
| AudioScheduledSourceNode interface: calling start(double) on new AudioBufferSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioScheduledSourceNode interface: calling start(double) on new ConstantSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioScheduledSourceNode interface: calling start(double) on new OscillatorNode(context) with too few arguments must throw TypeError | PASS |
| AudioScheduledSourceNode interface: calling stop(double) on new AudioBufferSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioScheduledSourceNode interface: calling stop(double) on new ConstantSourceNode(context) with too few arguments must throw TypeError | PASS |
| AudioScheduledSourceNode interface: calling stop(double) on new OscillatorNode(context) with too few arguments must throw TypeError | PASS |
| AudioScheduledSourceNode interface: existence and properties of interface object | PASS |
| AudioScheduledSourceNode interface: existence and properties of interface prototype object | PASS |
| AudioScheduledSourceNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| AudioScheduledSourceNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| AudioScheduledSourceNode interface: new AudioBufferSourceNode(context) must inherit property "onended" with the proper type | PASS |
| AudioScheduledSourceNode interface: new AudioBufferSourceNode(context) must inherit property "start(double)" with the proper type | PASS |
| AudioScheduledSourceNode interface: new AudioBufferSourceNode(context) must inherit property "stop(double)" with the proper type | PASS |
| AudioScheduledSourceNode interface: new ConstantSourceNode(context) must inherit property "onended" with the proper type | PASS |
| AudioScheduledSourceNode interface: new ConstantSourceNode(context) must inherit property "start(double)" with the proper type | PASS |
| AudioScheduledSourceNode interface: new ConstantSourceNode(context) must inherit property "stop(double)" with the proper type | PASS |
| AudioScheduledSourceNode interface: new OscillatorNode(context) must inherit property "onended" with the proper type | PASS |
| AudioScheduledSourceNode interface: new OscillatorNode(context) must inherit property "start(double)" with the proper type | PASS |
| AudioScheduledSourceNode interface: new OscillatorNode(context) must inherit property "stop(double)" with the proper type | PASS |
| AudioScheduledSourceNode interface: operation start(double) | PASS |
| AudioScheduledSourceNode interface: operation stop(double) | PASS |
| AudioWorklet interface object length | FAIL |
| AudioWorklet interface object name | FAIL |
| AudioWorklet interface: existence and properties of interface object | FAIL |
| AudioWorklet interface: existence and properties of interface prototype object | FAIL |
| AudioWorklet interface: existence and properties of interface prototype object's "constructor" property | FAIL |
| AudioWorklet interface: existence and properties of interface prototype object's @@unscopables property | FAIL |
| AudioWorklet must be primary interface of context.audioWorklet | FAIL |
| AudioWorkletGlobalScope interface: existence and properties of interface object | PASS |
| AudioWorkletNode interface object length | FAIL |
| AudioWorkletNode interface object name | FAIL |
| AudioWorkletNode interface: attribute onprocessorerror | FAIL |
| AudioWorkletNode interface: attribute parameters | FAIL |
| AudioWorkletNode interface: attribute port | FAIL |
| AudioWorkletNode interface: existence and properties of interface object | FAIL |
| AudioWorkletNode interface: existence and properties of interface prototype object | FAIL |
| AudioWorkletNode interface: existence and properties of interface prototype object's "constructor" property | FAIL |
| AudioWorkletNode interface: existence and properties of interface prototype object's @@unscopables property | FAIL |
| AudioWorkletNode interface: worklet_node must inherit property "onprocessorerror" with the proper type | FAIL |
| AudioWorkletNode interface: worklet_node must inherit property "parameters" with the proper type | FAIL |
| AudioWorkletNode interface: worklet_node must inherit property "port" with the proper type | FAIL |
| AudioWorkletNode must be primary interface of worklet_node | FAIL |
| AudioWorkletProcessor interface: existence and properties of interface object | PASS |
| BaseAudioContext interface object length | PASS |
| BaseAudioContext interface object name | PASS |
| BaseAudioContext interface: attribute audioWorklet | FAIL |
| BaseAudioContext interface: attribute currentTime | PASS |
| BaseAudioContext interface: attribute destination | PASS |
| BaseAudioContext interface: attribute listener | PASS |
| BaseAudioContext interface: attribute onstatechange | PASS |
| BaseAudioContext interface: attribute sampleRate | PASS |
| BaseAudioContext interface: attribute state | PASS |
| BaseAudioContext interface: calling createBuffer(unsigned long, unsigned long, float) on context with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createBuffer(unsigned long, unsigned long, float) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createChannelMerger(unsigned long) on context with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createChannelMerger(unsigned long) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createChannelSplitter(unsigned long) on context with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createChannelSplitter(unsigned long) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createDelay(double) on context with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createDelay(double) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createIIRFilter([object Object], [object Object]) on context with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createIIRFilter([object Object], [object Object]) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints) on context with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createScriptProcessor(unsigned long, unsigned long, unsigned long) on context with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling createScriptProcessor(unsigned long, unsigned long, unsigned long) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback) on context with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: calling decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeError | PASS |
| BaseAudioContext interface: context must inherit property "audioWorklet" with the proper type | FAIL |
| BaseAudioContext interface: context must inherit property "createAnalyser()" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createBiquadFilter()" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createBuffer(unsigned long, unsigned long, float)" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createBufferSource()" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createChannelMerger(unsigned long)" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createChannelSplitter(unsigned long)" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createConstantSource()" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createConvolver()" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createDelay(double)" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createDynamicsCompressor()" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createGain()" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createIIRFilter([object Object], [object Object])" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createOscillator()" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createPanner()" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints)" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createScriptProcessor(unsigned long, unsigned long, unsigned long)" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createStereoPanner()" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "createWaveShaper()" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "currentTime" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback)" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "destination" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "listener" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "onstatechange" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "sampleRate" with the proper type | PASS |
| BaseAudioContext interface: context must inherit property "state" with the proper type | PASS |
| BaseAudioContext interface: existence and properties of interface object | PASS |
| BaseAudioContext interface: existence and properties of interface prototype object | PASS |
| BaseAudioContext interface: existence and properties of interface prototype object's "constructor" property | PASS |
| BaseAudioContext interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "audioWorklet" with the proper type | FAIL |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createAnalyser()" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createBiquadFilter()" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createBuffer(unsigned long, unsigned long, float)" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createBufferSource()" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createChannelMerger(unsigned long)" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createChannelSplitter(unsigned long)" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createConstantSource()" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createConvolver()" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createDelay(double)" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createDynamicsCompressor()" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createGain()" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createIIRFilter([object Object], [object Object])" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createOscillator()" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createPanner()" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints)" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createScriptProcessor(unsigned long, unsigned long, unsigned long)" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createStereoPanner()" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createWaveShaper()" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "currentTime" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback)" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "destination" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "listener" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "onstatechange" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "sampleRate" with the proper type | PASS |
| BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "state" with the proper type | PASS |
| BaseAudioContext interface: operation createAnalyser() | PASS |
| BaseAudioContext interface: operation createBiquadFilter() | PASS |
| BaseAudioContext interface: operation createBuffer(unsigned long, unsigned long, float) | PASS |
| BaseAudioContext interface: operation createBufferSource() | PASS |
| BaseAudioContext interface: operation createChannelMerger(unsigned long) | PASS |
| BaseAudioContext interface: operation createChannelSplitter(unsigned long) | PASS |
| BaseAudioContext interface: operation createConstantSource() | PASS |
| BaseAudioContext interface: operation createConvolver() | PASS |
| BaseAudioContext interface: operation createDelay(double) | PASS |
| BaseAudioContext interface: operation createDynamicsCompressor() | PASS |
| BaseAudioContext interface: operation createGain() | PASS |
| BaseAudioContext interface: operation createIIRFilter([object Object], [object Object]) | PASS |
| BaseAudioContext interface: operation createOscillator() | PASS |
| BaseAudioContext interface: operation createPanner() | PASS |
| BaseAudioContext interface: operation createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints) | PASS |
| BaseAudioContext interface: operation createScriptProcessor(unsigned long, unsigned long, unsigned long) | PASS |
| BaseAudioContext interface: operation createStereoPanner() | PASS |
| BaseAudioContext interface: operation createWaveShaper() | PASS |
| BaseAudioContext interface: operation decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback) | PASS |
| BiquadFilterNode interface object length | PASS |
| BiquadFilterNode interface object name | PASS |
| BiquadFilterNode interface: attribute Q | PASS |
| BiquadFilterNode interface: attribute detune | PASS |
| BiquadFilterNode interface: attribute frequency | PASS |
| BiquadFilterNode interface: attribute gain | PASS |
| BiquadFilterNode interface: attribute type | PASS |
| BiquadFilterNode interface: calling getFrequencyResponse(Float32Array, Float32Array, Float32Array) on new BiquadFilterNode(context) with too few arguments must throw TypeError | PASS |
| BiquadFilterNode interface: existence and properties of interface object | PASS |
| BiquadFilterNode interface: existence and properties of interface prototype object | PASS |
| BiquadFilterNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| BiquadFilterNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "Q" with the proper type | PASS |
| BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "detune" with the proper type | PASS |
| BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "frequency" with the proper type | PASS |
| BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "gain" with the proper type | PASS |
| BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "getFrequencyResponse(Float32Array, Float32Array, Float32Array)" with the proper type | PASS |
| BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "type" with the proper type | PASS |
| BiquadFilterNode interface: operation getFrequencyResponse(Float32Array, Float32Array, Float32Array) | PASS |
| BiquadFilterNode must be primary interface of new BiquadFilterNode(context) | PASS |
| ChannelMergerNode interface object length | PASS |
| ChannelMergerNode interface object name | PASS |
| ChannelMergerNode interface: existence and properties of interface object | PASS |
| ChannelMergerNode interface: existence and properties of interface prototype object | PASS |
| ChannelMergerNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| ChannelMergerNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| ChannelMergerNode must be primary interface of new ChannelMergerNode(context) | PASS |
| ChannelSplitterNode interface object length | PASS |
| ChannelSplitterNode interface object name | PASS |
| ChannelSplitterNode interface: existence and properties of interface object | PASS |
| ChannelSplitterNode interface: existence and properties of interface prototype object | PASS |
| ChannelSplitterNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| ChannelSplitterNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| ChannelSplitterNode must be primary interface of new ChannelSplitterNode(context) | PASS |
| ConstantSourceNode interface object length | PASS |
| ConstantSourceNode interface object name | PASS |
| ConstantSourceNode interface: attribute offset | PASS |
| ConstantSourceNode interface: existence and properties of interface object | PASS |
| ConstantSourceNode interface: existence and properties of interface prototype object | PASS |
| ConstantSourceNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| ConstantSourceNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| ConstantSourceNode interface: new ConstantSourceNode(context) must inherit property "offset" with the proper type | PASS |
| ConstantSourceNode must be primary interface of new ConstantSourceNode(context) | PASS |
| ConvolverNode interface object length | PASS |
| ConvolverNode interface object name | PASS |
| ConvolverNode interface: attribute buffer | PASS |
| ConvolverNode interface: attribute normalize | PASS |
| ConvolverNode interface: existence and properties of interface object | PASS |
| ConvolverNode interface: existence and properties of interface prototype object | PASS |
| ConvolverNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| ConvolverNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| ConvolverNode interface: new ConvolverNode(context) must inherit property "buffer" with the proper type | PASS |
| ConvolverNode interface: new ConvolverNode(context) must inherit property "normalize" with the proper type | PASS |
| ConvolverNode must be primary interface of new ConvolverNode(context) | PASS |
| DelayNode interface object length | PASS |
| DelayNode interface object name | PASS |
| DelayNode interface: attribute delayTime | PASS |
| DelayNode interface: existence and properties of interface object | PASS |
| DelayNode interface: existence and properties of interface prototype object | PASS |
| DelayNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| DelayNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| DelayNode interface: new DelayNode(context) must inherit property "delayTime" with the proper type | PASS |
| DelayNode must be primary interface of new DelayNode(context) | PASS |
| DynamicsCompressorNode interface object length | PASS |
| DynamicsCompressorNode interface object name | PASS |
| DynamicsCompressorNode interface: attribute attack | PASS |
| DynamicsCompressorNode interface: attribute knee | PASS |
| DynamicsCompressorNode interface: attribute ratio | PASS |
| DynamicsCompressorNode interface: attribute reduction | PASS |
| DynamicsCompressorNode interface: attribute release | PASS |
| DynamicsCompressorNode interface: attribute threshold | PASS |
| DynamicsCompressorNode interface: existence and properties of interface object | PASS |
| DynamicsCompressorNode interface: existence and properties of interface prototype object | PASS |
| DynamicsCompressorNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| DynamicsCompressorNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "attack" with the proper type | PASS |
| DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "knee" with the proper type | PASS |
| DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "ratio" with the proper type | PASS |
| DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "reduction" with the proper type | PASS |
| DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "release" with the proper type | PASS |
| DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "threshold" with the proper type | PASS |
| DynamicsCompressorNode must be primary interface of new DynamicsCompressorNode(context) | PASS |
| GainNode interface object length | PASS |
| GainNode interface object name | PASS |
| GainNode interface: attribute gain | PASS |
| GainNode interface: existence and properties of interface object | PASS |
| GainNode interface: existence and properties of interface prototype object | PASS |
| GainNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| GainNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| GainNode interface: new GainNode(context) must inherit property "gain" with the proper type | PASS |
| GainNode must be primary interface of new GainNode(context) | PASS |
| IIRFilterNode interface object length | PASS |
| IIRFilterNode interface object name | PASS |
| IIRFilterNode interface: calling getFrequencyResponse(Float32Array, Float32Array, Float32Array) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeError | PASS |
| IIRFilterNode interface: existence and properties of interface object | PASS |
| IIRFilterNode interface: existence and properties of interface prototype object | PASS |
| IIRFilterNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| IIRFilterNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| IIRFilterNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "getFrequencyResponse(Float32Array, Float32Array, Float32Array)" with the proper type | PASS |
| IIRFilterNode interface: operation getFrequencyResponse(Float32Array, Float32Array, Float32Array) | PASS |
| IIRFilterNode must be primary interface of new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) | PASS |
| MediaElementAudioSourceNode interface object length | PASS |
| MediaElementAudioSourceNode interface object name | PASS |
| MediaElementAudioSourceNode interface: attribute mediaElement | FAIL |
| MediaElementAudioSourceNode interface: existence and properties of interface object | PASS |
| MediaElementAudioSourceNode interface: existence and properties of interface prototype object | PASS |
| MediaElementAudioSourceNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| MediaElementAudioSourceNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| MediaElementAudioSourceNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "mediaElement" with the proper type | FAIL |
| MediaElementAudioSourceNode must be primary interface of new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) | PASS |
| MediaStreamAudioDestinationNode interface object length | PASS |
| MediaStreamAudioDestinationNode interface object name | PASS |
| MediaStreamAudioDestinationNode interface: attribute stream | PASS |
| MediaStreamAudioDestinationNode interface: existence and properties of interface object | PASS |
| MediaStreamAudioDestinationNode interface: existence and properties of interface prototype object | PASS |
| MediaStreamAudioDestinationNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| MediaStreamAudioDestinationNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| MediaStreamAudioDestinationNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "stream" with the proper type | PASS |
| MediaStreamAudioDestinationNode must be primary interface of new MediaStreamAudioDestinationNode(context) | PASS |
| MediaStreamAudioSourceNode interface object length | PASS |
| MediaStreamAudioSourceNode interface object name | PASS |
| MediaStreamAudioSourceNode interface: attribute mediaStream | FAIL |
| MediaStreamAudioSourceNode interface: existence and properties of interface object | PASS |
| MediaStreamAudioSourceNode interface: existence and properties of interface prototype object | PASS |
| MediaStreamAudioSourceNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| MediaStreamAudioSourceNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| MediaStreamTrackAudioSourceNode interface object length | FAIL |
| MediaStreamTrackAudioSourceNode interface object name | FAIL |
| MediaStreamTrackAudioSourceNode interface: existence and properties of interface object | FAIL |
| MediaStreamTrackAudioSourceNode interface: existence and properties of interface prototype object | FAIL |
| MediaStreamTrackAudioSourceNode interface: existence and properties of interface prototype object's "constructor" property | FAIL |
| MediaStreamTrackAudioSourceNode interface: existence and properties of interface prototype object's @@unscopables property | FAIL |
| OfflineAudioCompletionEvent interface object length | PASS |
| OfflineAudioCompletionEvent interface object name | PASS |
| OfflineAudioCompletionEvent interface: attribute renderedBuffer | PASS |
| OfflineAudioCompletionEvent interface: existence and properties of interface object | PASS |
| OfflineAudioCompletionEvent interface: existence and properties of interface prototype object | PASS |
| OfflineAudioCompletionEvent interface: existence and properties of interface prototype object's "constructor" property | PASS |
| OfflineAudioCompletionEvent interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| OfflineAudioCompletionEvent interface: new OfflineAudioCompletionEvent("", {renderedBuffer: buffer}) must inherit property "renderedBuffer" with the proper type | PASS |
| OfflineAudioCompletionEvent must be primary interface of new OfflineAudioCompletionEvent("", {renderedBuffer: buffer}) | PASS |
| OfflineAudioContext interface object length | PASS |
| OfflineAudioContext interface object name | PASS |
| OfflineAudioContext interface: attribute length | PASS |
| OfflineAudioContext interface: attribute oncomplete | PASS |
| OfflineAudioContext interface: calling suspend(double) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeError | FAIL |
| OfflineAudioContext interface: existence and properties of interface object | PASS |
| OfflineAudioContext interface: existence and properties of interface prototype object | PASS |
| OfflineAudioContext interface: existence and properties of interface prototype object's "constructor" property | PASS |
| OfflineAudioContext interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "length" with the proper type | PASS |
| OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "oncomplete" with the proper type | PASS |
| OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "resume()" with the proper type | PASS |
| OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "startRendering()" with the proper type | PASS |
| OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "suspend(double)" with the proper type | FAIL |
| OfflineAudioContext interface: operation resume() | FAIL |
| OfflineAudioContext interface: operation startRendering() | PASS |
| OfflineAudioContext interface: operation suspend(double) | FAIL |
| OfflineAudioContext must be primary interface of new OfflineAudioContext(1, 1, sample_rate) | PASS |
| OscillatorNode interface object length | PASS |
| OscillatorNode interface object name | PASS |
| OscillatorNode interface: attribute detune | PASS |
| OscillatorNode interface: attribute frequency | PASS |
| OscillatorNode interface: attribute type | PASS |
| OscillatorNode interface: calling setPeriodicWave(PeriodicWave) on new OscillatorNode(context) with too few arguments must throw TypeError | PASS |
| OscillatorNode interface: existence and properties of interface object | PASS |
| OscillatorNode interface: existence and properties of interface prototype object | PASS |
| OscillatorNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| OscillatorNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| OscillatorNode interface: new OscillatorNode(context) must inherit property "detune" with the proper type | PASS |
| OscillatorNode interface: new OscillatorNode(context) must inherit property "frequency" with the proper type | PASS |
| OscillatorNode interface: new OscillatorNode(context) must inherit property "setPeriodicWave(PeriodicWave)" with the proper type | PASS |
| OscillatorNode interface: new OscillatorNode(context) must inherit property "type" with the proper type | PASS |
| OscillatorNode interface: operation setPeriodicWave(PeriodicWave) | PASS |
| OscillatorNode must be primary interface of new OscillatorNode(context) | PASS |
| PannerNode interface object length | PASS |
| PannerNode interface object name | PASS |
| PannerNode interface: attribute coneInnerAngle | PASS |
| PannerNode interface: attribute coneOuterAngle | PASS |
| PannerNode interface: attribute coneOuterGain | PASS |
| PannerNode interface: attribute distanceModel | PASS |
| PannerNode interface: attribute maxDistance | PASS |
| PannerNode interface: attribute orientationX | PASS |
| PannerNode interface: attribute orientationY | PASS |
| PannerNode interface: attribute orientationZ | PASS |
| PannerNode interface: attribute panningModel | PASS |
| PannerNode interface: attribute positionX | PASS |
| PannerNode interface: attribute positionY | PASS |
| PannerNode interface: attribute positionZ | PASS |
| PannerNode interface: attribute refDistance | PASS |
| PannerNode interface: attribute rolloffFactor | PASS |
| PannerNode interface: calling setOrientation(float, float, float) on new PannerNode(context) with too few arguments must throw TypeError | PASS |
| PannerNode interface: calling setPosition(float, float, float) on new PannerNode(context) with too few arguments must throw TypeError | PASS |
| PannerNode interface: existence and properties of interface object | PASS |
| PannerNode interface: existence and properties of interface prototype object | PASS |
| PannerNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| PannerNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "coneInnerAngle" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "coneOuterAngle" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "coneOuterGain" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "distanceModel" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "maxDistance" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "orientationX" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "orientationY" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "orientationZ" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "panningModel" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "positionX" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "positionY" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "positionZ" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "refDistance" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "rolloffFactor" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "setOrientation(float, float, float)" with the proper type | PASS |
| PannerNode interface: new PannerNode(context) must inherit property "setPosition(float, float, float)" with the proper type | PASS |
| PannerNode interface: operation setOrientation(float, float, float) | PASS |
| PannerNode interface: operation setPosition(float, float, float) | PASS |
| PannerNode must be primary interface of new PannerNode(context) | PASS |
| PeriodicWave interface object length | PASS |
| PeriodicWave interface object name | PASS |
| PeriodicWave interface: existence and properties of interface object | PASS |
| PeriodicWave interface: existence and properties of interface prototype object | PASS |
| PeriodicWave interface: existence and properties of interface prototype object's "constructor" property | PASS |
| PeriodicWave interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| PeriodicWave must be primary interface of new PeriodicWave(context) | PASS |
| ScriptProcessorNode interface object length | PASS |
| ScriptProcessorNode interface object name | PASS |
| ScriptProcessorNode interface: attribute bufferSize | PASS |
| ScriptProcessorNode interface: attribute onaudioprocess | PASS |
| ScriptProcessorNode interface: context.createScriptProcessor() must inherit property "bufferSize" with the proper type | PASS |
| ScriptProcessorNode interface: context.createScriptProcessor() must inherit property "onaudioprocess" with the proper type | PASS |
| ScriptProcessorNode interface: existence and properties of interface object | PASS |
| ScriptProcessorNode interface: existence and properties of interface prototype object | PASS |
| ScriptProcessorNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| ScriptProcessorNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| ScriptProcessorNode must be primary interface of context.createScriptProcessor() | PASS |
| StereoPannerNode interface object length | PASS |
| StereoPannerNode interface object name | PASS |
| StereoPannerNode interface: attribute pan | PASS |
| StereoPannerNode interface: existence and properties of interface object | PASS |
| StereoPannerNode interface: existence and properties of interface prototype object | PASS |
| StereoPannerNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| StereoPannerNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| StereoPannerNode interface: new StereoPannerNode(context) must inherit property "pan" with the proper type | PASS |
| StereoPannerNode must be primary interface of new StereoPannerNode(context) | PASS |
| Stringification of buffer | PASS |
| Stringification of context | PASS |
| Stringification of context.audioWorklet | FAIL |
| Stringification of context.createScriptProcessor() | PASS |
| Stringification of context.destination | PASS |
| Stringification of context.listener | PASS |
| Stringification of new AnalyserNode(context) | PASS |
| Stringification of new AudioBufferSourceNode(context) | PASS |
| Stringification of new AudioBufferSourceNode(context).playbackRate | PASS |
| Stringification of new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer }) | FAIL |
| Stringification of new BiquadFilterNode(context) | PASS |
| Stringification of new ChannelMergerNode(context) | PASS |
| Stringification of new ChannelSplitterNode(context) | PASS |
| Stringification of new ConstantSourceNode(context) | PASS |
| Stringification of new ConvolverNode(context) | PASS |
| Stringification of new DelayNode(context) | PASS |
| Stringification of new DynamicsCompressorNode(context) | PASS |
| Stringification of new GainNode(context) | PASS |
| Stringification of new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) | PASS |
| Stringification of new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) | PASS |
| Stringification of new MediaStreamAudioDestinationNode(context) | PASS |
| Stringification of new OfflineAudioCompletionEvent("", {renderedBuffer: buffer}) | PASS |
| Stringification of new OfflineAudioContext(1, 1, sample_rate) | PASS |
| Stringification of new OscillatorNode(context) | PASS |
| Stringification of new PannerNode(context) | PASS |
| Stringification of new PeriodicWave(context) | PASS |
| Stringification of new StereoPannerNode(context) | PASS |
| Stringification of new WaveShaperNode(context) | PASS |
| Stringification of worklet_node | FAIL |
| Stringification of worklet_node.parameters | FAIL |
| WaveShaperNode interface object length | PASS |
| WaveShaperNode interface object name | PASS |
| WaveShaperNode interface: attribute curve | PASS |
| WaveShaperNode interface: attribute oversample | PASS |
| WaveShaperNode interface: existence and properties of interface object | PASS |
| WaveShaperNode interface: existence and properties of interface prototype object | PASS |
| WaveShaperNode interface: existence and properties of interface prototype object's "constructor" property | PASS |
| WaveShaperNode interface: existence and properties of interface prototype object's @@unscopables property | PASS |
| WaveShaperNode interface: new WaveShaperNode(context) must inherit property "curve" with the proper type | PASS |
| WaveShaperNode interface: new WaveShaperNode(context) must inherit property "oversample" with the proper type | PASS |
| WaveShaperNode must be primary interface of new WaveShaperNode(context) | PASS |
| idl_test setup | FAIL |
| /webaudio/the-audio-api/the-pannernode-interface/panner-equalpower.html (14/14, 100.00%, 0.28% of total) | OK |
| Error in left channel gain values is less than or equal to 0.0000013. | PASS |
| Error in right channel gain values is less than or equal to 0.0000013. | PASS |
| Mono: Left and right channels is identical to the array [0,0.04429905489087105,0.08842407912015915,0.13220170140266418,0.17545996606349945,0.21802887320518494,0.2597412168979645,0.30043312907218933,0.3399447500705719,0.37812086939811707,0.4148114323616028,0.44987234473228455,0.4831658601760864,0.5145611763000488,0.5439349412918091,0.571171760559082...]. | PASS |
| Number of impulses found is equal to 100. | PASS |
| Offsets of impulses at the wrong position is identical to the array []. | PASS |
| Stereo: Left and right channels is identical to the array [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732956767082214,0.4248766303062439,0.4807544946670532,0.5347436666488647,0.5866319537162781,0.6362155675888062,0.683299720287323,0.7276993989944458,0.7692402005195618,0.8077588677406311...]. | PASS |
| # AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [mono source=listener] All assertions passed. (total 1 assertions) | PASS |
| < [stereo source=listener] All assertions passed. (total 1 assertions) | PASS |
| < [test] All assertions passed. (total 4 assertions) | PASS |
| > [mono source=listener] Source and listener at the same position | PASS |
| > [stereo source=listener] Source and listener at the same position | PASS |
| > [test] Equal-power panner model of AudioPannerNode | PASS |
| /webaudio/the-audio-api/the-gainnode-interface/ctor-gain.html (50/50, 100.00%, 1.01% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new GainNode() threw TypeError: "Not enough arguments to GainNode.". | PASS |
| new GainNode(1) threw TypeError: "Argument 1 of GainNode.constructor is not an object.". | PASS |
| new GainNode(c, {channelCount: 0}) threw NotSupportedError: "Operation is not supported". | PASS |
| new GainNode(c, {channelCount: 17}} did not throw an exception. | PASS |
| new GainNode(c, {channelCount: 99}) threw NotSupportedError: "Operation is not supported". | PASS |
| new GainNode(c, {channelCountMode: "clamped-max"}) did not throw an exception. | PASS |
| new GainNode(c, {channelCountMode: "explicit"}) did not throw an exception. | PASS |
| new GainNode(c, {channelCountMode: "foobar"} threw TypeError: "'channelCountMode' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelCountMode.". | PASS |
| new GainNode(c, {channelCountMode: "max"} did not throw an exception. | PASS |
| new GainNode(c, {channelCountMode: "max"}) did not throw an exception. | PASS |
| new GainNode(c, {channelInterpretation: "discrete"}) did not throw an exception. | PASS |
| new GainNode(c, {channelInterpretation: "foobar"}) threw TypeError: "'channelInterpretation' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelInterpretation.". | PASS |
| new GainNode(c, {channelInterpretation: "speakers"}) did not throw an exception. | PASS |
| new GainNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node.channelCount is equal to 17. | PASS |
| node.channelCountMode after invalid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to clamped-max. | PASS |
| node.channelCountMode after valid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to max. | PASS |
| node.channelCountMode is equal to max. | PASS |
| node.channelInterpretation after invalid setter is equal to discrete. | PASS |
| node.channelInterpretation is equal to discrete. | PASS |
| node.channelInterpretation is equal to speakers. | PASS |
| node0 = new GainNode(context) did not throw an exception. | PASS |
| node0 instanceof GainNode is equal to true. | PASS |
| node0.channelCount is equal to 2. | PASS |
| node0.channelCountMode is equal to max. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.gain.value is equal to 1. | PASS |
| node0.numberOfInputs is equal to 1. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node1 = new GainNode(c, {"gain":-2}) did not throw an exception. | PASS |
| node1 instanceof GainNode is equal to true. | PASS |
| node1.channelCount is equal to 2. | PASS |
| node1.channelCountMode is equal to max. | PASS |
| node1.channelInterpretation is equal to speakers. | PASS |
| node1.gain.value is equal to -2. | PASS |
| # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [constructor with options] All assertions passed. (total 6 assertions) | PASS |
| < [default constructor] All assertions passed. (total 8 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [test AudioNodeOptions] All assertions passed. (total 20 assertions) | PASS |
| > [constructor with options] | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [test AudioNodeOptions] | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/k-rate-panner.html (77/77, 100.00%, 1.55% of total) | TIMEOUT |
| k-rate orientationX: Difference between a-rate and k-rate PannerNode is not constantly 0 (contains 1 different value). | PASS |
| k-rate orientationX: Setting orientationX.automationRate to "k-rate" is equal to k-rate. | PASS |
| k-rate orientationX: a-rate node:orientationX.linearRampToValueAtTime(10,0.08) did not throw an exception. | PASS |
| k-rate orientationX: a-rate node:orientationX.setValueAtTime(1,0) did not throw an exception. | PASS |
| k-rate orientationX: k-rate node: orientationX.linearRampToValueAtTime(10,0.08) did not throw an exception. | PASS |
| k-rate orientationX: k-rate node: orientationX.setValueAtTime(1,0) did not throw an exception. | PASS |
| k-rate orientationY: Output of a-rate PannerNode is identical to the array [0.07389304786920547,0.07389718294143677,0.07390936464071274,0.07392925024032593,0.07395651191473007,0.0739908218383789,0.07403187453746796,0.07407934963703156,0.07413295656442642,0.07419241964817047,0.07425744831562042,0.07432778924703598,0.07440316677093506,0.07448334246873856,0.07456807047128677,0.07465711236000061...]. | PASS |
| k-rate orientationY: Output of k-rate PannerNode is identical to the array [0.07389304786920547,0.07389718294143677,0.07390936464071274,0.07392925024032593,0.07395651191473007,0.0739908218383789,0.07403187453746796,0.07407934963703156,0.07413295656442642,0.07419241964817047,0.07425744831562042,0.07432778924703598,0.07440316677093506,0.07448334246873856,0.07456807047128677,0.07465711236000061...]. | PASS |
| k-rate orientationY: Setting orientationY.automationRate to "k-rate" is equal to k-rate. | PASS |
| k-rate orientationY: a-rate node:orientationY.linearRampToValueAtTime(10,0.08) did not throw an exception. | PASS |
| k-rate orientationY: a-rate node:orientationY.setValueAtTime(1,0) did not throw an exception. | PASS |
| k-rate orientationY: k-rate node: orientationY.linearRampToValueAtTime(10,0.08) did not throw an exception. | PASS |
| k-rate orientationY: k-rate node: orientationY.setValueAtTime(1,0) did not throw an exception. | PASS |
| k-rate orientationZ: Output of a-rate PannerNode is identical to the array [0.07389304786920547,0.07389718294143677,0.07390936464071274,0.07392925024032593,0.07395651191473007,0.0739908218383789,0.07403187453746796,0.07407934963703156,0.07413295656442642,0.07419241964817047,0.07425744831562042,0.07432778924703598,0.07440316677093506,0.07448334246873856,0.07456807047128677,0.07465711236000061...]. | PASS |
| k-rate orientationZ: Output of k-rate PannerNode is identical to the array [0.07389304786920547,0.07389718294143677,0.07390936464071274,0.07392925024032593,0.07395651191473007,0.0739908218383789,0.07403187453746796,0.07407934963703156,0.07413295656442642,0.07419241964817047,0.07425744831562042,0.07432778924703598,0.07440316677093506,0.07448334246873856,0.07456807047128677,0.07465711236000061...]. | PASS |
| k-rate orientationZ: Setting orientationZ.automationRate to "k-rate" is equal to k-rate. | PASS |
| k-rate orientationZ: a-rate node:orientationZ.linearRampToValueAtTime(10,0.08) did not throw an exception. | PASS |
| k-rate orientationZ: a-rate node:orientationZ.setValueAtTime(1,0) did not throw an exception. | PASS |
| k-rate orientationZ: k-rate node: orientationZ.linearRampToValueAtTime(10,0.08) did not throw an exception. | PASS |
| k-rate orientationZ: k-rate node: orientationZ.setValueAtTime(1,0) did not throw an exception. | PASS |
| k-rate positionX: Output of a-rate PannerNode is identical to the array [3.353939348471613e-9,0.07824614644050598,0.06072939187288284,0.0456632599234581,0.03603517264127731,0.029616545885801315,0.02508825622498989,0.021739641204476357,0.019169358536601067,0.017137136310338974,0.015491396188735962,0.014132186770439148,0.012991067953407764,0.012019690126180649,0.011182941496372223,0.010454748757183552...]. | PASS |
| k-rate positionX: Output of k-rate PannerNode is identical to the array [3.353939348471613e-9,0.07824614644050598,0.06072939187288284,0.0456632599234581,0.03603517264127731,0.029616545885801315,0.02508825622498989,0.021739641204476357,0.019169358536601067,0.017137136310338974,0.015491396188735962,0.014132186770439148,0.012991067953407764,0.012019690126180649,0.011182941496372223,0.010454748757183552...]. | PASS |
| k-rate positionX: Setting positionX.automationRate to "k-rate" is equal to k-rate. | PASS |
| k-rate positionX: a-rate node:positionX.linearRampToValueAtTime(1000,0.08) did not throw an exception. | PASS |
| k-rate positionX: a-rate node:positionX.setValueAtTime(0,0) did not throw an exception. | PASS |
| k-rate positionX: k-rate node: positionX.linearRampToValueAtTime(1000,0.08) did not throw an exception. | PASS |
| k-rate positionX: k-rate node: positionX.setValueAtTime(0,0) did not throw an exception. | PASS |
| k-rate positionY: Output of a-rate PannerNode is identical to the array [0.15397992730140686,0.05288306623697281,0.033593595027923584,0.0257780272513628,0.020881211385130882,0.01750437170267105,0.015046178363263607,0.01318277046084404,0.011724471114575863,0.010553551837801933,0.009593425318598747,0.008792280219495296,0.008113889954984188,0.007532190997153521,0.007027978077530861,0.006586793810129166...]. | PASS |
| k-rate positionY: Output of k-rate PannerNode is identical to the array [0.15397992730140686,0.05288306623697281,0.033593595027923584,0.0257780272513628,0.020881211385130882,0.01750437170267105,0.015046178363263607,0.01318277046084404,0.011724471114575863,0.010553551837801933,0.009593425318598747,0.008792280219495296,0.008113889954984188,0.007532190997153521,0.007027978077530861,0.006586793810129166...]. | PASS |
| k-rate positionY: Setting positionY.automationRate to "k-rate" is equal to k-rate. | PASS |
| k-rate positionY: a-rate node:positionY.linearRampToValueAtTime(1000,0.08) did not throw an exception. | PASS |
| k-rate positionY: a-rate node:positionY.setValueAtTime(0,0) did not throw an exception. | PASS |
| k-rate positionY: k-rate node: positionY.linearRampToValueAtTime(1000,0.08) did not throw an exception. | PASS |
| k-rate positionY: k-rate node: positionY.setValueAtTime(0,0) did not throw an exception. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Panner k-rate orientationX] 7 out of 13 assertions were failed. | FAIL |
| < [Panner k-rate orientationY] 6 out of 13 assertions were failed. | FAIL |
| < [Panner k-rate orientationZ] 6 out of 13 assertions were failed. | FAIL |
| < [Panner k-rate positionX] 6 out of 13 assertions were failed. | FAIL |
| < [Panner k-rate positionY] 6 out of 13 assertions were failed. | FAIL |
| > [Listener k-rate positionX] | PASS |
| > [Panner k-rate orientationX] | PASS |
| > [Panner k-rate orientationY] | PASS |
| > [Panner k-rate orientationZ] | PASS |
| > [Panner k-rate positionX] | PASS |
| > [Panner k-rate positionY] | PASS |
| X k-rate orientationX k-rate output [0: 127]: Expected NaN for all values but found 128 unexpected values: Index Actual [0] NaN [1] 0.0007921538199298084 [2] 0.0015768823213875294 [3] 0.002354216994717717 ...and 124 more errors. | FAIL |
| X k-rate orientationX k-rate output [128: 255]: Expected 0.05854205787181854 for all values but found 127 unexpected values: Index Actual [1] 0.05878373980522156 [2] 0.05902349576354027 [3] 0.05926135182380676 [4] 0.05949733033776283 ...and 123 more errors. | FAIL |
| X k-rate orientationX k-rate output [256: 383]: Expected 0.07888390868902206 for all values but found 127 unexpected values: Index Actual [1] 0.07898671180009842 [2] 0.07908895611763 [3] 0.07919061928987503 [4] 0.07929172366857529 ...and 123 more errors. | FAIL |
| X k-rate orientationX k-rate output [384: 511]: Expected 0.08858339488506317 for all values but found 127 unexpected values: Index Actual [1] 0.08863884955644608 [2] 0.08869408071041107 [3] 0.08874908089637756 [4] 0.08880386501550674 ...and 123 more errors. | FAIL |
| X k-rate orientationX k-rate output [512: 639]: Expected 0.09418901801109314 for all values but found 127 unexpected values: Index Actual [1] 0.09422345459461212 [2] 0.09425775706768036 [3] 0.09429195523262024 [4] 0.09432604908943176 ...and 123 more errors. | FAIL |
| X k-rate orientationX: Output of a-rate PannerNode expected to be equal to the array [NaN,0.0007921538199298084,0.0015768823213875294,0.002354216994717717,0.003124210285022855,0.0038868971168994904,0.0046423193998634815,0.005390523001551628,0.006131546106189489,0.006865449249744415,0.007592272944748402,0.008312067948281765,0.009024884551763535,0.009730767458677292,0.010429782792925835,0.011121973395347595...] but differs in 1 places: Index Actual Expected [0] NaN NaN | FAIL |
| X k-rate orientationX: Output of k-rate PannerNode expected to be equal to the array [NaN,0.0007921538199298084,0.0015768823213875294,0.002354216994717717,0.003124210285022855,0.0038868971168994904,0.0046423193998634815,0.005390523001551628,0.006131546106189489,0.006865449249744415,0.007592272944748402,0.008312067948281765,0.009024884551763535,0.009730767458677292,0.010429782792925835,0.011121973395347595...] but differs in 1 places: Index Actual Expected [0] NaN NaN | FAIL |
| X k-rate orientationY k-rate output [0: 127]: Expected 0.07389304786920547 for all values but found 127 unexpected values: Index Actual [1] 0.07389718294143677 [2] 0.07390936464071274 [3] 0.07392925024032593 [4] 0.07395651191473007 ...and 123 more errors. | FAIL |
| X k-rate orientationY k-rate output [128: 255]: Expected 0.08894405514001846 for all values but found 127 unexpected values: Index Actual [1] 0.08904264867305756 [2] 0.08914060890674591 [3] 0.08923792839050293 [4] 0.08933462202548981 ...and 123 more errors. | FAIL |
| X k-rate orientationY k-rate output [256: 383]: Expected 0.09769000113010406 for all values but found 127 unexpected values: Index Actual [1] 0.0977361649274826 [2] 0.09778208285570145 [3] 0.09782776236534119 [4] 0.09787321090698242 ...and 123 more errors. | FAIL |
| X k-rate orientationY k-rate output [384: 511]: Expected 0.10211683064699173 for all values but found 127 unexpected values: Index Actual [1] 0.10214255005121231 [2] 0.10216815769672394 [3] 0.10219366103410721 [4] 0.10221906751394272 ...and 123 more errors. | FAIL |
| X k-rate orientationY k-rate output [512: 639]: Expected 0.1047375425696373 for all values but found 127 unexpected values: Index Actual [1] 0.1047537699341774 [2] 0.10476994514465332 [3] 0.10478606820106506 [4] 0.10480213910341263 ...and 123 more errors. | FAIL |
| X k-rate orientationY: Difference between a-rate and k-rate PannerNode should have contain at least one value different from 0. | FAIL |
| X k-rate orientationZ k-rate output [0: 127]: Expected 0.07389304786920547 for all values but found 127 unexpected values: Index Actual [1] 0.07389718294143677 [2] 0.07390936464071274 [3] 0.07392925024032593 [4] 0.07395651191473007 ...and 123 more errors. | FAIL |
| X k-rate orientationZ k-rate output [128: 255]: Expected 0.08894405514001846 for all values but found 127 unexpected values: Index Actual [1] 0.08904264867305756 [2] 0.08914060890674591 [3] 0.08923792839050293 [4] 0.08933462202548981 ...and 123 more errors. | FAIL |
| X k-rate orientationZ k-rate output [256: 383]: Expected 0.09769000113010406 for all values but found 127 unexpected values: Index Actual [1] 0.0977361649274826 [2] 0.09778208285570145 [3] 0.09782776236534119 [4] 0.09787321090698242 ...and 123 more errors. | FAIL |
| X k-rate orientationZ k-rate output [384: 511]: Expected 0.10211683064699173 for all values but found 127 unexpected values: Index Actual [1] 0.10214255005121231 [2] 0.10216815769672394 [3] 0.10219366103410721 [4] 0.10221906751394272 ...and 123 more errors. | FAIL |
| X k-rate orientationZ k-rate output [512: 639]: Expected 0.1047375425696373 for all values but found 127 unexpected values: Index Actual [1] 0.1047537699341774 [2] 0.10476994514465332 [3] 0.10478606820106506 [4] 0.10480213910341263 ...and 123 more errors. | FAIL |
| X k-rate orientationZ: Difference between a-rate and k-rate PannerNode should have contain at least one value different from 0. | FAIL |
| X k-rate positionX k-rate output [0: 127]: Expected 3.353939348471613e-9 for all values but found 127 unexpected values: Index Actual [1] 0.07824614644050598 [2] 0.06072939187288284 [3] 0.0456632599234581 [4] 0.03603517264127731 ...and 123 more errors. | FAIL |
| X k-rate positionX k-rate output [128: 255]: Expected 0.0012474488466978073 for all values but found 127 unexpected values: Index Actual [1] 0.0012377984821796417 [2] 0.0012282967800274491 [3] 0.0012189395492896438 [4] 0.0012097239959985018 ...and 123 more errors. | FAIL |
| X k-rate positionX k-rate output [256: 383]: Expected 0.0006243684329092503 for all values but found 127 unexpected values: Index Actual [1] 0.0006219413480721414 [2] 0.0006195332389324903 [3] 0.0006171435234136879 [4] 0.0006147722597233951 ...and 123 more errors. | FAIL |
| X k-rate positionX k-rate output [384: 511]: Expected 0.0004163868143223226 for all values but found 127 unexpected values: Index Actual [1] 0.00041530607268214226 [2] 0.00041423088987357914 [3] 0.0004131612367928028 [4] 0.0004120970843359828 ...and 123 more errors. | FAIL |
| X k-rate positionX k-rate output [512: 639]: Expected 0.00031234289053827524 for all values but found 127 unexpected values: Index Actual [1] 0.0003117343003395945 [2] 0.0003111281548626721 [3] 0.0003105243085883558 [4] 0.0003099228488281369 ...and 123 more errors. | FAIL |
| X k-rate positionX: Difference between a-rate and k-rate PannerNode should have contain at least one value different from 0. | FAIL |
| X k-rate positionY k-rate output [0: 127]: Expected 0.15397992730140686 for all values but found 127 unexpected values: Index Actual [1] 0.05288306623697281 [2] 0.033593595027923584 [3] 0.0257780272513628 [4] 0.020881211385130882 ...and 123 more errors. | FAIL |
| X k-rate positionY k-rate output [128: 255]: Expected 0.0008113961666822433 for all values but found 127 unexpected values: Index Actual [1] 0.0008051462355069816 [2] 0.0007989919977262616 [3] 0.0007929310668259859 [4] 0.0007869614637456834 ...and 123 more errors. | FAIL |
| X k-rate positionY k-rate output [256: 383]: Expected 0.0004070003342349082 for all values but found 127 unexpected values: Index Actual [1] 0.000405421742470935 [2] 0.0004038553452119231 [3] 0.0004023009678348899 [4] 0.00040075849392451346 ...and 123 more errors. | FAIL |
| X k-rate positionY k-rate output [384: 511]: Expected 0.00027162270271219313 for all values but found 127 unexpected values: Index Actual [1] 0.0002709187101572752 [2] 0.00027021835558116436 [3] 0.00026952155167236924 [4] 0.0002688283857423812 ...and 123 more errors. | FAIL |
| X k-rate positionY k-rate output [512: 639]: Expected 0.0002038254460785538 for all values but found 127 unexpected values: Index Actual [1] 0.0002034287463175133 [2] 0.00020303358905948699 [3] 0.00020263998885639012 [4] 0.00020224788750056177 ...and 123 more errors. | FAIL |
| X k-rate positionY: Difference between a-rate and k-rate PannerNode should have contain at least one value different from 0. | FAIL |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse.html (17/17, 100.00%, 0.34% of total) | OK |
| Actual and expected results contained only finite values is true. | PASS |
| Magnitude response at frequency -1 is NaN. | PASS |
| Magnitude response at frequency 22051 is NaN. | PASS |
| Max error (-124.9664097542858 dB) of magnitude response at frequency 1992 Hz is less than or equal to -119.17759642805565. | PASS |
| Max error (0.0000022600132537835187 deg) in phase response at frequency 1080 Hz is less than or equal to 0.0000037084120332047404. | PASS |
| Number of non-finite values in expected phase response is equal to 0. | PASS |
| Number of non-finite values in magnitude response is equal to 0. | PASS |
| Number of non-finite values in the expected magnitude response is equal to 0. | PASS |
| Number of non-finte values in phase response is equal to 0. | PASS |
| Phase response at frequency -1 is NaN. | PASS |
| Phase response at frequency 22051 is NaN. | PASS |
| # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [getFrequencyResponse] All assertions passed. (total 4 assertions) | PASS |
| < [test] All assertions passed. (total 7 assertions) | PASS |
| > [getFrequencyResponse] Test out-of-bounds frequency values | PASS |
| > [test] Biquad frequency response | PASS |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-zero.html (5/5, 100.00%, 0.10% of total) | OK |
| # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [synthesize-verify] 1 out of 1 assertions were failed. | FAIL |
| > [synthesize-verify] | PASS |
| X The zero playbackRate should hold the sample value. Expected 0.5 but got 0.5001220703125 at the index 4097 Got false. | FAIL |
| /webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner.html (12/12, 100.00%, 0.24% of total) | OK |
| StereoPannerNode: Output of a-rate StereoPannerNode is identical to the array [0,0.23952385783195496,0.45072680711746216,0.6086364984512329,0.6945819854736328,0.6984010934829712,0.6196423768997192,0.4676182270050049,0.2603035569190979,0.022211041301488876,-0.21850764751434326,-0.4333903193473816,-0.5970296859741211,-0.6900770664215088,-0.701530933380127,-0.6300366520881653...]. | PASS |
| StereoPannerNode: Output of k-rate StereoPannerNode is identical to the array [0,0.23952385783195496,0.45072680711746216,0.6086364984512329,0.6945819854736328,0.6984010934829712,0.6196423768997192,0.4676182270050049,0.2603035569190979,0.022211041301488876,-0.21850764751434326,-0.4333903193473816,-0.5970296859741211,-0.6900770664215088,-0.701530933380127,-0.6300366520881653...]. | PASS |
| StereoPannerNode: Setting pan.automationRate to "k-rate" is equal to k-rate. | PASS |
| StereoPannerNode: a-rate node:pan.linearRampToValueAtTime(0.5,1) did not throw an exception. | PASS |
| StereoPannerNode: a-rate node:pan.setValueAtTime(0,0) did not throw an exception. | PASS |
| StereoPannerNode: k-rate node: pan.linearRampToValueAtTime(0.5,1) did not throw an exception. | PASS |
| StereoPannerNode: k-rate node: pan.setValueAtTime(0,0) did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Test k-rate StereoPannerNode] 1 out of 8 assertions were failed. | FAIL |
| > [Test k-rate StereoPannerNode] | PASS |
| X StereoPannerNode: Difference between a-rate and k-rate StereoPannerNode should have contain at least one value different from 0. | FAIL |
| /webaudio/the-audio-api/the-convolvernode-interface/convolver-setBuffer-already-has-value.html (10/10, 100.00%, 0.20% of total) | OK |
| Set buffer a second time did not throw an exception. | PASS |
| Set buffer first normally did not throw an exception. | PASS |
| Set buffer to non-null to verify it is set did not throw an exception. | PASS |
| Set buffer to null again, to make sure did not throw an exception. | PASS |
| Set buffer to null before set non-null did not throw an exception. | PASS |
| Set buffer to null did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 6 assertions) | PASS |
| > [test] | PASS |
| /webaudio/the-audio-api/the-pannernode-interface/panner-rolloff-clamping.html (5/5, 100.00%, 0.10% of total) | OK |
| # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [linear-clamp-high] 1 out of 1 assertions were failed. | FAIL |
| > [linear-clamp-high] rolloffFactor clamping for linear distance model | PASS |
| X Panner distanceModel: "linear", rolloffFactor: 2 expected to be equal to the array [0,0.009438800625503063,0.02810869924724102,0.03424321487545967,0.049286145716905594,0.06121714785695076,0.07480449229478836,0.08126655966043472,0.10326723754405975,0.10609924048185349,0.12179718166589737,0.1385885775089264,0.14151552319526672,0.16106881201267242,0.1722015142440796,0.18278823792934418...] but differs in 2047 places: Index Actual Expected [1] 1.8877600496125524e-6 9.4388006255030632e-3 [2] 5.6217400015157182e-6 2.8108699247241020e-2 [3] 6.8486433519865386e-6 3.4243214875459671e-2 [4] 9.8572290880838409e-6 4.9286145716905594e-2 ...and 2043 more errors. | FAIL |
| /webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [Stereo panner.positionX] | PASS |
| /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan.html (25/25, 100.00%, 0.50% of total) | OK |
| 1: Channel 1 equals [0,0,0,0.9458408951759338,0.8448333740234375,0.8210252523422241,0.8620985746383667,0.8430315852165222,0.855602502822876,0.7933436632156372,0.9865825176239014,0.3972480297088623,-0.7786127924919128,-0.9223549962043762,-0.7896472215652466,-0.8727429509162903...] with an element-wise tolerance of {"absoluteThreshold":4.7684e-7,"relativeThreshold":0}. | PASS |
| 2: Channel 1 equals [0,0,0,0.9458408951759338,0.8448333740234375,0.8210252523422241,0.8620985746383667,0.8430315852165222,0.855602502822876,0.7933436632156372,0.9865825176239014,0.3972480297088623,-0.7786127924919128,-0.9223549962043762,-0.7896472215652466,-0.8727429509162903...] with an element-wise tolerance of {"absoluteThreshold":4.7684e-7,"relativeThreshold":0}. | PASS |
| 4: Channel 0 equals [0,0,0.9706697463989258,0.8062858581542969,0.8572278618812561,0.8353679776191711,0.1815471351146698,-0.06941461563110352,0.0376264750957489,-0.007540702819824219,-0.01803457736968994,0.029624849557876587,-0.021628618240356445,-0.005501270294189453,0.05631396174430847,-0.4426816999912262...] with an element-wise tolerance of {"absoluteThreshold":3.5763e-7,"relativeThreshold":0}. | PASS |
| 4: Channel 1 equals [0,0,0,0.9692283868789673,0.8026213049888611,0.8825444579124451,0.18008126318454742,0.027644813060760498,-0.2844730615615845,-0.7766556739807129,-0.037477731704711914,-0.008235335350036621,0.07220342755317688,-0.3337171971797943,-0.7541778683662415,-0.020433425903320312...] with an element-wise tolerance of {"absoluteThreshold":2.9803e-7,"relativeThreshold":0}. | PASS |
| 5.1: Channel 0 equals [0,0,2.2955899238586426,2.0720272064208984,1.532062292098999,0.8335829973220825,-0.21171289682388306,-0.005277678370475769,0.8338430523872375,1.0169568061828613,0.3252672553062439,-0.6764181852340698,-1.054646611213684,-0.5476447343826294,0.25095105171203613,-0.10892623662948608...] with an element-wise tolerance of {"absoluteThreshold":7.1526e-7,"relativeThreshold":0}. | PASS |
| 5.1: Channel 1 equals [0,0,0,2.4002127647399902,1.8464014530181885,1.242234230041504,0.578858494758606,0.3615039587020874,0.16441935300827026,-0.7429117560386658,-1.5301964282989502,-1.898935079574585,-0.7277188301086426,0.01055973768234253,0.7105643153190613,1.7486152648925781...] with an element-wise tolerance of {"absoluteThreshold":7.1526e-7,"relativeThreshold":0}. | PASS |
| new AudioBuffer({numberOfChannels: 2, length: 4, sampleRate: 8192}) did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 3 out of 6 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [1-channel input] 1 out of 2 assertions were failed. | FAIL |
| < [2-channel input] 1 out of 2 assertions were failed. | FAIL |
| < [3-channel input] 2 out of 2 assertions were failed. | FAIL |
| < [4-channel input] All assertions passed. (total 2 assertions) | PASS |
| < [5.1-channel input] All assertions passed. (total 2 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| > [1-channel input] produces 2-channel output | PASS |
| > [2-channel input] produces 2-channel output | PASS |
| > [3-channel input] 3->2 downmix producing 2-channel output | PASS |
| > [4-channel input] 4->2 downmix producing 2-channel output | PASS |
| > [5.1-channel input] 5.1->2 downmix producing 2-channel output | PASS |
| > [initialize] Convolver response with one channel | PASS |
| X 1: Channel 0 does not equal [0,0,0.9458408951759338,0.8448333740234375,0.8210252523422241,0.8620985746383667,0.8430315852165222,0.855602502822876,0.7933436632156372,0.9865825176239014,0.3972480297088623,-0.7786127924919128,-0.9223549962043762,-0.7896472215652466,-0.8727429509162903,-0.8325281143188477...] with an element-wise tolerance of {"absoluteThreshold":3.5763e-7,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [267] 8.6412906646728516e-1 8.6412948369979858e-1 4.1723251342773438e-7 4.8283564129919487e-7 3.5763000000000001e-7 [779] -8.6412906646728516e-1 -8.6412948369979858e-1 4.1723251342773438e-7 4.8283564129919487e-7 3.5763000000000001e-7 Max AbsError of 4.1723251342773438e-7 at index of 267. Max RelError of 4.8283564129919487e-7 at index of 267. | FAIL |
| X 2: Channel 0 does not equal [0,0,0.9458408951759338,0.8448333740234375,0.8210252523422241,0.8620985746383667,0.8430315852165222,0.855602502822876,0.7933436632156372,0.9865825176239014,0.3972480297088623,-0.7786127924919128,-0.9223549962043762,-0.7896472215652466,-0.8727429509162903,-0.8325281143188477...] with an element-wise tolerance of {"absoluteThreshold":3.5763e-7,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [267] 8.6412906646728516e-1 8.6412948369979858e-1 4.1723251342773438e-7 4.8283564129919487e-7 3.5763000000000001e-7 [779] -8.6412906646728516e-1 -8.6412948369979858e-1 4.1723251342773438e-7 4.8283564129919487e-7 3.5763000000000001e-7 Max AbsError of 4.1723251342773438e-7 at index of 267. Max RelError of 4.8283564129919487e-7 at index of 267. | FAIL |
| X 3: Channel 0 does not equal [0,0,0.9458408951759338,0.8448333740234375,0.8210252523422241,0.8620985746383667,0.8430315852165222,0.855602502822876,0.7933436632156372,0.9865825176239014,0.3972480297088623,-0.7786127924919128,-0.9223549962043762,-0.7896472215652466,-0.8727429509162903,-0.8325281143188477...] with an element-wise tolerance of {"absoluteThreshold":3.5763e-7,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [267] 8.6412906646728516e-1 8.6412948369979858e-1 4.1723251342773438e-7 4.8283564129919487e-7 3.5763000000000001e-7 [779] -8.6412906646728516e-1 -8.6412948369979858e-1 4.1723251342773438e-7 4.8283564129919487e-7 3.5763000000000001e-7 Max AbsError of 4.1723251342773438e-7 at index of 267. Max RelError of 4.8283564129919487e-7 at index of 267. | FAIL |
| X 3: Channel 1 does not equal [0,0,0,0.9918842315673828,0.7683960199356079,0.9083511829376221,0.7684863805770874,0.9814503192901611,0.3193226158618927,-0.9322392344474792,-0.8032255172729492,-0.8812425136566162,-0.7985008358955383,-0.9260328412055969,-0.600982666015625,0.7887306809425354...] with an element-wise tolerance of {"absoluteThreshold":3.5763e-7,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [653] 8.3021926879882813e-1 8.3021968603134155e-1 4.1723251342773438e-7 5.0255675750380060e-7 3.5763000000000001e-7 [1001] 2.7387520670890808e-1 2.7387481927871704e-1 3.8743019104003906e-7 1.4146250906176189e-6 3.5763000000000001e-7 Max AbsError of 4.1723251342773438e-7 at index of 653. Max RelError of 1.4146250906176189e-6 at index of 1001. | FAIL |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/note-grain-on-play.html (210/210, 100.00%, 4.23% of total) | OK |
| Found all grain starts and ends is true. | PASS |
| Number of end frames is equal to 100. | PASS |
| Number of grains that did not contain the expected data is equal to 0. | PASS |
| Number of grains that started at the correct time is equal to 100. | PASS |
| Number of start frames is equal to 100. | PASS |
| Pulse 0 boundary is identical to the array [0,441]. | PASS |
| Pulse 0 contained the expected data is true. | PASS |
| Pulse 1 boundary is identical to the array [662,1103]. | PASS |
| Pulse 1 contained the expected data is true. | PASS |
| Pulse 10 boundary is identical to the array [6615,7056]. | PASS |
| Pulse 10 contained the expected data is true. | PASS |
| Pulse 11 boundary is identical to the array [7276,7717]. | PASS |
| Pulse 11 contained the expected data is true. | PASS |
| Pulse 12 boundary is identical to the array [7938,8379]. | PASS |
| Pulse 12 contained the expected data is true. | PASS |
| Pulse 13 boundary is identical to the array [8600,9041]. | PASS |
| Pulse 13 contained the expected data is true. | PASS |
| Pulse 14 boundary is identical to the array [9261,9702]. | PASS |
| Pulse 14 contained the expected data is true. | PASS |
| Pulse 15 boundary is identical to the array [9922,10363]. | PASS |
| Pulse 15 contained the expected data is true. | PASS |
| Pulse 16 boundary is identical to the array [10584,11025]. | PASS |
| Pulse 16 contained the expected data is true. | PASS |
| Pulse 17 boundary is identical to the array [11246,11687]. | PASS |
| Pulse 17 contained the expected data is true. | PASS |
| Pulse 18 boundary is identical to the array [11907,12348]. | PASS |
| Pulse 18 contained the expected data is true. | PASS |
| Pulse 19 boundary is identical to the array [12568,13009]. | PASS |
| Pulse 19 contained the expected data is true. | PASS |
| Pulse 2 boundary is identical to the array [1323,1764]. | PASS |
| Pulse 2 contained the expected data is true. | PASS |
| Pulse 20 boundary is identical to the array [13230,13671]. | PASS |
| Pulse 20 contained the expected data is true. | PASS |
| Pulse 21 boundary is identical to the array [13892,14333]. | PASS |
| Pulse 21 contained the expected data is true. | PASS |
| Pulse 22 boundary is identical to the array [14553,14994]. | PASS |
| Pulse 22 contained the expected data is true. | PASS |
| Pulse 23 boundary is identical to the array [15214,15655]. | PASS |
| Pulse 23 contained the expected data is true. | PASS |
| Pulse 24 boundary is identical to the array [15876,16317]. | PASS |
| Pulse 24 contained the expected data is true. | PASS |
| Pulse 25 boundary is identical to the array [16538,16979]. | PASS |
| Pulse 25 contained the expected data is true. | PASS |
| Pulse 26 boundary is identical to the array [17199,17640]. | PASS |
| Pulse 26 contained the expected data is true. | PASS |
| Pulse 27 boundary is identical to the array [17861,18302]. | PASS |
| Pulse 27 contained the expected data is true. | PASS |
| Pulse 28 boundary is identical to the array [18522,18963]. | PASS |
| Pulse 28 contained the expected data is true. | PASS |
| Pulse 29 boundary is identical to the array [19184,19625]. | PASS |
| Pulse 29 contained the expected data is true. | PASS |
| Pulse 3 boundary is identical to the array [1985,2426]. | PASS |
| Pulse 3 contained the expected data is true. | PASS |
| Pulse 30 boundary is identical to the array [19845,20286]. | PASS |
| Pulse 30 contained the expected data is true. | PASS |
| Pulse 31 boundary is identical to the array [20507,20948]. | PASS |
| Pulse 31 contained the expected data is true. | PASS |
| Pulse 32 boundary is identical to the array [21168,21609]. | PASS |
| Pulse 32 contained the expected data is true. | PASS |
| Pulse 33 boundary is identical to the array [21830,22271]. | PASS |
| Pulse 33 contained the expected data is true. | PASS |
| Pulse 34 boundary is identical to the array [22491,22932]. | PASS |
| Pulse 34 contained the expected data is true. | PASS |
| Pulse 35 boundary is identical to the array [23153,23594]. | PASS |
| Pulse 35 contained the expected data is true. | PASS |
| Pulse 36 boundary is identical to the array [23814,24255]. | PASS |
| Pulse 36 contained the expected data is true. | PASS |
| Pulse 37 boundary is identical to the array [24475,24916]. | PASS |
| Pulse 37 contained the expected data is true. | PASS |
| Pulse 38 boundary is identical to the array [25137,25578]. | PASS |
| Pulse 38 contained the expected data is true. | PASS |
| Pulse 39 boundary is identical to the array [25799,26240]. | PASS |
| Pulse 39 contained the expected data is true. | PASS |
| Pulse 4 boundary is identical to the array [2646,3087]. | PASS |
| Pulse 4 contained the expected data is true. | PASS |
| Pulse 40 boundary is identical to the array [26460,26901]. | PASS |
| Pulse 40 contained the expected data is true. | PASS |
| Pulse 41 boundary is identical to the array [27122,27563]. | PASS |
| Pulse 41 contained the expected data is true. | PASS |
| Pulse 42 boundary is identical to the array [27783,28224]. | PASS |
| Pulse 42 contained the expected data is true. | PASS |
| Pulse 43 boundary is identical to the array [28445,28886]. | PASS |
| Pulse 43 contained the expected data is true. | PASS |
| Pulse 44 boundary is identical to the array [29106,29547]. | PASS |
| Pulse 44 contained the expected data is true. | PASS |
| Pulse 45 boundary is identical to the array [29767,30208]. | PASS |
| Pulse 45 contained the expected data is true. | PASS |
| Pulse 46 boundary is identical to the array [30429,30870]. | PASS |
| Pulse 46 contained the expected data is true. | PASS |
| Pulse 47 boundary is identical to the array [31091,31532]. | PASS |
| Pulse 47 contained the expected data is true. | PASS |
| Pulse 48 boundary is identical to the array [31752,32193]. | PASS |
| Pulse 48 contained the expected data is true. | PASS |
| Pulse 49 boundary is identical to the array [32414,32855]. | PASS |
| Pulse 49 contained the expected data is true. | PASS |
| Pulse 5 boundary is identical to the array [3308,3749]. | PASS |
| Pulse 5 contained the expected data is true. | PASS |
| Pulse 50 boundary is identical to the array [33075,33516]. | PASS |
| Pulse 50 contained the expected data is true. | PASS |
| Pulse 51 boundary is identical to the array [33737,34178]. | PASS |
| Pulse 51 contained the expected data is true. | PASS |
| Pulse 52 boundary is identical to the array [34398,34839]. | PASS |
| Pulse 52 contained the expected data is true. | PASS |
| Pulse 53 boundary is identical to the array [35060,35501]. | PASS |
| Pulse 53 contained the expected data is true. | PASS |
| Pulse 54 boundary is identical to the array [35721,36162]. | PASS |
| Pulse 54 contained the expected data is true. | PASS |
| Pulse 55 boundary is identical to the array [36383,36824]. | PASS |
| Pulse 55 contained the expected data is true. | PASS |
| Pulse 56 boundary is identical to the array [37044,37485]. | PASS |
| Pulse 56 contained the expected data is true. | PASS |
| Pulse 57 boundary is identical to the array [37706,38147]. | PASS |
| Pulse 57 contained the expected data is true. | PASS |
| Pulse 58 boundary is identical to the array [38367,38808]. | PASS |
| Pulse 58 contained the expected data is true. | PASS |
| Pulse 59 boundary is identical to the array [39029,39470]. | PASS |
| Pulse 59 contained the expected data is true. | PASS |
| Pulse 6 boundary is identical to the array [3969,4410]. | PASS |
| Pulse 6 contained the expected data is true. | PASS |
| Pulse 60 boundary is identical to the array [39690,40131]. | PASS |
| Pulse 60 contained the expected data is true. | PASS |
| Pulse 61 boundary is identical to the array [40352,40793]. | PASS |
| Pulse 61 contained the expected data is true. | PASS |
| Pulse 62 boundary is identical to the array [41013,41454]. | PASS |
| Pulse 62 contained the expected data is true. | PASS |
| Pulse 63 boundary is identical to the array [41675,42116]. | PASS |
| Pulse 63 contained the expected data is true. | PASS |
| Pulse 64 boundary is identical to the array [42336,42777]. | PASS |
| Pulse 64 contained the expected data is true. | PASS |
| Pulse 65 boundary is identical to the array [42998,43439]. | PASS |
| Pulse 65 contained the expected data is true. | PASS |
| Pulse 66 boundary is identical to the array [43659,44100]. | PASS |
| Pulse 66 contained the expected data is true. | PASS |
| Pulse 67 boundary is identical to the array [44320,44761]. | PASS |
| Pulse 67 contained the expected data is true. | PASS |
| Pulse 68 boundary is identical to the array [44982,45423]. | PASS |
| Pulse 68 contained the expected data is true. | PASS |
| Pulse 69 boundary is identical to the array [45644,46085]. | PASS |
| Pulse 69 contained the expected data is true. | PASS |
| Pulse 7 boundary is identical to the array [4631,5072]. | PASS |
| Pulse 7 contained the expected data is true. | PASS |
| Pulse 70 boundary is identical to the array [46305,46746]. | PASS |
| Pulse 70 contained the expected data is true. | PASS |
| Pulse 71 boundary is identical to the array [46967,47408]. | PASS |
| Pulse 71 contained the expected data is true. | PASS |
| Pulse 72 boundary is identical to the array [47628,48069]. | PASS |
| Pulse 72 contained the expected data is true. | PASS |
| Pulse 73 boundary is identical to the array [48290,48731]. | PASS |
| Pulse 73 contained the expected data is true. | PASS |
| Pulse 74 boundary is identical to the array [48951,49392]. | PASS |
| Pulse 74 contained the expected data is true. | PASS |
| Pulse 75 contained the expected data is true. | PASS |
| Pulse 76 boundary is identical to the array [50274,50715]. | PASS |
| Pulse 76 contained the expected data is true. | PASS |
| Pulse 77 boundary is identical to the array [50936,51377]. | PASS |
| Pulse 77 contained the expected data is true. | PASS |
| Pulse 78 boundary is identical to the array [51597,52038]. | PASS |
| Pulse 78 contained the expected data is true. | PASS |
| Pulse 79 boundary is identical to the array [52259,52700]. | PASS |
| Pulse 79 contained the expected data is true. | PASS |
| Pulse 8 boundary is identical to the array [5292,5733]. | PASS |
| Pulse 8 contained the expected data is true. | PASS |
| Pulse 80 boundary is identical to the array [52920,53361]. | PASS |
| Pulse 80 contained the expected data is true. | PASS |
| Pulse 81 boundary is identical to the array [53581,54022]. | PASS |
| Pulse 81 contained the expected data is true. | PASS |
| Pulse 82 boundary is identical to the array [54243,54684]. | PASS |
| Pulse 82 contained the expected data is true. | PASS |
| Pulse 83 boundary is identical to the array [54904,55345]. | PASS |
| Pulse 83 contained the expected data is true. | PASS |
| Pulse 84 boundary is identical to the array [55566,56007]. | PASS |
| Pulse 84 contained the expected data is true. | PASS |
| Pulse 85 boundary is identical to the array [56227,56668]. | PASS |
| Pulse 85 contained the expected data is true. | PASS |
| Pulse 86 boundary is identical to the array [56889,57330]. | PASS |
| Pulse 86 contained the expected data is true. | PASS |
| Pulse 87 boundary is identical to the array [57551,57992]. | PASS |
| Pulse 87 contained the expected data is true. | PASS |
| Pulse 88 boundary is identical to the array [58212,58653]. | PASS |
| Pulse 88 contained the expected data is true. | PASS |
| Pulse 89 boundary is identical to the array [58874,59315]. | PASS |
| Pulse 89 contained the expected data is true. | PASS |
| Pulse 9 boundary is identical to the array [5954,6395]. | PASS |
| Pulse 9 contained the expected data is true. | PASS |
| Pulse 90 boundary is identical to the array [59535,59976]. | PASS |
| Pulse 90 contained the expected data is true. | PASS |
| Pulse 91 boundary is identical to the array [60197,60638]. | PASS |
| Pulse 91 contained the expected data is true. | PASS |
| Pulse 92 boundary is identical to the array [60858,61299]. | PASS |
| Pulse 92 contained the expected data is true. | PASS |
| Pulse 93 boundary is identical to the array [61520,61961]. | PASS |
| Pulse 93 contained the expected data is true. | PASS |
| Pulse 94 boundary is identical to the array [62181,62622]. | PASS |
| Pulse 94 contained the expected data is true. | PASS |
| Pulse 95 boundary is identical to the array [62843,63284]. | PASS |
| Pulse 95 contained the expected data is true. | PASS |
| Pulse 96 boundary is identical to the array [63504,63945]. | PASS |
| Pulse 96 contained the expected data is true. | PASS |
| Pulse 97 boundary is identical to the array [64165,64606]. | PASS |
| Pulse 97 contained the expected data is true. | PASS |
| Pulse 98 boundary is identical to the array [64827,65268]. | PASS |
| Pulse 98 contained the expected data is true. | PASS |
| Pulse 99 boundary is identical to the array [65488,65929]. | PASS |
| Pulse 99 contained the expected data is true. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [note-grain-on-play] 2 out of 206 assertions were failed. | FAIL |
| > [note-grain-on-play] Test noteGrainOn offset rendering | PASS |
| X Number of grains out of 100 that ended at the wrong time is not equal to 0. Got 1. | FAIL |
| X Pulse 75 boundary expected to be equal to the array [49613,50053] but differs in 1 places: Index Actual Expected [1] 5.0054000000000000e+4 5.0053000000000000e+4 | FAIL |
| /webaudio/the-audio-api/the-pannernode-interface/distance-exponential.html (106/106, 100.00%, 2.14% of total) | OK |
| 0.00007142485992517322 is 0.00007142485524626213 within an error of 0.0000033. | PASS |
| 0.0000721536052878946 is 0.00007215360593004378 within an error of 0.0000033. | PASS |
| 0.00007289737550308928 is 0.00007289738085207445 within an error of 0.0000033. | PASS |
| 0.00007365665078395978 is 0.0000736566494708926 within an error of 0.0000033. | PASS |
| 0.0000744318967917934 is 0.00007443190100963128 within an error of 0.0000033. | PASS |
| 0.00007522365194745362 is 0.0000752236455072146 within an error of 0.0000033. | PASS |
| 0.00007603241101605818 is 0.0000760324149373658 within an error of 0.0000033. | PASS |
| 0.00007685876335017383 is 0.00007685876440058646 within an error of 0.0000033. | PASS |
| 0.00007770327647449449 is 0.0000777032733947189 within an error of 0.0000033. | PASS |
| 0.00007856654701754451 is 0.00007856654717020339 within an error of 0.0000033. | PASS |
| 0.00007944921526359394 is 0.00007944921817669082 within an error of 0.0000033. | PASS |
| 0.00008035194332478568 is 0.00008035194760827667 within an error of 0.0000033. | PASS |
| 0.00008127542969305068 is 0.00008127542705529087 within an error of 0.0000033. | PASS |
| 0.00008222038013627753 is 0.00008222038027131507 within an error of 0.0000033. | PASS |
| 0.0000831875586300157 is 0.00008318756506491622 within an error of 0.0000033. | PASS |
| 0.00008417777280556038 is 0.00008417777532648753 within an error of 0.0000033. | PASS |
| 0.00008519184484612197 is 0.00008519184320159076 within an error of 0.0000033. | PASS |
| 0.00008623064786661416 is 0.00008623064142330383 within an error of 0.0000033. | PASS |
| 0.00008729508408578113 is 0.00008729508581731386 within an error of 0.0000033. | PASS |
| 0.00008838613575790077 is 0.00008838613799486857 within an error of 0.0000033. | PASS |
| 0.00008950480696512386 is 0.00008950480825022975 within an error of 0.0000033. | PASS |
| 0.00009065215999726206 is 0.00009065215868097922 within an error of 0.0000033. | PASS |
| 0.00009182930807583034 is 0.00009182930655143387 within an error of 0.0000033. | PASS |
| 0.0000930374299059622 is 0.00009303742792155874 within an error of 0.0000033. | PASS |
| 0.00009427775512449443 is 0.00009427776156615415 within an error of 0.0000033. | PASS |
| 0.00009555161523167044 is 0.00009555161321177196 within an error of 0.0000033. | PASS |
| 0.00009686036355560645 is 0.00009686036012182393 within an error of 0.0000033. | PASS |
| 0.00009820545528782532 is 0.00009820545606372913 within an error of 0.0000033. | PASS |
| 0.00009958843293134123 is 0.00009958843669576138 within an error of 0.0000033. | PASS |
| 0.00010101093357661739 is 0.00010101092541556044 within an error of 0.0000033. | PASS |
| 0.00010247463796986267 is 0.00010247463971713554 within an error of 0.0000033. | PASS |
| 0.00010398139420431107 is 0.00010398139810869895 within an error of 0.0000033. | PASS |
| 0.00010553312313277274 is 0.0001055331276499139 within an error of 0.0000033. | PASS |
| 0.00010713187657529488 is 0.0001071318721742437 within an error of 0.0000033. | PASS |
| 0.00010877980093937367 is 0.00010877980127016969 within an error of 0.0000033. | PASS |
| 0.00011047922453144565 is 0.0001104792201042672 within an error of 0.0000033. | PASS |
| 0.00011223257752135396 is 0.00011223258017966366 within an error of 0.0000033. | PASS |
| 0.00011404248652979732 is 0.00011404249113547034 within an error of 0.0000033. | PASS |
| 0.00011591173097258434 is 0.0001159117337066233 within an error of 0.0000033. | PASS |
| 0.00011784327944042161 is 0.00011784327397949263 within an error of 0.0000033. | PASS |
| 0.00011984026787104085 is 0.00011984027909696912 within an error of 0.0000033. | PASS |
| 0.00012190613779239357 is 0.00012190613458793458 within an error of 0.0000033. | PASS |
| 0.0001240444544237107 is 0.00012404446352056735 within an error of 0.0000033. | PASS |
| 0.0001262591395061463 is 0.00012625914770742077 within an error of 0.0000033. | PASS |
| 0.0001285543548874557 is 0.0001285543512233631 within an error of 0.0000033. | PASS |
| 0.00013093453890178353 is 0.00013093454653613723 within an error of 0.0000033. | PASS |
| 0.00013340453733690083 is 0.00013340454359453928 within an error of 0.0000033. | PASS |
| 0.00013596951612271369 is 0.00013596952227228016 within an error of 0.0000033. | PASS |
| 0.00013863506319466978 is 0.0001386350686280235 within an error of 0.0000033. | PASS |
| 0.0001414072175975889 is 0.00014140721551575796 within an error of 0.0000033. | PASS |
| 0.0001442924840375781 is 0.0001442924881668536 within an error of 0.0000033. | PASS |
| 0.00014729794929735363 is 0.00014729795546868834 within an error of 0.0000033. | PASS |
| 0.0001504312822362408 is 0.00015043128778808934 within an error of 0.0000033. | PASS |
| 0.0001537008211016655 is 0.00015370082233532315 within an error of 0.0000033. | PASS |
| 0.00015711563173681498 is 0.00015711563724134773 within an error of 0.0000033. | PASS |
| 0.00016068562399595976 is 0.00016068563573421284 within an error of 0.0000033. | PASS |
| 0.00016442163905594498 is 0.00016442164205827313 within an error of 0.0000033. | PASS |
| 0.0001683355076238513 is 0.00016833551109288422 within an error of 0.0000033. | PASS |
| 0.0001724402536638081 is 0.00017244025400894687 within an error of 0.0000033. | PASS |
| 0.00017675016715656966 is 0.0001767501827692215 within an error of 0.0000033. | PASS |
| 0.0001812810660339892 is 0.00018128107685376073 within an error of 0.0000033. | PASS |
| 0.00018605036893859506 is 0.00018605037630348406 within an error of 0.0000033. | PASS |
| 0.00019107740081381053 is 0.00019107740605965677 within an error of 0.0000033. | PASS |
| 0.0001963836548384279 is 0.00019638363768289738 within an error of 0.0000033. | PASS |
| 0.00020199301070533693 is 0.00020199299592548462 within an error of 0.0000033. | PASS |
| 0.00020793221483472735 is 0.00020793221938875033 within an error of 0.0000033. | PASS |
| 0.0002142313023796305 is 0.00021423128673467743 within an error of 0.0000033. | PASS |
| 0.0002209239173680544 is 0.00022092392278720384 within an error of 0.0000033. | PASS |
| 0.00022804820036981255 is 0.00022804820255702685 within an error of 0.0000033. | PASS |
| 0.00023564728326164186 is 0.00023564727603110863 within an error of 0.0000033. | PASS |
| 0.0002437702496536076 is 0.0002437702428669352 within an error of 0.0000033. | PASS |
| 0.0002524732262827456 is 0.0002524732144543359 within an error of 0.0000033. | PASS |
| 0.00026182059082202613 is 0.0002618206119036511 within an error of 0.0000033. | PASS |
| 0.0002718867617659271 is 0.00027188676345445823 within an error of 0.0000033. | PASS |
| 0.0002827578573487699 is 0.0002827578851090863 within an error of 0.0000033. | PASS |
| 0.00029453454772010446 is 0.00029453455621825906 within an error of 0.0000033. | PASS |
| 0.0003073348489124328 is 0.00030733484059099675 within an error of 0.0000033. | PASS |
| 0.00032129825558513403 is 0.000321298258429533 within an error of 0.0000033. | PASS |
| 0.0003365908924024552 is 0.00033659089256258244 within an error of 0.0000033. | PASS |
| 0.0003534120332915336 is 0.0003534120257829606 within an error of 0.0000033. | PASS |
| 0.0003720028616953641 is 0.00037200287308386824 within an error of 0.0000033. | PASS |
| 0.00039265822852030396 is 0.0003926582230242598 within an error of 0.0000033. | PASS |
| 0.0004157421935815364 is 0.00041574218539568777 within an error of 0.0000033. | PASS |
| 0.00044170982437208295 is 0.00044170984057529024 within an error of 0.0000033. | PASS |
| 0.00047113755135796964 is 0.00047113754285008335 within an error of 0.0000033. | PASS |
| 0.0005047661834396422 is 0.0005047662016094025 within an error of 0.0000033. | PASS |
| 0.0005435644998215139 is 0.0005435645231164894 within an error of 0.0000033. | PASS |
| 0.0005888238083571196 is 0.0005888238468344444 within an error of 0.0000033. | PASS |
| 0.000642304599750787 is 0.0006423046636689839 within an error of 0.0000033. | PASS |
| 0.0007064709207043052 is 0.0007064709573249552 within an error of 0.0000033. | PASS |
| 0.0007848805980756879 is 0.0007848805998230096 within an error of 0.0000033. | PASS |
| 0.0008828681893646717 is 0.0008828681780783943 within an error of 0.0000033. | PASS |
| 0.0010088123381137848 is 0.0010088122653996085 within an error of 0.0000033. | PASS |
| 0.0011766677489504218 is 0.0011766678556703624 within an error of 0.0000033. | PASS |
| 0.001411531469784677 is 0.0014115316522338509 within an error of 0.0000033. | PASS |
| 0.001763534382916987 is 0.0017635344702377983 within an error of 0.0000033. | PASS |
| 0.0023494260385632515 is 0.0023494261261472827 within an error of 0.0000033. | PASS |
| 0.003518294310197234 is 0.003518294264038947 within an error of 0.0000033. | PASS |
| 0.007001750636845827 is 0.007001750482092757 within an error of 0.0000033. | PASS |
| 0.7071067690849304 is 0.7071067811865476 within an error of 0.0000033. | PASS |
| Max error in distance gains is less than or equal to 0.0000033. | PASS |
| Number of impulses is equal to 100. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 102 assertions) | PASS |
| > [test] Exponential distance model for PannerNode | PASS |
| /webaudio/the-audio-api/the-convolvernode-interface/convolver-setBuffer-null.html (6/6, 100.00%, 0.12% of total) | OK |
| Setting ConvolverNode impulse response buffer to null did not throw an exception. | PASS |
| conv.buffer === null is true. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 2 assertions) | PASS |
| > [test] | PASS |
| /webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple.html (16/16, 100.00%, 0.32% of total) | OK |
| Initial WaveShaper.curve is equal to null. | PASS |
| Initial WaveShaper.oversample is equal to none. | PASS |
| Setting curve back to null did not throw an exception. | PASS |
| Setting curve to [-1,0.25,0.75] did not throw an exception. | PASS |
| Setting oversample to "2x" did not throw an exception. | PASS |
| Setting oversample to "4x" did not throw an exception. | PASS |
| Setting oversample to "invalid" did not throw an exception. | PASS |
| WaveShaper.curve is identical to the array [-1,0.25,0.75]. | PASS |
| Waveshaper.curve = null is equal to null. | PASS |
| Waveshaper.oversample = "2x" is equal to 2x. | PASS |
| Waveshaper.oversample = "4x" is equal to 4x. | PASS |
| Waveshaper.oversample = "invalid" is equal to 4x. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [simple] All assertions passed. (total 12 assertions) | PASS |
| > [simple] | PASS |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-construction.https.html (5/5, 100.00%, 0.10% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [construction-before-module-loading] 1 out of 1 assertions were failed. | FAIL |
| > [construction-after-module-loading] | PASS |
| > [construction-before-module-loading] | PASS |
| X Creating a node before loading a module should throw. threw "ReferenceError" instead of InvalidStateError. | FAIL |
| /webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html (7/7, 100.00%, 0.14% of total) | OK |
| WaveShaperNode - Testing a 2-element curve (does not have a middle element) | PASS |
| WaveShaperNode - Testing a 4-element curve (does not have a middle element) | PASS |
| WaveShaperNode - Testing a huge curve | PASS |
| WaveShaperNode - Testing interpolation (where inputs don't correlate directly to curve elements) | PASS |
| WaveShaperNode - Testing null curve (should return input values) | PASS |
| WaveShaperNode - Testing out-of-range inputs (should be mapped to the first/last elements of the curve) | PASS |
| WaveShaperNode - Testing that -1, 0 and +1 map correctly to curve (with 1:1 correlation) | PASS |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-basic.html (16/16, 100.00%, 0.32% of total) | OK |
| Calling start() twice threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| Calling stop() before start() threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| start(-1) threw RangeError: "The value for the start time is outside the valid range.". | PASS |
| start(-Infinity) threw TypeError: "Argument 1 of AudioBufferSourceNode.start is not a finite floating-point value.". | PASS |
| start(0,-1) threw RangeError: "The value for the offset is outside the valid range.". | PASS |
| start(0,0,-1) threw RangeError: "The value for the duration is outside the valid range.". | PASS |
| start(Infinity) threw TypeError: "Argument 1 of AudioBufferSourceNode.start is not a finite floating-point value.". | PASS |
| start(NaN) threw TypeError: "Argument 1 of AudioBufferSourceNode.start is not a finite floating-point value.". | PASS |
| stop(-1) threw RangeError: "The value for the stop time is outside the valid range.". | PASS |
| stop(-Infinity) threw TypeError: "Argument 1 of AudioScheduledSourceNode.stop is not a finite floating-point value.". | PASS |
| stop(Infinity) threw TypeError: "Argument 1 of AudioScheduledSourceNode.stop is not a finite floating-point value.". | PASS |
| stop(NaN) threw TypeError: "Argument 1 of AudioScheduledSourceNode.stop is not a finite floating-point value.". | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [start/stop exceptions] All assertions passed. (total 12 assertions) | PASS |
| > [start/stop exceptions] | PASS |
| /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html (25/25, 100.00%, 0.50% of total) | OK |
| 1: Channel 1 contains only the constant 0. | PASS |
| Convolver output equals [0,0,0.3311063051223755,0.6248595118522644,0.8481203317642212,0.9757021069526672,0.9932119250297546,0.8986744284629822,0.7027547359466553,0.42755505442619324,0.1041216030716896,-0.23105813562870026,-0.5401715040206909,-0.7883464694023132,-0.9475855827331543,-0.9999247193336487...] with an element-wise tolerance of {"absoluteThreshold":4.1724e-7,"relativeThreshold":0}. | PASS |
| new AudioBuffer({numberOfChannels: 1, length: 2, sampleRate: 8192}) did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 4 out of 6 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [1-channel input] All assertions passed. (total 2 assertions) | PASS |
| < [2-channel input] 2 out of 2 assertions were failed. | FAIL |
| < [3-channel input] 2 out of 2 assertions were failed. | FAIL |
| < [4-channel input] 2 out of 2 assertions were failed. | FAIL |
| < [5.1-channel input] 2 out of 2 assertions were failed. | FAIL |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| > [1-channel input] produces 1-channel output | PASS |
| > [2-channel input] produces 2-channel output | PASS |
| > [3-channel input] 3->2 downmix producing 2-channel output | PASS |
| > [4-channel input] 4->2 downmix producing 2-channel output | PASS |
| > [5.1-channel input] 5.1->2 downmix producing 2-channel output | PASS |
| > [initialize] Convolver response with one channel | PASS |
| X 2: Channel 0 expected to be equal to the array [0,0,0.9458408951759338,0.8448333740234375,0.8210252523422241,0.8620985746383667,0.8430315852165222,0.855602502822876,0.7933436632156372,0.9865825176239014,0.3972480297088623,-0.7786127924919128,-0.9223549962043762,-0.7896472215652466,-0.8727429509162903,-0.8325281143188477...] but differs in 966 places: Index Actual Expected [0] 2.9802322387695313e-8 0.0000000000000000e+0 [1] -7.4505805969238281e-8 0.0000000000000000e+0 [2] 9.4584077596664429e-1 9.4584089517593384e-1 [3] 8.4483331441879272e-1 8.4483337402343750e-1 ...and 962 more errors. | FAIL |
| X 2: Channel 1 expected to be equal to the array [0,0,0.9918842315673828,0.7683960199356079,0.9083511829376221,0.7684863805770874,0.9814503192901611,0.3193226158618927,-0.9322392344474792,-0.8032255172729492,-0.8812425136566162,-0.7985008358955383,-0.9260328412055969,-0.600982666015625,0.7887306809425354,0.8655399680137634...] but differs in 1034 places: Index Actual Expected [0] -5.9604644775390625e-8 0.0000000000000000e+0 [1] 4.4703483581542969e-8 0.0000000000000000e+0 [3] 7.6839596033096313e-1 7.6839601993560791e-1 [4] 9.0835124254226685e-1 9.0835118293762207e-1 ...and 1030 more errors. | FAIL |
| X 3: Channel 0 expected to be equal to the array [0,0,0.9458408951759338,0.8448333740234375,0.8210252523422241,0.8620985746383667,0.8430315852165222,0.855602502822876,0.7933436632156372,0.9865825176239014,0.3972480297088623,-0.7786127924919128,-0.9223549962043762,-0.7896472215652466,-0.8727429509162903,-0.8325281143188477...] but differs in 966 places: Index Actual Expected [0] 2.9802322387695313e-8 0.0000000000000000e+0 [1] -7.4505805969238281e-8 0.0000000000000000e+0 [2] 9.4584077596664429e-1 9.4584089517593384e-1 [3] 8.4483331441879272e-1 8.4483337402343750e-1 ...and 962 more errors. | FAIL |
| X 3: Channel 1 expected to be equal to the array [0,0,0.9918842315673828,0.7683960199356079,0.9083511829376221,0.7684863805770874,0.9814503192901611,0.3193226158618927,-0.9322392344474792,-0.8032255172729492,-0.8812425136566162,-0.7985008358955383,-0.9260328412055969,-0.600982666015625,0.7887306809425354,0.8655399680137634...] but differs in 1034 places: Index Actual Expected [0] -5.9604644775390625e-8 0.0000000000000000e+0 [1] 4.4703483581542969e-8 0.0000000000000000e+0 [3] 7.6839596033096313e-1 7.6839601993560791e-1 [4] 9.0835124254226685e-1 9.0835118293762207e-1 ...and 1030 more errors. | FAIL |
| X 4: Channel 0 expected to be equal to the array [0,0,0.9706697463989258,0.8062858581542969,0.8572278618812561,0.8353679776191711,0.1815471351146698,-0.06941461563110352,0.0376264750957489,-0.007540702819824219,-0.01803457736968994,0.029624849557876587,-0.021628618240356445,-0.005501270294189453,0.05631396174430847,-0.4426816999912262...] but differs in 1062 places: Index Actual Expected [0] 5.9604644775390625e-8 0.0000000000000000e+0 [1] -5.2154064178466797e-8 0.0000000000000000e+0 [3] 8.0628573894500732e-1 8.0628585815429688e-1 [4] 8.5722780227661133e-1 8.5722786188125610e-1 ...and 1058 more errors. | FAIL |
| X 4: Channel 1 expected to be equal to the array [0,0,0.9692283868789673,0.8026213049888611,0.8825444579124451,0.18008126318454742,0.027644813060760498,-0.2844730615615845,-0.7766556739807129,-0.037477731704711914,-0.008235335350036621,0.07220342755317688,-0.3337171971797943,-0.7541778683662415,-0.020433425903320312,-0.0313774049282074...] but differs in 1029 places: Index Actual Expected [0] 8.9406967163085938e-8 0.0000000000000000e+0 [1] -4.4703483581542969e-8 0.0000000000000000e+0 [3] 8.0262124538421631e-1 8.0262130498886108e-1 [4] 8.8254427909851074e-1 8.8254445791244507e-1 ...and 1025 more errors. | FAIL |
| X 5.1: Channel 0 expected to be equal to the array [0,0,2.2955899238586426,2.0720272064208984,1.532062292098999,0.8335829973220825,-0.21171289682388306,-0.005277678370475769,0.8338430523872375,1.0169568061828613,0.3252672553062439,-0.6764181852340698,-1.054646611213684,-0.5476447343826294,0.25095105171203613,-0.10892623662948608...] but differs in 1004 places: Index Actual Expected [1] -2.2351741790771484e-7 0.0000000000000000e+0 [4] 1.5320621728897095e+0 1.5320622920989990e+0 [6] -2.1171277761459351e-1 -2.1171289682388306e-1 [7] -5.2777901291847229e-3 -5.2776783704757690e-3 ...and 1000 more errors. | FAIL |
| X 5.1: Channel 1 expected to be equal to the array [0,0,2.4002127647399902,1.8464014530181885,1.242234230041504,0.578858494758606,0.3615039587020874,0.16441935300827026,-0.7429117560386658,-1.5301964282989502,-1.898935079574585,-0.7277188301086426,0.01055973768234253,0.7105643153190613,1.7486152648925781,0.26711004972457886...] but differs in 1033 places: Index Actual Expected [0] 2.9802322387695313e-7 0.0000000000000000e+0 [1] -1.8626451492309570e-8 0.0000000000000000e+0 [4] 1.2422341108322144e+0 1.2422342300415039e+0 [5] 5.7885855436325073e-1 5.7885849475860596e-1 ...and 1029 more errors. | FAIL |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html (1/1, 100.00%, 0.02% of total) | TIMEOUT |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html | TIMEOUT |
| /webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext.html (39/39, 100.00%, 0.79% of total) | OK |
| c = new OfflineAudioContext{"length":1,"sampleRate":8000,"numberOfChannels":7}) did not throw an exception. | PASS |
| c = new OfflineAudioContext{"length":1,"sampleRate":8000}) did not throw an exception. | PASS |
| c.destination.channelCount is equal to 1. | PASS |
| c.destination.channelCount is equal to 7. | PASS |
| c.destination.channelCountMode is equal to explicit. | PASS |
| c.destination.channelCountMode is equal to speakers. | PASS |
| c.length is equal to 1. | PASS |
| c.sampleRate is equal to 8000. | PASS |
| c2 = new OfflineAudioContext({"length":42,"sampleRate":12345}) did not throw an exception. | PASS |
| c2.destination.channelCount is equal to 1. | PASS |
| c2.destination.channelCountMode is equal to explicit. | PASS |
| c2.destination.channelInterpretation is equal to speakers. | PASS |
| c2.length is equal to 42. | PASS |
| c2.sampleRate is equal to 12345. | PASS |
| context = new OfflineAudioContext(3, 42, 12345) did not throw an exception. | PASS |
| context.destination.channelCount is equal to 3. | PASS |
| context.destination.channelCountMode is equal to explicit. | PASS |
| context.destination.channelInterpretation is equal to speakers. | PASS |
| context.length is equal to 42. | PASS |
| context.sampleRate is equal to 12345. | PASS |
| new OfflineAudioContext() threw TypeError: "Not enough arguments to OfflineAudioContext.". | PASS |
| new OfflineAudioContext(3) threw TypeError: "Argument 1 of OfflineAudioContext.constructor can't be converted to a dictionary.". | PASS |
| new OfflineAudioContext(3, 42) threw TypeError: "Not enough arguments to OfflineAudioContext.". | PASS |
| new OfflineAudioContext({"length":0,"sampleRate":8000}) threw NotSupportedError: "Operation is not supported". | PASS |
| new OfflineAudioContext({"length":1,"sampleRate":1}) threw NotSupportedError: "Operation is not supported". | PASS |
| new OfflineAudioContext({"length":42,"sampleRate":8000,"numberOfChannels":33}) threw NotSupportedError: "Operation is not supported". | PASS |
| new OfflineAudioContext({"length":42}) threw TypeError: "Missing required 'sampleRate' member of OfflineAudioContextOptions.". | PASS |
| new OfflineAudioContext({"sampleRate":12345}) threw TypeError: "Missing required 'length' member of OfflineAudioContextOptions.". | PASS |
| new OfflineAudioContext({}) threw TypeError: "Missing required 'length' member of OfflineAudioContextOptions.". | PASS |
| # AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [basic] All assertions passed. (total 8 assertions) | PASS |
| < [options-1] All assertions passed. (total 10 assertions) | PASS |
| < [options-2] All assertions passed. (total 3 assertions) | PASS |
| < [options-3] All assertions passed. (total 8 assertions) | PASS |
| > [basic] Old-style constructor | PASS |
| > [options-1] Required options | PASS |
| > [options-2] Invalid options | PASS |
| > [options-3] Valid options | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html (1/1, 100.00%, 0.02% of total) | TIMEOUT |
| /webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html | TIMEOUT |
| /webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size.html (1/1, 100.00%, 0.02% of total) | OK |
| Test currentTime at completion of OfflineAudioContext rendering | PASS |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-grain.html (5/5, 100.00%, 0.10% of total) | OK |
| Buffer was played is true. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Test setting the source buffer after starting the grain] All assertions passed. (total 1 assertions) | PASS |
| > [Test setting the source buffer after starting the grain] | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet.https.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [Create Test Worklet] | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/audioparam-summingjunction.html (6/6, 100.00%, 0.12% of total) | OK |
| Rendered signal length is equal to 44100. | PASS |
| Rendered signal matches sum of two audio-rate gain changing signals plus baseline gain is true. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 2 assertions) | PASS |
| > [test] | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block.html (1/1, 100.00%, 0.02% of total) | OK |
| Test setTargetAtTime after an event in the same processing block | PASS |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html (1/1, 100.00%, 0.02% of total) | OK |
| Test passing SharedArrayBuffer to an AudioWorklet | FAIL |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop.html (5/5, 100.00%, 0.10% of total) | OK |
| Rendered data contains only the constant 1. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [one-sample-loop] All assertions passed. (total 1 assertions) | PASS |
| > [one-sample-loop] | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html (6/6, 100.00%, 0.12% of total) | OK |
| Rendered signal exactly matches the audio-rate gain changing signal is true. | PASS |
| Rendered signal length is equal to 44100. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 2 assertions) | PASS |
| > [test] | PASS |
| /webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html (1/1, 100.00%, 0.02% of total) | OK |
| AnalyserNode output | PASS |
| /webaudio/the-audio-api/the-waveshapernode-interface/silent-inputs.html (11/11, 100.00%, 0.22% of total) | OK |
| # AUDIT TASK RUNNER FINISHED: 3 out of 3 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test-0] 1 out of 1 assertions were failed. | FAIL |
| < [test-1] 1 out of 1 assertions were failed. | FAIL |
| < [test-2] 1 out of 1 assertions were failed. | FAIL |
| > [test-0] curve output is non-zero for silent inputs | PASS |
| > [test-1] 2x curve output is non-zero for silent inputs | PASS |
| > [test-2] curve output is non-zero for no inputs | PASS |
| X WaveShaper with 2x oversample, silent inputs, and curve {"0":0.5,"1":0.5,"2":0.5}: Expected 0.5 for all values but found 16000 unexpected values: Index Actual [0] 0 [1] 0 [2] 0 [3] 0 ...and 15996 more errors. | FAIL |
| X WaveShaper with no inputs and curve {"0":0.5,"1":0.5,"2":0.5}: Expected 0.5 for all values but found 16000 unexpected values: Index Actual [0] 0 [1] 0 [2] 0 [3] 0 ...and 15996 more errors. | FAIL |
| X WaveShaper with silent inputs and curve {"0":0.5,"1":0.5,"2":0.5}: Expected 0.5 for all values but found 16000 unexpected values: Index Actual [0] 0 [1] 0 [2] 0 [3] 0 ...and 15996 more errors. | FAIL |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highshelf.html (7/7, 100.00%, 0.14% of total) | OK |
| Max error in Highshelf filter response is less than or equal to 6.2577e-8. | PASS |
| Number of filters tested is equal to 3. | PASS |
| Number of non-finite values in the rendered output is equal to 0. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 3 assertions) | PASS |
| > [test] Biquad highshelf filter | PASS |
| /webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation.html (1/1, 100.00%, 0.02% of total) | OK |
| PannerNode AudioParam automation works properly | PASS |
| /webaudio/the-audio-api/the-oscillatornode-interface/ctor-oscillator.html (55/55, 100.00%, 1.11% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new OscillatorNode() threw TypeError: "Not enough arguments to OscillatorNode.". | PASS |
| new OscillatorNode(1) threw TypeError: "Argument 1 of OscillatorNode.constructor is not an object.". | PASS |
| new OscillatorNode(c, {"type":"custom"}) threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| new OscillatorNode(c, {"type":"sine","periodicWave":{}}) did not throw an exception. | PASS |
| new OscillatorNode(c, {channelCount: 0}) threw NotSupportedError: "Operation is not supported". | PASS |
| new OscillatorNode(c, {channelCount: 17}} did not throw an exception. | PASS |
| new OscillatorNode(c, {channelCount: 99}) threw NotSupportedError: "Operation is not supported". | PASS |
| new OscillatorNode(c, {channelCountMode: "clamped-max"}) did not throw an exception. | PASS |
| new OscillatorNode(c, {channelCountMode: "explicit"}) did not throw an exception. | PASS |
| new OscillatorNode(c, {channelCountMode: "foobar"} threw TypeError: "'channelCountMode' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelCountMode.". | PASS |
| new OscillatorNode(c, {channelCountMode: "max"} did not throw an exception. | PASS |
| new OscillatorNode(c, {channelCountMode: "max"}) did not throw an exception. | PASS |
| new OscillatorNode(c, {channelInterpretation: "discrete"}) did not throw an exception. | PASS |
| new OscillatorNode(c, {channelInterpretation: "foobar"}) threw TypeError: "'channelInterpretation' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelInterpretation.". | PASS |
| new OscillatorNode(c, {channelInterpretation: "speakers"}) did not throw an exception. | PASS |
| new OscillatorNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node.channelCount is equal to 17. | PASS |
| node.channelCountMode after invalid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to clamped-max. | PASS |
| node.channelCountMode after valid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to max. | PASS |
| node.channelCountMode is equal to max. | PASS |
| node.channelInterpretation after invalid setter is equal to discrete. | PASS |
| node.channelInterpretation is equal to discrete. | PASS |
| node.channelInterpretation is equal to speakers. | PASS |
| node0 = new OscillatorNode(context) did not throw an exception. | PASS |
| node0 instanceof OscillatorNode is equal to true. | PASS |
| node0.channelCount is equal to 2. | PASS |
| node0.channelCountMode is equal to max. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.frequency.value is equal to 440. | PASS |
| node0.numberOfInputs is equal to 0. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node0.type is equal to sine. | PASS |
| node1 = new OscillatorNode(c, {"type":"sawtooth","detune":7,"frequency":918}) did not throw an exception. | PASS |
| node1.channelCount is equal to 2. | PASS |
| node1.channelCountMode is equal to max. | PASS |
| node1.channelInterpretation is equal to speakers. | PASS |
| node1.detune.value is equal to 7. | PASS |
| node1.frequency.value is equal to 918. | PASS |
| node1.type is equal to sawtooth. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 5 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [constructor options] 1 out of 10 assertions were failed. | FAIL |
| < [default constructor] All assertions passed. (total 9 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [test AudioNodeOptions] All assertions passed. (total 20 assertions) | PASS |
| > [constructor options] | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [test AudioNodeOptions] | PASS |
| X new OscillatorNode(, {"type":"custom","periodicWave":{}}) incorrectly threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | FAIL |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-disconnected-input.https.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [test] Input array length should be zero for disconnected input | PASS |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-size.https.html (1/1, 100.00%, 0.02% of total) | TIMEOUT |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-size.https.html | TIMEOUT |
| /webaudio/the-audio-api/the-pannernode-interface/ctor-panner.html (31/31, 100.00%, 0.62% of total) | ERROR |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new PannerNode() threw TypeError: "Not enough arguments to PannerNode.". | PASS |
| new PannerNode(1) threw TypeError: "Argument 1 of PannerNode.constructor is not an object.". | PASS |
| new PannerNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node0 = new PannerNode(context) did not throw an exception. | PASS |
| node0 instanceof PannerNode is equal to true. | PASS |
| node0.channelCount is equal to 2. | PASS |
| node0.channelCountMode is equal to clamped-max. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.coneInnerAngle is equal to 360. | PASS |
| node0.coneOuterAngle is equal to 360. | PASS |
| node0.coneOuterGain is equal to 0. | PASS |
| node0.distanceModel is equal to inverse. | PASS |
| node0.maxDistance is equal to 10000. | PASS |
| node0.numberOfInputs is equal to 1. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node0.orientationX.value is equal to 1. | PASS |
| node0.orientationY.value is equal to 0. | PASS |
| node0.orientationZ.value is equal to 0. | PASS |
| node0.panningModel is equal to equalpower. | PASS |
| node0.positionX.value is equal to 0. | PASS |
| node0.positionY.value is equal to 0. | PASS |
| node0.positionZ.value is equal to 0. | PASS |
| node0.refDistance is equal to 1. | PASS |
| node0.rolloffFactor is equal to 1. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/audioparam-setTargetAtTime.html (106/106, 100.00%, 2.14% of total) | OK |
| Max error for test 0 at offset 58 is less than or equal to 0.00065683. | PASS |
| Max error for test 1 at offset 1749 is less than or equal to 0.00065683. | PASS |
| Max error for test 10 at offset 13288 is less than or equal to 0.00065683. | PASS |
| Max error for test 11 at offset 14979 is less than or equal to 0.00065683. | PASS |
| Max error for test 12 at offset 15934 is less than or equal to 0.00065683. | PASS |
| Max error for test 13 at offset 17625 is less than or equal to 0.00065683. | PASS |
| Max error for test 14 at offset 18580 is less than or equal to 0.00065683. | PASS |
| Max error for test 15 at offset 20271 is less than or equal to 0.00065683. | PASS |
| Max error for test 16 at offset 21226 is less than or equal to 0.00065683. | PASS |
| Max error for test 17 at offset 22917 is less than or equal to 0.00065683. | PASS |
| Max error for test 18 at offset 23872 is less than or equal to 0.00065683. | PASS |
| Max error for test 19 at offset 25563 is less than or equal to 0.00065683. | PASS |
| Max error for test 2 at offset 2704 is less than or equal to 0.00065683. | PASS |
| Max error for test 20 at offset 26518 is less than or equal to 0.00065683. | PASS |
| Max error for test 21 at offset 28209 is less than or equal to 0.00065683. | PASS |
| Max error for test 22 at offset 29164 is less than or equal to 0.00065683. | PASS |
| Max error for test 23 at offset 30855 is less than or equal to 0.00065683. | PASS |
| Max error for test 24 at offset 31810 is less than or equal to 0.00065683. | PASS |
| Max error for test 25 at offset 33501 is less than or equal to 0.00065683. | PASS |
| Max error for test 26 at offset 34456 is less than or equal to 0.00065683. | PASS |
| Max error for test 27 at offset 36147 is less than or equal to 0.00065683. | PASS |
| Max error for test 28 at offset 37102 is less than or equal to 0.00065683. | PASS |
| Max error for test 29 at offset 38793 is less than or equal to 0.00065683. | PASS |
| Max error for test 3 at offset 4395 is less than or equal to 0.00065683. | PASS |
| Max error for test 30 at offset 39748 is less than or equal to 0.00065683. | PASS |
| Max error for test 31 at offset 41439 is less than or equal to 0.00065683. | PASS |
| Max error for test 32 at offset 42394 is less than or equal to 0.00065683. | PASS |
| Max error for test 33 at offset 44085 is less than or equal to 0.00065683. | PASS |
| Max error for test 34 at offset 45040 is less than or equal to 0.00065683. | PASS |
| Max error for test 35 at offset 46731 is less than or equal to 0.00065683. | PASS |
| Max error for test 36 at offset 47686 is less than or equal to 0.00065683. | PASS |
| Max error for test 37 at offset 49823 is less than or equal to 0.00065683. | PASS |
| Max error for test 38 at offset 50514 is less than or equal to 0.00065683. | PASS |
| Max error for test 39 at offset 52469 is less than or equal to 0.00065683. | PASS |
| Max error for test 4 at offset 5350 is less than or equal to 0.00065683. | PASS |
| Max error for test 40 at offset 53160 is less than or equal to 0.00065683. | PASS |
| Max error for test 41 at offset 55115 is less than or equal to 0.00065683. | PASS |
| Max error for test 42 at offset 55806 is less than or equal to 0.00065683. | PASS |
| Max error for test 43 at offset 57761 is less than or equal to 0.00065683. | PASS |
| Max error for test 44 at offset 58452 is less than or equal to 0.00065683. | PASS |
| Max error for test 45 at offset 60407 is less than or equal to 0.00065683. | PASS |
| Max error for test 46 at offset 61098 is less than or equal to 0.00065683. | PASS |
| Max error for test 47 at offset 63053 is less than or equal to 0.00065683. | PASS |
| Max error for test 48 at offset 63744 is less than or equal to 0.00065683. | PASS |
| Max error for test 49 at offset 65699 is less than or equal to 0.00065683. | PASS |
| Max error for test 5 at offset 7041 is less than or equal to 0.00065683. | PASS |
| Max error for test 50 at offset 66390 is less than or equal to 0.00065683. | PASS |
| Max error for test 51 at offset 68345 is less than or equal to 0.00065683. | PASS |
| Max error for test 52 at offset 69036 is less than or equal to 0.00065683. | PASS |
| Max error for test 53 at offset 70991 is less than or equal to 0.00065683. | PASS |
| Max error for test 54 at offset 71682 is less than or equal to 0.00065683. | PASS |
| Max error for test 55 at offset 73637 is less than or equal to 0.00065683. | PASS |
| Max error for test 56 at offset 74328 is less than or equal to 0.00065683. | PASS |
| Max error for test 57 at offset 76283 is less than or equal to 0.00065683. | PASS |
| Max error for test 58 at offset 76974 is less than or equal to 0.00065683. | PASS |
| Max error for test 59 at offset 78929 is less than or equal to 0.00065683. | PASS |
| Max error for test 6 at offset 7996 is less than or equal to 0.00065683. | PASS |
| Max error for test 60 at offset 79620 is less than or equal to 0.00065683. | PASS |
| Max error for test 61 at offset 81575 is less than or equal to 0.00065683. | PASS |
| Max error for test 62 at offset 82266 is less than or equal to 0.00065683. | PASS |
| Max error for test 63 at offset 84221 is less than or equal to 0.00065683. | PASS |
| Max error for test 64 at offset 84912 is less than or equal to 0.00065683. | PASS |
| Max error for test 65 at offset 86867 is less than or equal to 0.00065683. | PASS |
| Max error for test 66 at offset 87558 is less than or equal to 0.00065683. | PASS |
| Max error for test 67 at offset 89513 is less than or equal to 0.00065683. | PASS |
| Max error for test 68 at offset 90204 is less than or equal to 0.00065683. | PASS |
| Max error for test 69 at offset 91829 is less than or equal to 0.00065683. | PASS |
| Max error for test 7 at offset 9687 is less than or equal to 0.00065683. | PASS |
| Max error for test 70 at offset 92654 is less than or equal to 0.00065683. | PASS |
| Max error for test 71 at offset 94475 is less than or equal to 0.00065683. | PASS |
| Max error for test 72 at offset 95300 is less than or equal to 0.00065683. | PASS |
| Max error for test 73 at offset 97121 is less than or equal to 0.00065683. | PASS |
| Max error for test 74 at offset 97946 is less than or equal to 0.00065683. | PASS |
| Max error for test 75 at offset 99767 is less than or equal to 0.00065683. | PASS |
| Max error for test 76 at offset 100592 is less than or equal to 0.00065683. | PASS |
| Max error for test 77 at offset 102413 is less than or equal to 0.00065683. | PASS |
| Max error for test 78 at offset 103238 is less than or equal to 0.00065683. | PASS |
| Max error for test 79 at offset 105059 is less than or equal to 0.00065683. | PASS |
| Max error for test 8 at offset 10642 is less than or equal to 0.00065683. | PASS |
| Max error for test 80 at offset 105884 is less than or equal to 0.00065683. | PASS |
| Max error for test 81 at offset 107705 is less than or equal to 0.00065683. | PASS |
| Max error for test 82 at offset 108530 is less than or equal to 0.00065683. | PASS |
| Max error for test 83 at offset 110351 is less than or equal to 0.00065683. | PASS |
| Max error for test 84 at offset 111176 is less than or equal to 0.00065683. | PASS |
| Max error for test 85 at offset 113236 is less than or equal to 0.00065683. | PASS |
| Max error for test 86 at offset 113998 is less than or equal to 0.00065683. | PASS |
| Max error for test 87 at offset 115882 is less than or equal to 0.00065683. | PASS |
| Max error for test 88 at offset 116644 is less than or equal to 0.00065683. | PASS |
| Max error for test 89 at offset 118528 is less than or equal to 0.00065683. | PASS |
| Max error for test 9 at offset 12333 is less than or equal to 0.00065683. | PASS |
| Max error for test 90 at offset 119290 is less than or equal to 0.00065683. | PASS |
| Max error for test 91 at offset 121174 is less than or equal to 0.00065683. | PASS |
| Max error for test 92 at offset 121936 is less than or equal to 0.00065683. | PASS |
| Max error for test 93 at offset 123289 is less than or equal to 0.00065683. | PASS |
| Max error for test 94 at offset 124612 is less than or equal to 0.00065683. | PASS |
| Max error for test 95 at offset 125935 is less than or equal to 0.00065683. | PASS |
| Max error for test 96 at offset 127013 is less than or equal to 0.00065683. | PASS |
| Max error for test 97 at offset 128886 is less than or equal to 0.00065683. | PASS |
| Max error for test 98 at offset 129680 is less than or equal to 0.00065683. | PASS |
| Max error for test 99 at offset 131753 is less than or equal to 0.00065683. | PASS |
| Number of failed tests with an acceptable relative tolerance of 0.00065683 is equal to 0. | PASS |
| Number of tests started and ended at the correct time is equal to 100. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 102 assertions) | PASS |
| > [test] AudioParam setTargetAtTime() functionality. | PASS |
| /webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1.html (1/1, 100.00%, 0.02% of total) | OK |
| Test that DelayNode output channelCount matches that of the delayed input | PASS |
| /webaudio/the-audio-api/the-delaynode-interface/no-dezippering.html (1/1, 100.00%, 0.02% of total) | TIMEOUT |
| /webaudio/the-audio-api/the-delaynode-interface/no-dezippering.html | TIMEOUT |
| /webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [test mono input] Test StereoPanner with mono input has no dezippering | PASS |
| /webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [disconnect(AudioParam)] | PASS |
| /webaudio/the-audio-api/the-convolvernode-interface/ctor-convolver.html (52/52, 100.00%, 1.05% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new ConvolverNode() threw TypeError: "Not enough arguments to ConvolverNode.". | PASS |
| new ConvolverNode(1) threw TypeError: "Argument 1 of ConvolverNode.constructor is not an object.". | PASS |
| new ConvolverNode(c, {channelCount: 2}} did not throw an exception. | PASS |
| new ConvolverNode(c, {channelCount: 3}} threw NotSupportedError: "Operation is not supported". | PASS |
| new ConvolverNode(c, {channelCountMode: "clamped-max"} did not throw an exception. | PASS |
| new ConvolverNode(c, {channelCountMode: "max"}) threw NotSupportedError: "Operation is not supported". | PASS |
| new ConvolverNode(c, {channelInterpretation: "discrete"}) did not throw an exception. | PASS |
| new ConvolverNode(c, {channelInterpretation: "foobar"}) threw TypeError: "'channelInterpretation' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelInterpretation.". | PASS |
| new ConvolverNode(c, {channelInterpretation: "speakers"}) did not throw an exception. | PASS |
| new ConvolverNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node = new ConvolverNode(c, {"buffer":{},"disableNormalization":false}) did not throw an exception. | PASS |
| node.channelCount is equal to 2. | PASS |
| node.channelCountMode is equal to clamped-max. | PASS |
| node.channelInterpretation after invalid setter is equal to discrete. | PASS |
| node.channelInterpretation is equal to discrete. | PASS |
| node.channelInterpretation is equal to speakers. | PASS |
| node0 = new ConvolverNode(context) did not throw an exception. | PASS |
| node0 instanceof ConvolverNode is equal to true. | PASS |
| node0.buffer is equal to null. | PASS |
| node0.channelCount is equal to 2. | PASS |
| node0.channelCountMode is equal to clamped-max. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.normalize is equal to true. | PASS |
| node0.numberOfInputs is equal to 1. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node1 = new ConvolverNode(c, {"buffer":null} did not throw an exception. | PASS |
| node1 instanceOf ConvolverNode is equal to true. | PASS |
| node1.buffer === <buf> is equal to true. | PASS |
| node1.buffer is equal to null. | PASS |
| node1.normalize is equal to true. | PASS |
| node2 = new ConvolverNode(, {"buffer":null,"disableNormalization":true}) did not throw an exception. | PASS |
| node2.buffer is equal to null. | PASS |
| node2.normalize is equal to false. | PASS |
| node3 = new ConvolverNode(context, {"buffer":null,"disableNormalization":false}) did not throw an exception. | PASS |
| node3.buffer is equal to null. | PASS |
| node3.normalize is equal to true. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 6 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [construct with options] All assertions passed. (total 10 assertions) | PASS |
| < [default constructor] All assertions passed. (total 9 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [nullable buffer] All assertions passed. (total 2 assertions) | PASS |
| < [test AudioNodeOptions] 1 out of 13 assertions were failed. | FAIL |
| > [construct with options] | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [nullable buffer] | PASS |
| > [test AudioNodeOptions] | PASS |
| X new ConvolverNode(c, {channelCountMode: "explicit"}) did not throw an exception. | FAIL |
| /webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-output.html (24/24, 100.00%, 0.48% of total) | OK |
| Automation: ConstantSourceNode after ramp contains only the constant 1. | PASS |
| Automation: ConstantSourceNode.linearRamp(1, 0.5) equals [0.5,0.5001666666666666,0.5003333333333333,0.5005,0.5006666666666667,0.5008333333333334,0.501,0.5011666666666666,0.5013333333333333,0.5015,0.5016666666666667,0.5018333333333334,0.502,0.5021666666666667,0.5023333333333333,0.5025...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":7.161e-7}. | PASS |
| Basic: ConstantSourceNode({offset: 0.5}) is identical to the array [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5...]. | PASS |
| Connected param: ConstantSourceNode frames [0, 10) contains only the constant 0. | PASS |
| Connected param: ConstantSourceNode frames [10, 6000) equals [1.5446388721466064,1.5920131206512451,1.6374238729476929,1.6807208061218262,1.7217600345611572,1.7604057788848877,1.796529769897461,1.8300120830535889,1.8607418537139893,1.8886171579360962,1.9135453701019287,1.9354438781738281,1.954240322113037,1.969871997833252,1.9822871685028076,1.9914448261260986...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}. | PASS |
| ConstantSourceNode with stop before start must output silence contains only the constant 0. | PASS |
| ConstantSourceNode with stop equal to start must output silence contains only the constant 0. | PASS |
| start/stop: ConstantSourceNode frames [0, 10) contains only the constant 0. | PASS |
| start/stop: ConstantSourceNode frames [10, 300) contains only the constant 1. | PASS |
| start/stop: ConstantSourceNode frames [300, 6000) contains only the constant 0. | PASS |
| # AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [basic automation] All assertions passed. (total 2 assertions) | PASS |
| < [connected audioparam] All assertions passed. (total 2 assertions) | PASS |
| < [constant source] All assertions passed. (total 1 assertions) | PASS |
| < [start/stop] All assertions passed. (total 3 assertions) | PASS |
| < [stop before start] All assertions passed. (total 1 assertions) | PASS |
| < [stop equal to start] All assertions passed. (total 1 assertions) | PASS |
| > [basic automation] | PASS |
| > [connected audioparam] | PASS |
| > [constant source] | PASS |
| > [start/stop] | PASS |
| > [stop before start] | PASS |
| > [stop equal to start] | PASS |
| /webaudio/the-audio-api/the-convolvernode-interface/convolution-mono-mono.html (8/8, 100.00%, 0.16% of total) | OK |
| Deviation (in dB) of triangular portion of convolution is less than or equal to -124.41. | PASS |
| Deviation in first part of tail of convolutions is less than or equal to -129.7. | PASS |
| Rendered signal after tail of convolution is silent is true. | PASS |
| Test signal convolved correctly | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 4 assertions) | PASS |
| > [test] | PASS |
| /webaudio/the-audio-api/the-channelsplitternode-interface/ctor-channelsplitter.html (38/38, 100.00%, 0.77% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new ChannelSplitterNode() threw TypeError: "Not enough arguments to ChannelSplitterNode.". | PASS |
| new ChannelSplitterNode(1) threw TypeError: "Argument 1 of ChannelSplitterNode.constructor is not an object.". | PASS |
| new ChannelSplitterNode(c, {"channelCount":3}) threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| new ChannelSplitterNode(c, {"channelCountMode":"max"}) threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| new ChannelSplitterNode(c, {"numberOfOutputs":99}) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| new ChannelSplitterNode(c, {channelCount: 6}} did not throw an exception. | PASS |
| new ChannelSplitterNode(c, {channelCount: 7}} threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| new ChannelSplitterNode(c, {channelCountMode: "clamped-max"}) threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| new ChannelSplitterNode(c, {channelCountMode: "explicit"} did not throw an exception. | PASS |
| new ChannelSplitterNode(c, {channelCountMode: "max"}) threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| new ChannelSplitterNode(c, {channelInterpretation: "speakers"}) threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| new ChannelSplitterNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node.channelCount is equal to 6. | PASS |
| node.channelCountMode is equal to explicit. | PASS |
| node0 = new ChannelSplitterNode(context) did not throw an exception. | PASS |
| node0 instanceof ChannelSplitterNode is equal to true. | PASS |
| node0.channelCount is equal to 6. | PASS |
| node0.channelCountMode is equal to explicit. | PASS |
| node0.channelInterpretation is equal to discrete. | PASS |
| node0.numberOfInputs is equal to 1. | PASS |
| node0.numberOfOutputs is equal to 6. | PASS |
| node1 = new ChannelSplitterNode(context, {"numberOfInputs":3,"numberOfOutputs":9,"channelInterpretation":"discrete"}) did not throw an exception. | PASS |
| node1.channelInterpretation is equal to discrete. | PASS |
| node1.numberOfInputs is equal to 1. | PASS |
| node1.numberOfOutputs is equal to 9. | PASS |
| # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [constructor options] All assertions passed. (total 7 assertions) | PASS |
| < [default constructor] All assertions passed. (total 7 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [test AudioNodeOptions] All assertions passed. (total 8 assertions) | PASS |
| > [constructor options] | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [test AudioNodeOptions] | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/retrospective-setTargetAtTime.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [test] Test setTargetAtTime with start time in the past | PASS |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-onended.html (14/14, 100.00%, 0.28% of total) | OK |
| AudioBufferSource.onended called when ended set directly is equal to true. | PASS |
| AudioBufferSource.onended called when using addEventListener is equal to true. | PASS |
| Oscillator.onended called when ended set directly is equal to true. | PASS |
| Oscillator.onended called when using addEventListener is equal to true. | PASS |
| # AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [absn-add-listener] All assertions passed. (total 1 assertions) | PASS |
| < [absn-set-onended] All assertions passed. (total 1 assertions) | PASS |
| < [osc-add-listener] All assertions passed. (total 1 assertions) | PASS |
| < [osc-set-onended] All assertions passed. (total 1 assertions) | PASS |
| > [absn-add-listener] | PASS |
| > [absn-set-onended] | PASS |
| > [osc-add-listener] | PASS |
| > [osc-set-onended] | PASS |
| /webaudio/the-audio-api/the-delaynode-interface/delaynode-max-nondefault-delay.html (5/5, 100.00%, 0.10% of total) | OK |
| Delaying test signal by 1.5 sec was done correctly | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 1 assertions) | PASS |
| > [test] DelayNode with delay set to non-default maximum delay | PASS |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [valid-processor-data] | PASS |
| /webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [test copying] Modifying curve should not modify WaveShaper | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source.html (16/16, 100.00%, 0.32% of total) | OK |
| k-rate offset: Output of a-rate ConstantSourceNode is identical to the array [0,0.01953125,0.0390625,0.05859375,0.078125,0.09765625,0.1171875,0.13671875,0.15625,0.17578125,0.1953125,0.21484375,0.234375,0.25390625,0.2734375,0.29296875...]. | PASS |
| k-rate offset: Output of k-rate ConstantSourceNode is identical to the array [0,0.01953125,0.0390625,0.05859375,0.078125,0.09765625,0.1171875,0.13671875,0.15625,0.17578125,0.1953125,0.21484375,0.234375,0.25390625,0.2734375,0.29296875...]. | PASS |
| k-rate offset: Setting offset.automationRate to "k-rate" is equal to k-rate. | PASS |
| k-rate offset: a-rate node:offset.linearRampToValueAtTime(10,0.064) did not throw an exception. | PASS |
| k-rate offset: a-rate node:offset.setValueAtTime(0,0) did not throw an exception. | PASS |
| k-rate offset: k-rate node: offset.linearRampToValueAtTime(10,0.064) did not throw an exception. | PASS |
| k-rate offset: k-rate node: offset.setValueAtTime(0,0) did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [ConstantSource k-rate offset] 5 out of 12 assertions were failed. | FAIL |
| > [ConstantSource k-rate offset] | PASS |
| X k-rate offset k-rate output [0: 127]: Expected 0 for all values but found 127 unexpected values: Index Actual [1] 0.01953125 [2] 0.0390625 [3] 0.05859375 [4] 0.078125 ...and 123 more errors. | FAIL |
| X k-rate offset k-rate output [128: 255]: Expected 2.5 for all values but found 127 unexpected values: Index Actual [1] 2.51953125 [2] 2.5390625 [3] 2.55859375 [4] 2.578125 ...and 123 more errors. | FAIL |
| X k-rate offset k-rate output [256: 383]: Expected 5 for all values but found 127 unexpected values: Index Actual [1] 5.01953125 [2] 5.0390625 [3] 5.05859375 [4] 5.078125 ...and 123 more errors. | FAIL |
| X k-rate offset k-rate output [384: 511]: Expected 7.5 for all values but found 127 unexpected values: Index Actual [1] 7.51953125 [2] 7.5390625 [3] 7.55859375 [4] 7.578125 ...and 123 more errors. | FAIL |
| X k-rate offset: Difference between a-rate and k-rate ConstantSourceNode should have contain at least one value different from 0. | FAIL |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-bandpass.html (7/7, 100.00%, 0.14% of total) | OK |
| Max error in Bandpass filter response is less than or equal to 2.2501e-8. | PASS |
| Number of filters tested is equal to 4. | PASS |
| Number of non-finite values in the rendered output is equal to 0. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 3 assertions) | PASS |
| > [test] Biquad bandpass filter. | PASS |
| /webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html (26/26, 100.00%, 0.52% of total) | OK |
| 1024-point FFT peak position is equal to 32. | PASS |
| 1024-point FFT peak value in dBFS is greater than or equal to -13.56. | PASS |
| 128-point FFT peak position is equal to 4. | PASS |
| 128-point FFT peak value in dBFS is greater than or equal to -13.56. | PASS |
| 16384-point FFT peak position is equal to 512. | PASS |
| 16384-point FFT peak value in dBFS is greater than or equal to -13.56. | PASS |
| 2048-point FFT peak position is equal to 64. | PASS |
| 2048-point FFT peak value in dBFS is greater than or equal to -13.56. | PASS |
| 256-point FFT peak position is equal to 8. | PASS |
| 256-point FFT peak value in dBFS is greater than or equal to -13.56. | PASS |
| 32-point FFT peak position is equal to 1. | PASS |
| 32-point FFT peak value in dBFS is greater than or equal to -14.43. | PASS |
| 32768-point FFT peak position is equal to 1024. | PASS |
| 32768-point FFT peak value in dBFS is greater than or equal to -13.56. | PASS |
| 4096-point FFT peak position is equal to 128. | PASS |
| 4096-point FFT peak value in dBFS is greater than or equal to -13.56. | PASS |
| 512-point FFT peak position is equal to 16. | PASS |
| 512-point FFT peak value in dBFS is greater than or equal to -13.56. | PASS |
| 64-point FFT peak position is equal to 2. | PASS |
| 64-point FFT peak value in dBFS is greater than or equal to -13.56. | PASS |
| 8192-point FFT peak position is equal to 256. | PASS |
| 8192-point FFT peak value in dBFS is greater than or equal to -13.56. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [FFT scaling tests] All assertions passed. (total 22 assertions) | PASS |
| > [FFT scaling tests] Test Scaling of FFT in AnalyserNode | PASS |
| /webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits.html (27/27, 100.00%, 0.54% of total) | OK |
| Max error mapping -0.100000 to 0.900000 is less than or equal to 0.000001. | PASS |
| Max error mapping -0.200000 to 0.800000 is less than or equal to 0.000001. | PASS |
| Max error mapping -0.300000 to 0.700000 is less than or equal to 0.000001. | PASS |
| Max error mapping -0.400000 to 0.600000 is less than or equal to 0.000001. | PASS |
| Max error mapping -0.500000 to 0.500000 is less than or equal to 0.000001. | PASS |
| Max error mapping -0.600000 to 0.400000 is less than or equal to 0.000001. | PASS |
| Max error mapping -0.700000 to 0.300000 is less than or equal to 0.000001. | PASS |
| Max error mapping -0.800000 to 0.200000 is less than or equal to 0.000001. | PASS |
| Max error mapping -0.900000 to 0.100000 is less than or equal to 0.000001. | PASS |
| Max error mapping -1.000000 to 0.000000 is less than or equal to 0.000001. | PASS |
| Max error mapping -1.100000 to 0.000000 is less than or equal to 0.000001. | PASS |
| Max error mapping 0.000000 to 1.000000 is less than or equal to 0.000001. | PASS |
| Max error mapping 0.100000 to 0.900000 is less than or equal to 0.000001. | PASS |
| Max error mapping 0.200000 to 0.800000 is less than or equal to 0.000001. | PASS |
| Max error mapping 0.300000 to 0.700000 is less than or equal to 0.000001. | PASS |
| Max error mapping 0.400000 to 0.600000 is less than or equal to 0.000001. | PASS |
| Max error mapping 0.500000 to 0.500000 is less than or equal to 0.000001. | PASS |
| Max error mapping 0.600000 to 0.400000 is less than or equal to 0.000001. | PASS |
| Max error mapping 0.700000 to 0.300000 is less than or equal to 0.000001. | PASS |
| Max error mapping 0.800000 to 0.200000 is less than or equal to 0.000001. | PASS |
| Max error mapping 0.900000 to 0.100000 is less than or equal to 0.000001. | PASS |
| Max error mapping 1.000000 to 0.000000 is less than or equal to 0.000001. | PASS |
| Max error mapping 1.100000 to 0.000000 is less than or equal to 0.000001. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 23 assertions) | PASS |
| > [test] WaveShaperNode including values outside the range of [-1,1] | PASS |
| /webaudio/the-audio-api/the-gainnode-interface/no-dezippering.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [test0] Dezippering of GainNode removed | PASS |
| /webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering.html (4/4, 100.00%, 0.08% of total) | ERROR |
| At time 0, frequency is equal to 350. | PASS |
| At time 0.015625, frequency is equal to 800. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [Test 0] No dezippering for frequency | PASS |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-automatic-pull.https.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [setup-worklet] | PASS |
| /webaudio/the-audio-api/the-audionode-interface/audionode-disconnect.html (32/32, 100.00%, 0.65% of total) | OK |
| Channel #0 contains only the constant 0. | PASS |
| Channel #0 contains only the constant 1. | PASS |
| Channel #0 contains only the constant 2. | PASS |
| Channel #0 contains only the constant 3. | PASS |
| Channel #0 contains only the constant 4. | PASS |
| Channel #1 contains only the constant 2. | PASS |
| Channel #2 contains only the constant 0. | PASS |
| Disabled outputs handled correctly | PASS |
| Disconnecting a connection twice did not throw an exception. | PASS |
| gain1.disconnect(gain2) threw InvalidAccessError: "A parameter or an operation is not supported by the underlying object". | PASS |
| gain1.disconnect(gain3) threw InvalidAccessError: "A parameter or an operation is not supported by the underlying object". | PASS |
| splitter.disconnect(2) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| splitter.disconnect(gain1, 0) threw InvalidAccessError: "A parameter or an operation is not supported by the underlying object". | PASS |
| splitter.disconnect(gain2, 2) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| splitter.disconnect(gain3, 0, 0) threw InvalidAccessError: "A parameter or an operation is not supported by the underlying object". | PASS |
| splitter.disconnect(merger, 3, 0) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| # AUDIT TASK RUNNER FINISHED: 7 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [disabled-outputs] All assertions passed. (total 1 assertions) | PASS |
| < [disconnect()] All assertions passed. (total 1 assertions) | PASS |
| < [disconnect(AudioNode)] All assertions passed. (total 1 assertions) | PASS |
| < [disconnect(AudioNode, output)] All assertions passed. (total 1 assertions) | PASS |
| < [disconnect(AudioNode, output, input)] All assertions passed. (total 3 assertions) | PASS |
| < [disconnect(output)] All assertions passed. (total 1 assertions) | PASS |
| < [exceptions] All assertions passed. (total 8 assertions) | PASS |
| > [disabled-outputs] | PASS |
| > [disconnect()] | PASS |
| > [disconnect(AudioNode)] | PASS |
| > [disconnect(AudioNode, output)] | PASS |
| > [disconnect(AudioNode, output, input)] | PASS |
| > [disconnect(output)] | PASS |
| > [exceptions] | PASS |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail.html (5/5, 100.00%, 0.10% of total) | OK |
| Biquad output has no glitch above the threshold of 0.012968. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 1 assertions) | PASS |
| > [test] Biquad Tail Output | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block.html (1/1, 100.00%, 0.02% of total) | OK |
| Test setValueAtTime with start time not on a block boundary | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/automation-rate.html (82/82, 100.00%, 1.65% of total) | ERROR |
| BiquadFilterNode.Q.automationRate is equal to k-rate. | PASS |
| BiquadFilterNode.detune.automationRate is equal to k-rate. | PASS |
| BiquadFilterNode.frequency.automationRate is equal to k-rate. | PASS |
| BiquadFilterNode.gain.automationRate is equal to k-rate. | PASS |
| ConstantSourceNode.offset.automationRate is equal to k-rate. | PASS |
| DelayNode.delayTime.automationRate is equal to k-rate. | PASS |
| GainNode.gain.automationRate is equal to k-rate. | PASS |
| OscillatorNode.detune.automationRate is equal to k-rate. | PASS |
| OscillatorNode.frequency.automationRate is equal to k-rate. | PASS |
| PannerNode.orientationX.automationRate is equal to k-rate. | PASS |
| PannerNode.orientationY.automationRate is equal to k-rate. | PASS |
| PannerNode.orientationZ.automationRate is equal to k-rate. | PASS |
| PannerNode.positionX.automationRate is equal to k-rate. | PASS |
| PannerNode.positionY.automationRate is equal to k-rate. | PASS |
| PannerNode.positionZ.automationRate is equal to k-rate. | PASS |
| Set BiquadFilterNode.Q.automationRate to "k-rate" did not throw an exception. | PASS |
| Set BiquadFilterNode.detune.automationRate to "k-rate" did not throw an exception. | PASS |
| Set BiquadFilterNode.frequency.automationRate to "k-rate" did not throw an exception. | PASS |
| Set BiquadFilterNode.gain.automationRate to "k-rate" did not throw an exception. | PASS |
| Set ConstantSourceNode.offset.automationRate to "k-rate" did not throw an exception. | PASS |
| Set DelayNode.delayTime.automationRate to "k-rate" did not throw an exception. | PASS |
| Set GainNode.gain.automationRate to "k-rate" did not throw an exception. | PASS |
| Set OscillatorNode.detune.automationRate to "k-rate" did not throw an exception. | PASS |
| Set OscillatorNode.frequency.automationRate to "k-rate" did not throw an exception. | PASS |
| Set PannerNode.orientationX.automationRate to "k-rate" did not throw an exception. | PASS |
| Set PannerNode.orientationY.automationRate to "k-rate" did not throw an exception. | PASS |
| Set PannerNode.orientationZ.automationRate to "k-rate" did not throw an exception. | PASS |
| Set PannerNode.positionX.automationRate to "k-rate" did not throw an exception. | PASS |
| Set PannerNode.positionY.automationRate to "k-rate" did not throw an exception. | PASS |
| Set PannerNode.positionZ.automationRate to "k-rate" did not throw an exception. | PASS |
| Set StereoPannerNode.pan.automationRate to "k-rate" did not throw an exception. | PASS |
| StereoPannerNode.pan.automationRate is equal to k-rate. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [AudioBufferSourceNode] 4 out of 4 assertions were failed. | FAIL |
| < [BiquadFilterNode] 4 out of 12 assertions were failed. | FAIL |
| < [ConstantSourceNode] 1 out of 3 assertions were failed. | FAIL |
| < [DelayNode] 1 out of 3 assertions were failed. | FAIL |
| < [DynamicsCompressorNode] 10 out of 10 assertions were failed. | FAIL |
| < [GainNode] 1 out of 3 assertions were failed. | FAIL |
| < [OscillatorNode] 2 out of 6 assertions were failed. | FAIL |
| < [PannerNode] 6 out of 18 assertions were failed. | FAIL |
| < [StereoPannerNode] 1 out of 3 assertions were failed. | FAIL |
| > [AudioBufferSourceNode] | PASS |
| > [AudioListener] | PASS |
| > [BiquadFilterNode] | PASS |
| > [ConstantSourceNode] | PASS |
| > [DelayNode] | PASS |
| > [DynamicsCompressorNode] | PASS |
| > [GainNode] | PASS |
| > [OscillatorNode] | PASS |
| > [PannerNode] | PASS |
| > [StereoPannerNode] | PASS |
| X Default AudioBufferSourceNode.detune.automationRate is not equal to k-rate. Got undefined. | FAIL |
| X Default AudioBufferSourceNode.playbackRate.automationRate is not equal to k-rate. Got undefined. | FAIL |
| X Default BiquadFilterNode.Q.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default BiquadFilterNode.detune.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default BiquadFilterNode.frequency.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default BiquadFilterNode.gain.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default ConstantSourceNode.offset.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default DelayNode.delayTime.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default DynamicsCompressorNode.attack.automationRate is not equal to k-rate. Got undefined. | FAIL |
| X Default DynamicsCompressorNode.knee.automationRate is not equal to k-rate. Got undefined. | FAIL |
| X Default DynamicsCompressorNode.ratio.automationRate is not equal to k-rate. Got undefined. | FAIL |
| X Default DynamicsCompressorNode.release.automationRate is not equal to k-rate. Got undefined. | FAIL |
| X Default DynamicsCompressorNode.threshold.automationRate is not equal to k-rate. Got undefined. | FAIL |
| X Default GainNode.gain.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default OscillatorNode.detune.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default OscillatorNode.frequency.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default PannerNode.orientationX.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default PannerNode.orientationY.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default PannerNode.orientationZ.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default PannerNode.positionX.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default PannerNode.positionY.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default PannerNode.positionZ.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Default StereoPannerNode.pan.automationRate is not equal to a-rate. Got undefined. | FAIL |
| X Set AudioBufferSourceNode.detune.automationRate to "a-rate" did not throw an exception. | FAIL |
| X Set AudioBufferSourceNode.playbackRate.automationRate to "a-rate" did not throw an exception. | FAIL |
| X Set DynamicsCompressorNode.attack.automationRate to "a-rate" did not throw an exception. | FAIL |
| X Set DynamicsCompressorNode.knee.automationRate to "a-rate" did not throw an exception. | FAIL |
| X Set DynamicsCompressorNode.ratio.automationRate to "a-rate" did not throw an exception. | FAIL |
| X Set DynamicsCompressorNode.release.automationRate to "a-rate" did not throw an exception. | FAIL |
| X Set DynamicsCompressorNode.threshold.automationRate to "a-rate" did not throw an exception. | FAIL |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-ended.html (5/5, 100.00%, 0.10% of total) | OK |
| source.onended called is true. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [AudioBufferSourceNode calls its onended EventListener] All assertions passed. (total 1 assertions) | PASS |
| > [AudioBufferSourceNode calls its onended EventListener] | PASS |
| /webaudio/the-audio-api/the-biquadfilternode-interface/ctor-biquadfilter.html (54/54, 100.00%, 1.09% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new BiquadFilterNode() threw TypeError: "Not enough arguments to BiquadFilterNode.". | PASS |
| new BiquadFilterNode(1) threw TypeError: "Argument 1 of BiquadFilterNode.constructor is not an object.". | PASS |
| new BiquadFilterNode(c, {channelCount: 0}) threw NotSupportedError: "Operation is not supported". | PASS |
| new BiquadFilterNode(c, {channelCount: 17}} did not throw an exception. | PASS |
| new BiquadFilterNode(c, {channelCount: 99}) threw NotSupportedError: "Operation is not supported". | PASS |
| new BiquadFilterNode(c, {channelCountMode: "clamped-max"}) did not throw an exception. | PASS |
| new BiquadFilterNode(c, {channelCountMode: "explicit"}) did not throw an exception. | PASS |
| new BiquadFilterNode(c, {channelCountMode: "foobar"} threw TypeError: "'channelCountMode' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelCountMode.". | PASS |
| new BiquadFilterNode(c, {channelCountMode: "max"} did not throw an exception. | PASS |
| new BiquadFilterNode(c, {channelCountMode: "max"}) did not throw an exception. | PASS |
| new BiquadFilterNode(c, {channelInterpretation: "discrete"}) did not throw an exception. | PASS |
| new BiquadFilterNode(c, {channelInterpretation: "foobar"}) threw TypeError: "'channelInterpretation' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelInterpretation.". | PASS |
| new BiquadFilterNode(c, {channelInterpretation: "speakers"}) did not throw an exception. | PASS |
| new BiquadFilterNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node = new BiquadFilterNode(..., {"type":"highpass","frequency":512,"detune":1,"Q":5,"gain":3}) did not throw an exception. | PASS |
| node.Q.value is equal to 5. | PASS |
| node.channelCount is equal to 17. | PASS |
| node.channelCountMode after invalid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to clamped-max. | PASS |
| node.channelCountMode after valid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to max. | PASS |
| node.channelCountMode is equal to max. | PASS |
| node.channelInterpretation after invalid setter is equal to discrete. | PASS |
| node.channelInterpretation is equal to discrete. | PASS |
| node.channelInterpretation is equal to speakers. | PASS |
| node.detuen.value is equal to 1. | PASS |
| node.frequency.value is equal to 512. | PASS |
| node.gain.value is equal to 3. | PASS |
| node.type is equal to highpass. | PASS |
| node0 = new BiquadFilterNode(context) did not throw an exception. | PASS |
| node0 instanceof BiquadFilterNode is equal to true. | PASS |
| node0.Q.value is equal to 1. | PASS |
| node0.channelCount is equal to 2. | PASS |
| node0.channelCountMode is equal to max. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.detune.value is equal to 0. | PASS |
| node0.frequency.value is equal to 350. | PASS |
| node0.gain.value is equal to 0. | PASS |
| node0.numberOfInputs is equal to 1. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node0.type is equal to lowpass. | PASS |
| # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [construct with options] All assertions passed. (total 6 assertions) | PASS |
| < [default constructor] All assertions passed. (total 12 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [test AudioNodeOptions] All assertions passed. (total 20 assertions) | PASS |
| > [construct with options] | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [test AudioNodeOptions] | PASS |
| /webaudio/the-audio-api/the-pannernode-interface/distance-linear.html (106/106, 100.00%, 2.14% of total) | OK |
| 0.007071083877235651 is 0.007071067811865482 within an error of 0.0000033. | PASS |
| 0.014142167754471302 is 0.014142135623731043 within an error of 0.0000033. | PASS |
| 0.021213185042142868 is 0.021213203435596524 within an error of 0.0000033. | PASS |
| 0.028284266591072083 is 0.028284271247462005 within an error of 0.0000033. | PASS |
| 0.035355351865291595 is 0.03535533905932741 within an error of 0.0000033. | PASS |
| 0.04242643713951111 is 0.042426406871192895 within an error of 0.0000033. | PASS |
| 0.04949745163321495 is 0.04949747468305837 within an error of 0.0000033. | PASS |
| 0.056568533182144165 is 0.056568542494923775 within an error of 0.0000033. | PASS |
| 0.06363962590694427 is 0.06363961030678926 within an error of 0.0000033. | PASS |
| 0.07071070373058319 is 0.07071067811865474 within an error of 0.0000033. | PASS |
| 0.07778171449899673 is 0.0777817459305203 within an error of 0.0000033. | PASS |
| 0.08485280722379684 is 0.08485281374238579 within an error of 0.0000033. | PASS |
| 0.09192388504743576 is 0.09192388155425127 within an error of 0.0000033. | PASS |
| 0.09899497032165527 is 0.09899494936611666 within an error of 0.0000033. | PASS |
| 0.10606598854064941 is 0.10606601717798216 within an error of 0.0000033. | PASS |
| 0.11313706636428833 is 0.11313708498984763 within an error of 0.0000033. | PASS |
| 0.12020815163850784 is 0.12020815280171311 within an error of 0.0000033. | PASS |
| 0.12727925181388855 is 0.12727922061357852 within an error of 0.0000033. | PASS |
| 0.13435029983520508 is 0.13435028842544408 within an error of 0.0000033. | PASS |
| 0.1414213329553604 is 0.14142135623730956 within an error of 0.0000033. | PASS |
| 0.14849242568016052 is 0.14849242404917495 within an error of 0.0000033. | PASS |
| 0.15556347370147705 is 0.15556349186104051 within an error of 0.0000033. | PASS |
| 0.16263456642627716 is 0.16263455967290602 within an error of 0.0000033. | PASS |
| 0.1697056144475937 is 0.16970562748477142 within an error of 0.0000033. | PASS |
| 0.1767766922712326 is 0.1767766952966369 within an error of 0.0000033. | PASS |
| 0.18384777009487152 is 0.18384776310850245 within an error of 0.0000033. | PASS |
| 0.19091883301734924 is 0.19091883092036785 within an error of 0.0000033. | PASS |
| 0.19798991084098816 is 0.19798989873223333 within an error of 0.0000033. | PASS |
| 0.2050609588623047 is 0.20506096654409883 within an error of 0.0000033. | PASS |
| 0.2121320366859436 is 0.2121320343559643 within an error of 0.0000033. | PASS |
| 0.21920309960842133 is 0.2192031021678298 within an error of 0.0000033. | PASS |
| 0.22627417743206024 is 0.22627416997969527 within an error of 0.0000033. | PASS |
| 0.23334522545337677 is 0.23334523779156066 within an error of 0.0000033. | PASS |
| 0.24041630327701569 is 0.24041630560342622 within an error of 0.0000033. | PASS |
| 0.2474873661994934 is 0.2474873734152917 within an error of 0.0000033. | PASS |
| 0.2545584440231323 is 0.2545584412271571 within an error of 0.0000033. | PASS |
| 0.26162949204444885 is 0.2616295090390226 within an error of 0.0000033. | PASS |
| 0.26870059967041016 is 0.2687005768508881 within an error of 0.0000033. | PASS |
| 0.2757716178894043 is 0.27577164466275356 within an error of 0.0000033. | PASS |
| 0.2828427255153656 is 0.28284271247461906 within an error of 0.0000033. | PASS |
| 0.28991377353668213 is 0.2899137802864845 within an error of 0.0000033. | PASS |
| 0.29698485136032104 is 0.29698484809835 within an error of 0.0000033. | PASS |
| 0.3040558993816376 is 0.30405591591021547 within an error of 0.0000033. | PASS |
| 0.3111269772052765 is 0.311126983722081 within an error of 0.0000033. | PASS |
| 0.318198025226593 is 0.3181980515339465 within an error of 0.0000033. | PASS |
| 0.3252691328525543 is 0.3252691193458119 within an error of 0.0000033. | PASS |
| 0.33234015107154846 is 0.33234018715767744 within an error of 0.0000033. | PASS |
| 0.3394112288951874 is 0.3394112549695429 within an error of 0.0000033. | PASS |
| 0.3464823067188263 is 0.3464823227814083 within an error of 0.0000033. | PASS |
| 0.3535533845424652 is 0.3535533905932738 within an error of 0.0000033. | PASS |
| 0.3606244921684265 is 0.3606244584051393 within an error of 0.0000033. | PASS |
| 0.36769551038742065 is 0.36769552621700474 within an error of 0.0000033. | PASS |
| 0.37476661801338196 is 0.37476659402887025 within an error of 0.0000033. | PASS |
| 0.3818376660346985 is 0.3818376618407357 within an error of 0.0000033. | PASS |
| 0.3889087438583374 is 0.3889087296526012 within an error of 0.0000033. | PASS |
| 0.39597979187965393 is 0.39597979746446665 within an error of 0.0000033. | PASS |
| 0.40305083990097046 is 0.40305086527633216 within an error of 0.0000033. | PASS |
| 0.4101219177246094 is 0.41012193308819767 within an error of 0.0000033. | PASS |
| 0.4171930253505707 is 0.41719300090006306 within an error of 0.0000033. | PASS |
| 0.4242640435695648 is 0.4242640687119286 within an error of 0.0000033. | PASS |
| 0.4313351511955261 is 0.43133513652379407 within an error of 0.0000033. | PASS |
| 0.43840619921684265 is 0.43840620433565947 within an error of 0.0000033. | PASS |
| 0.4454772472381592 is 0.445477272147525 within an error of 0.0000033. | PASS |
| 0.4525483250617981 is 0.4525483399593905 within an error of 0.0000033. | PASS |
| 0.4596194326877594 is 0.45961940777125593 within an error of 0.0000033. | PASS |
| 0.4666904807090759 is 0.46669047558312143 within an error of 0.0000033. | PASS |
| 0.47376155853271484 is 0.4737615433949869 within an error of 0.0000033. | PASS |
| 0.48083260655403137 is 0.4808326112068523 within an error of 0.0000033. | PASS |
| 0.4879036545753479 is 0.4879036790187178 within an error of 0.0000033. | PASS |
| 0.4949747323989868 is 0.4949747468305833 within an error of 0.0000033. | PASS |
| 0.5020458102226257 is 0.5020458146424488 within an error of 0.0000033. | PASS |
| 0.5091168880462646 is 0.5091168824543142 within an error of 0.0000033. | PASS |
| 0.5161879658699036 is 0.5161879502661797 within an error of 0.0000033. | PASS |
| 0.5232590436935425 is 0.5232590180780452 within an error of 0.0000033. | PASS |
| 0.5303300619125366 is 0.5303300858899107 within an error of 0.0000033. | PASS |
| 0.5374011397361755 is 0.5374011537017762 within an error of 0.0000033. | PASS |
| 0.5444722175598145 is 0.5444722215136416 within an error of 0.0000033. | PASS |
| 0.5515432357788086 is 0.5515432893255071 within an error of 0.0000033. | PASS |
| 0.5586143732070923 is 0.5586143571373726 within an error of 0.0000033. | PASS |
| 0.5656854510307312 is 0.5656854249492381 within an error of 0.0000033. | PASS |
| 0.5727564692497253 is 0.5727564927611035 within an error of 0.0000033. | PASS |
| 0.5798275470733643 is 0.579827560572969 within an error of 0.0000033. | PASS |
| 0.5868986248970032 is 0.5868986283848345 within an error of 0.0000033. | PASS |
| 0.5939696431159973 is 0.5939696961966999 within an error of 0.0000033. | PASS |
| 0.601040780544281 is 0.6010407640085654 within an error of 0.0000033. | PASS |
| 0.6081118583679199 is 0.6081118318204309 within an error of 0.0000033. | PASS |
| 0.6151828765869141 is 0.6151828996322963 within an error of 0.0000033. | PASS |
| 0.622253954410553 is 0.6222539674441618 within an error of 0.0000033. | PASS |
| 0.6293250322341919 is 0.6293250352560273 within an error of 0.0000033. | PASS |
| 0.636396050453186 is 0.6363961030678928 within an error of 0.0000033. | PASS |
| 0.6434671878814697 is 0.6434671708797584 within an error of 0.0000033. | PASS |
| 0.6505382657051086 is 0.6505382386916237 within an error of 0.0000033. | PASS |
| 0.6576092839241028 is 0.6576093065034893 within an error of 0.0000033. | PASS |
| 0.6646803617477417 is 0.6646803743153548 within an error of 0.0000033. | PASS |
| 0.6717514395713806 is 0.6717514421272202 within an error of 0.0000033. | PASS |
| 0.6788224577903748 is 0.6788225099390857 within an error of 0.0000033. | PASS |
| 0.6858935952186584 is 0.6858935777509512 within an error of 0.0000033. | PASS |
| 0.6929646730422974 is 0.6929646455628166 within an error of 0.0000033. | PASS |
| 0.7000356912612915 is 0.7000357133746821 within an error of 0.0000033. | PASS |
| 0.7071067690849304 is 0.7071067811865476 within an error of 0.0000033. | PASS |
| Max error in distance gains is less than or equal to 0.0000033. | PASS |
| Number of impulses is equal to 100. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 102 assertions) | PASS |
| > [test] Linear distance model PannerNode | PASS |
| /webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-getFrequencyResponse.html (16/16, 100.00%, 0.32% of total) | OK |
| 1-pole IIR Magnitude Response equals [10,9.995561599731445,9.982281684875488,9.96026611328125,9.929688453674316,9.890785217285156,9.843852043151855,9.789238929748535,9.727341651916504,9.658592224121094,9.583455085754395,9.502418518066406,9.415983200073242,9.32465934753418,9.228958129882812,9.12938404083252...] with an element-wise tolerance of {"absoluteThreshold":0.0000028611,"relativeThreshold":0}. | PASS |
| 1-pole IIR Phase Response equals [0,-0.02826550230383873,-0.05647812411189079,-0.08458554744720459,-0.11253655701875687,-0.1402815729379654,-0.16777309775352478,-0.1949661672115326,-0.2218186855316162,-0.2482917755842209,-0.27434995770454407,-0.29996123909950256,-0.3250974416732788,-0.3497338891029358,-0.3738497197628021,-0.3974274694919586...] with an element-wise tolerance of {"absoluteThreshold":1.7882e-7,"relativeThreshold":0}. | PASS |
| IIR Magnitude Response equals [1,1.0028345584869385,1.0113478899002075,1.025554895401001,1.0454282760620117,1.070805311203003,1.10122549533844,1.1356719732284546,1.1721950769424438,1.2074543237686157,1.2363563776016235,1.2522097826004028,1.247962236404419,1.218644618988037,1.1639058589935303,1.0886648893356323...] with an element-wise tolerance of {"absoluteThreshold":0.000027419,"relativeThreshold":0}. | PASS |
| IIR Phase Response equals [0,-0.061315324157476425,-0.12391137331724167,-0.1891222447156906,-0.2583869397640228,-0.3332937955856323,-0.4156070649623871,-0.5072502493858337,-0.6102025508880615,-0.7262400388717651,-0.8564491868019104,-1.0005061626434326,-1.155927300453186,-1.3177809715270996,-1.4793895483016968,-1.6339597702026367...] with an element-wise tolerance of {"absoluteThreshold":0.000027657,"relativeThreshold":0}. | PASS |
| Magnitude response at frequency -1 is NaN. | PASS |
| Magnitude response at frequency 24001 is NaN. | PASS |
| Phase response at frequency -1 is NaN. | PASS |
| Phase response at frequency 24001 is NaN. | PASS |
| # AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [1-pole IIR] All assertions passed. (total 2 assertions) | PASS |
| < [compare IIR and biquad] All assertions passed. (total 2 assertions) | PASS |
| < [getFrequencyResponse] All assertions passed. (total 4 assertions) | PASS |
| > [1-pole IIR] | PASS |
| > [compare IIR and biquad] | PASS |
| > [getFrequencyResponse] Test out-of-bounds frequency values | PASS |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html (14/14, 100.00%, 0.28% of total) | OK |
| Creating context for testing did not throw an exception. | PASS |
| Fetching expected audio resolved correctly. | PASS |
| Rendered audio for channel 0 equals [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}. | PASS |
| Rendered audio for channel 1 equals [0,0.125030517578125,0.24810791015625,0.3673095703125,0.480743408203125,0.58660888671875,0.68328857421875,0.76922607421875,0.84307861328125,0.903717041015625,0.950164794921875,0.981689453125,0.997802734375,0.99822998046875,0.983001708984375,0.952362060546875...] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}. | PASS |
| Rendered audio for channel 2 equals [0,0.18695068359375,0.3673095703125,0.53472900390625,0.68328857421875,0.8077392578125,0.903717041015625,0.96783447265625,0.997802734375,0.992584228515625,0.952362060546875,0.8785400390625,0.77374267578125,0.641693115234375,0.486968994140625,0.315093994140625...] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}. | PASS |
| Rendered audio for channel 3 equals [0,0.24810791015625,0.480743408203125,0.68328857421875,0.84307861328125,0.950164794921875,0.997802734375,0.983001708984375,0.90673828125,0.77374267578125,0.592376708984375,0.373931884765625,0.132110595703125,-0.11798095703125,-0.3607177734375,-0.58087158203125...] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}. | PASS |
| Rendered audio for channel 4 equals [0,0.308319091796875,0.58660888671875,0.8077392578125,0.950164794921875,0.999969482421875,0.952362060546875,0.811920166015625,0.592376708984375,0.315093994140625,0.007110595703125,-0.30157470703125,-0.58087158203125,-0.803558349609375,-0.94793701171875,-0.999969482421875...] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}. | PASS |
| Rendered audio for channel 5 equals [0,0.3673095703125,0.68328857421875,0.903717041015625,0.997802734375,0.952362060546875,0.77374267578125,0.486968994140625,0.132110595703125,-0.241241455078125,-0.58087158203125,-0.839263916015625,-0.980316162109375,-0.98431396484375,-0.8507080078125,-0.598114013671875...] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}. | PASS |
| # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [initialize] All assertions passed. (total 2 assertions) | PASS |
| < [test] All assertions passed. (total 6 assertions) | PASS |
| > [initialize] | PASS |
| > [test] AudioBufferSource with 5.1 buffer | PASS |
| /webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html (14/14, 100.00%, 0.28% of total) | OK |
| Mono: Left channel error magnitude is less than or equal to 0.0000013. | PASS |
| Mono: Number of impulse at the wrong offset is equal to 0. | PASS |
| Mono: Number of impulses found is equal to 100. | PASS |
| Mono: Right channel error magnitude is less than or equal to 0.0000013. | PASS |
| Stereo: Left channel error magnitude is less than or equal to 0.0000013. | PASS |
| Stereo: Number of impulse at the wrong offset is equal to 0. | PASS |
| Stereo: Number of impulses found is equal to 100. | PASS |
| Stereo: Right channel error magnitude is less than or equal to 0.0000013. | PASS |
| # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [mono-test] All assertions passed. (total 4 assertions) | PASS |
| < [stereo-test] All assertions passed. (total 4 assertions) | PASS |
| > [mono-test] | PASS |
| > [stereo-test] | PASS |
| /webaudio/the-audio-api/the-iirfilternode-interface/ctor-iirfilter.html (48/48, 100.00%, 0.97% of total) | OK |
| Output of filter using new IIRFilter(...) is identical to the array [0,0.05756402388215065,0.1437191665172577,0.21500666439533234,0.29277661442756653,0.3659778833389282,0.43976426124572754,0.511192798614502,0.581375777721405,0.649405837059021,0.7153946161270142,0.7789546847343445,0.8399596214294434,0.8981648087501526,0.9533984065055847,1.0054666996002197...]. | PASS |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new IIRFilterNode() threw TypeError: "Not enough arguments to IIRFilterNode.". | PASS |
| new IIRFilterNode(1) threw TypeError: "Not enough arguments to IIRFilterNode.". | PASS |
| new IIRFilterNode(c, {channelCount: 0}) threw NotSupportedError: "Operation is not supported". | PASS |
| new IIRFilterNode(c, {channelCount: 17}} did not throw an exception. | PASS |
| new IIRFilterNode(c, {channelCount: 99}) threw NotSupportedError: "Operation is not supported". | PASS |
| new IIRFilterNode(c, {channelCountMode: "clamped-max"}) did not throw an exception. | PASS |
| new IIRFilterNode(c, {channelCountMode: "explicit"}) did not throw an exception. | PASS |
| new IIRFilterNode(c, {channelCountMode: "foobar"} threw TypeError: "'channelCountMode' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelCountMode.". | PASS |
| new IIRFilterNode(c, {channelCountMode: "max"} did not throw an exception. | PASS |
| new IIRFilterNode(c, {channelCountMode: "max"}) did not throw an exception. | PASS |
| new IIRFilterNode(c, {channelInterpretation: "discrete"}) did not throw an exception. | PASS |
| new IIRFilterNode(c, {channelInterpretation: "foobar"}) threw TypeError: "'channelInterpretation' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelInterpretation.". | PASS |
| new IIRFilterNode(c, {channelInterpretation: "speakers"}) did not throw an exception. | PASS |
| new IIRFilterNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node = new IIRFilterNode(, {"feedback":[1,0.5]}) threw TypeError: "Missing required 'feedforward' member of IIRFilterOptions.". | PASS |
| node = new IIRFilterNode(c, {"feedforward":[1,0.5]}) threw TypeError: "Missing required 'feedback' member of IIRFilterOptions.". | PASS |
| node.channelCount is equal to 17. | PASS |
| node.channelCountMode after invalid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to clamped-max. | PASS |
| node.channelCountMode after valid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to max. | PASS |
| node.channelCountMode is equal to max. | PASS |
| node.channelInterpretation after invalid setter is equal to discrete. | PASS |
| node.channelInterpretation is equal to discrete. | PASS |
| node.channelInterpretation is equal to speakers. | PASS |
| node0 = new IIRFilterNode(context, {"feedforward":[1],"feedback":[1,-0.9]}) did not throw an exception. | PASS |
| node0 instanceof IIRFilterNode is equal to true. | PASS |
| node0.channelCount is equal to 2. | PASS |
| node0.channelCountMode is equal to max. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.numberOfInputs is equal to 1. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| # AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [constructor options] All assertions passed. (total 2 assertions) | PASS |
| < [default constructor] All assertions passed. (total 7 assertions) | PASS |
| < [functionality] All assertions passed. (total 1 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [test AudioNodeOptions] All assertions passed. (total 20 assertions) | PASS |
| > [constructor options] | PASS |
| > [default constructor] | PASS |
| > [functionality] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [test AudioNodeOptions] | PASS |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-basic.html (24/24, 100.00%, 0.48% of total) | OK |
| Initialize context for testing did not throw an exception. | PASS |
| channelCountMode is equal to max. | PASS |
| channelInterpretation is equal to speakers. | PASS |
| context.createBiquadFilter does exist. | PASS |
| createBiquadFilter() did not throw an exception. | PASS |
| getFrequencyResponse(new Float32Array(1), new Float32Array(1), null) threw TypeError: "Argument 3 of BiquadFilterNode.getFrequencyResponse is not an object.". | PASS |
| getFrequencyResponse(new Float32Array(1), null, new Float32Array(1)) threw TypeError: "Argument 2 of BiquadFilterNode.getFrequencyResponse is not an object.". | PASS |
| getFrequencyResponse(null, new Float32Array(1), new Float32Array(1)) threw TypeError: "Argument 1 of BiquadFilterNode.getFrequencyResponse is not an object.". | PASS |
| numberOfInputs is equal to 1. | PASS |
| numberOfOutputs is equal to 1. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 5 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [exceptions-createBiquadFilter] All assertions passed. (total 1 assertions) | PASS |
| < [exceptions-getFrequencyData] 2 out of 5 assertions were failed. | FAIL |
| < [existence] All assertions passed. (total 1 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [parameters] All assertions passed. (total 4 assertions) | PASS |
| > [exceptions-createBiquadFilter] | PASS |
| > [exceptions-getFrequencyData] | PASS |
| > [existence] | PASS |
| > [initialize] | PASS |
| > [parameters] | PASS |
| X getFrequencyResponse(new Float32Array(10), new Float32Array(1), new Float32Array(20)) did not throw an exception. | FAIL |
| X getFrequencyResponse(new Float32Array(10), new Float32Array(20), new Float32Array(1)) did not throw an exception. | FAIL |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-channels.html (20/20, 100.00%, 0.40% of total) | OK |
| Setting source with 3 channels buffer did not throw an exception. | PASS |
| Setting source with 4 channels buffer did not throw an exception. | PASS |
| Setting source with 5 channels buffer did not throw an exception. | PASS |
| Setting source with 6 channels buffer did not throw an exception. | PASS |
| Setting source with 7 channels buffer did not throw an exception. | PASS |
| Setting source with 8 channels buffer did not throw an exception. | PASS |
| Setting source with 9 channels buffer did not throw an exception. | PASS |
| Setting source with mono buffer did not throw an exception. | PASS |
| Setting source with stereo buffer did not throw an exception. | PASS |
| source.buffer = 57 threw TypeError: "Value being assigned to AudioBufferSourceNode.buffer is not an object.". | PASS |
| source.buffer = buffer did not throw an exception. | PASS |
| source.buffer = null after setting to null did not throw an exception. | PASS |
| source.buffer = null again did not throw an exception. | PASS |
| source.buffer = null did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [validate .buffer] 2 out of 16 assertions were failed. | FAIL |
| > [validate .buffer] Validatation of AudioBuffer in .buffer attribute setter | PASS |
| X source.buffer = buffer again did not throw an exception. | FAIL |
| X source.buffer = new buffer did not throw an exception. | FAIL |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-automation.html (20/20, 100.00%, 0.40% of total) | OK |
| # AUDIT TASK RUNNER FINISHED: 6 out of 6 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [automate-all] 1 out of 1 assertions were failed. | FAIL |
| < [automate-detune] 1 out of 1 assertions were failed. | FAIL |
| < [automate-freq] 1 out of 1 assertions were failed. | FAIL |
| < [automate-gain] 1 out of 1 assertions were failed. | FAIL |
| < [automate-q] 1 out of 1 assertions were failed. | FAIL |
| < [modulation] 1 out of 1 assertions were failed. | FAIL |
| > [automate-all] | PASS |
| > [automate-detune] | PASS |
| > [automate-freq] | PASS |
| > [automate-gain] | PASS |
| > [automate-q] | PASS |
| > [modulation] | PASS |
| X Output of bandpass filter with Q automation does not equal [0,0.013114781118929386,0.047823384404182434,0.09765293449163437,0.15657125413417816,0.21899054944515228,0.27981746196746826,0.3345244824886322,0.379226952791214,0.4107542335987091,0.4267079830169678,0.42550167441368103,0.40637844800949097,0.3694050908088684,0.31544122099876404,0.24608469009399414...] with an element-wise tolerance of {"absoluteThreshold":9.8348e-7,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [1] 1.4311081729829311e-2 1.3114781118929386e-2 1.1963006108999252e-3 9.1217733643547391e-2 9.8348000000000007e-7 [2] 5.3999401628971100e-2 4.7823384404182434e-2 6.1760172247886658e-3 1.2914220316554043e-1 9.8348000000000007e-7 [3] 1.1236446350812912e-1 9.7652934491634369e-2 1.4711529016494751e-2 1.5065117185756505e-1 9.8348000000000007e-7 [4] 1.8244987726211548e-1 1.5657125413417816e-1 2.5878623127937317e-2 1.6528336105527966e-1 9.8348000000000007e-7 [5] 2.5735962390899658e-1 2.1899054944515228e-1 3.8369074463844299e-2 1.7520881408379727e-1 9.8348000000000007e-7 ...and 3994 more errors. Max AbsError of 4.8764730989933014e-1 at index of 123. [123] 5.8356797695159912e-1 9.5920667052268982e-2 4.8764730989933014e-1 5.0838607036959189e+0 9.8348000000000007e-7 Max RelError of 1.3733935694848860e+5 at index of 106. [106] -4.0824136137962341e-1 -2.9724792511842679e-6 4.0823838890037223e-1 1.3733935694848860e+5 9.8348000000000007e-7 | FAIL |
| X Output of bandpass filter with detune automation does not equal [0,0.0008383856620639563,0.00141120795160532,0.00036609364906325936,0.0001000093761831522,0.0012290297308936715,0.001128630479797721,0.0000010075401633002912,0.0004436193557921797,0.0014331036945804954,0.00065815937705338,-0.00011537729005794972,0.0008997227996587753,0.0013498960761353374,0.00016446926747448742,0.00006718232179991901...] with an element-wise tolerance of {"absoluteThreshold":0.000031471,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [4] 1.3306002074386925e-4 1.0000937618315220e-4 3.3050644560717046e-5 3.3047545962280317e-1 3.1470999999999997e-5 [7] 6.9791625719517469e-5 1.0075401633002912e-6 6.8784085556217178e-5 6.8269323707065467e+1 3.1470999999999997e-5 [8] 4.8867485020309687e-4 4.4361935579217970e-4 4.5055494410917163e-5 1.0156340976254449e-1 3.1470999999999997e-5 [10] 7.0790149038657546e-4 6.5815937705338001e-4 4.9742113333195448e-5 7.5577610936569728e-2 3.1470999999999997e-5 [11] -4.4212661123310681e-6 -1.1537729005794972e-4 1.1095602394561865e-4 9.6167992756537768e-1 3.1470999999999997e-5 ...and 1126 more errors. Max AbsError of 1.0178004354238510e+0 at index of 1015. [1015] -1.4570061862468719e-1 8.7209981679916382e-1 1.0178004354238510e+0 1.1670687412358907e+0 3.1470999999999997e-5 Max RelError of Infinity at index of 1087. [1087] 1.0017648339271545e-1 0.0000000000000000e+0 1.0017648339271545e-1 Infinity 3.1470999999999997e-5 | FAIL |
| X Output of bandpass filter with frequency automation does not equal [0,0.27222275733947754,0.1703483760356903,-0.4806261956691742,-0.2788437604904175,0.3957056999206543,0.10840324312448502,-0.39677220582962036,0.06871235370635986,0.41004475951194763,-0.1897629052400589,-0.3590146601200104,0.29248547554016113,0.2614542245864868,-0.376722127199173,-0.14195005595684052...] with an element-wise tolerance of {"absoluteThreshold":0.0000046455,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [1] 2.7207741141319275e-1 2.7222275733947754e-1 1.4534592628479004e-4 5.3392276129043557e-4 4.6454999999999998e-6 [2] 1.7092493176460266e-1 1.7034837603569031e-1 5.7655572891235352e-4 3.3845683905525301e-3 4.6454999999999998e-6 [3] -4.7884583473205566e-1 -4.8062619566917419e-1 1.7803609371185303e-3 3.7042528126036492e-3 4.6454999999999998e-6 [4] -2.8035214543342590e-1 -2.7884376049041748e-1 1.5083849430084229e-3 5.4094269147552214e-3 4.6454999999999998e-6 [5] 3.9142531156539917e-1 3.9570569992065430e-1 4.2803883552551270e-3 1.0817100577811786e-2 4.6454999999999998e-6 ...and 2072 more errors. Max AbsError of 2.1190106123685837e-1 at index of 1149. [1149] -1.1468840390443802e-1 9.7212657332420349e-2 2.1190106123685837e-1 2.1797682220768748e+0 4.6454999999999998e-6 Max RelError of 9.6699462879811648e+1 at index of 1000. [1000] -1.7538917064666748e-1 -1.7951907357200980e-3 1.7359397991094738e-1 9.6699462879811648e+1 4.6454999999999998e-6 | FAIL |
| X Output of bandpass filter with sinusoidal modulation of bandpass center frequency does not equal [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...] with an element-wise tolerance of {"absoluteThreshold":0.000039787,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [1] 1.7610176000744104e-3 0.0000000000000000e+0 1.7610176000744104e-3 Infinity 3.9786999999999997e-5 [2] 6.9368327967822552e-3 0.0000000000000000e+0 6.9368327967822552e-3 Infinity 3.9786999999999997e-5 [3] 1.5246707014739513e-2 0.0000000000000000e+0 1.5246707014739513e-2 Infinity 3.9786999999999997e-5 [4] 2.6283653452992439e-2 0.0000000000000000e+0 2.6283653452992439e-2 Infinity 3.9786999999999997e-5 [5] 3.9528924971818924e-2 0.0000000000000000e+0 3.9528924971818924e-2 Infinity 3.9786999999999997e-5 ...and 3993 more errors. Max AbsError of 9.7427284717559814e-1 at index of 3596. [3596] -9.7427284717559814e-1 0.0000000000000000e+0 9.7427284717559814e-1 Infinity 3.9786999999999997e-5 Max RelError of Infinity at index of 1. | FAIL |
| X Output of lowshelf filter with gain automation does not equal [0,0.4781356751918793,1.5511385202407837,3.0428154468536377,4.649440288543701,6.148099899291992,7.424892902374268,8.436473846435547,9.169538497924805,9.61856460571289,9.779438972473145,9.650873184204102,9.237476348876953,8.551753997802734,7.614615440368652,6.454819679260254...] with an element-wise tolerance of {"absoluteThreshold":0.000027657,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [1] 4.7863015532493591e-1 4.7813567519187927e-1 4.9448013305664063e-4 1.0341837238106155e-3 2.7657000000000000e-5 [2] 1.5550640821456909e+0 1.5511385202407837e+0 3.9255619049072266e-3 2.5307616655009381e-3 2.7657000000000000e-5 [3] 3.0560569763183594e+0 3.0428154468536377e+0 1.3241529464721680e-2 4.3517359813635154e-3 2.7657000000000000e-5 [4] 4.6794834136962891e+0 4.6494402885437012e+0 3.0043125152587891e-2 6.4616649076265492e-3 2.7657000000000000e-5 [5] 6.2022128105163574e+0 6.1480998992919922e+0 5.4112911224365234e-2 8.8015666808857178e-3 2.7657000000000000e-5 ...and 2048 more errors. Max AbsError of 2.4090213775634766e+0 at index of 120. [120] 9.9098815917968750e+0 7.5008602142333984e+0 2.4090213775634766e+0 3.2116601413157825e-1 2.7657000000000000e-5 Max RelError of 1.0632292419525375e+2 at index of 1000. [1000] 2.2968197241425514e-2 -2.1807405573781580e-4 2.3186271297163330e-2 1.0632292419525375e+2 2.7657000000000000e-5 | FAIL |
| X Output of peaking filter with automation of all parameters does not equal [0,0.9876883625984192,-0.30901700258255005,-0.8910065293312073,0.5877852439880371,0.7071067690849304,-0.80901700258255,-0.45399048924446106,0.9510565400123596,0.15643446147441864,-1,0.15643446147441864,0.9510565400123596,-0.45399048924446106,-0.80901700258255,0.7071067690849304...] with an element-wise tolerance of {"absoluteThreshold":0.00062907,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [697] -8.9100652933120728e-1 -8.9659482240676880e-1 5.5882930755615234e-3 6.2327965050708450e-3 6.2907000000000002e-4 [698] -3.0901700258255005e-1 -3.0482962727546692e-1 4.1873753070831299e-3 1.3736772716318364e-2 6.2907000000000002e-4 [699] 9.8768836259841919e-1 1.0072603225708008e+0 1.9571959972381592e-2 1.9430885475989618e-2 6.2907000000000002e-4 [700] -5.5879793522430055e-14 -3.7726949900388718e-2 3.7726949900332839e-2 9.9999999999851885e-1 6.2907000000000002e-4 [701] -9.8768836259841919e-1 -9.7246229648590088e-1 1.5226066112518311e-2 1.5657230277759220e-2 6.2907000000000002e-4 ...and 3290 more errors. Max AbsError of 1.0000780582427979e+1 at index of 2030. [2030] 1.2776083946228027e+0 1.1278388977050781e+1 1.0000780582427979e+1 8.8672066575975750e-1 6.2907000000000002e-4 Max RelError of 7.2626681742283040e+1 at index of 898. [898] -2.0910589396953583e-1 -2.8400830924510956e-3 2.0626581087708473e-1 7.2626681742283040e+1 6.2907000000000002e-4 | FAIL |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/note-grain-on-timing.html (109/109, 100.00%, 2.20% of total) | OK |
| Found all grain starts and ends is true. | PASS |
| Number of end frames is equal to 100. | PASS |
| Number of grains that started at the correct time is equal to 100. | PASS |
| Number of start frames is equal to 100. | PASS |
| Pulse 0 boundary is identical to the array [0,441]. | PASS |
| Pulse 1 boundary is identical to the array [662,1103]. | PASS |
| Pulse 10 boundary is identical to the array [6615,7056]. | PASS |
| Pulse 11 boundary is identical to the array [7276,7717]. | PASS |
| Pulse 12 boundary is identical to the array [7938,8379]. | PASS |
| Pulse 13 boundary is identical to the array [8600,9041]. | PASS |
| Pulse 14 boundary is identical to the array [9261,9702]. | PASS |
| Pulse 15 boundary is identical to the array [9922,10363]. | PASS |
| Pulse 16 boundary is identical to the array [10584,11025]. | PASS |
| Pulse 17 boundary is identical to the array [11246,11687]. | PASS |
| Pulse 18 boundary is identical to the array [11907,12348]. | PASS |
| Pulse 19 boundary is identical to the array [12568,13009]. | PASS |
| Pulse 2 boundary is identical to the array [1323,1764]. | PASS |
| Pulse 20 boundary is identical to the array [13230,13671]. | PASS |
| Pulse 21 boundary is identical to the array [13892,14333]. | PASS |
| Pulse 22 boundary is identical to the array [14553,14994]. | PASS |
| Pulse 23 boundary is identical to the array [15214,15655]. | PASS |
| Pulse 24 boundary is identical to the array [15876,16317]. | PASS |
| Pulse 25 boundary is identical to the array [16538,16979]. | PASS |
| Pulse 26 boundary is identical to the array [17199,17640]. | PASS |
| Pulse 27 boundary is identical to the array [17861,18302]. | PASS |
| Pulse 28 boundary is identical to the array [18522,18963]. | PASS |
| Pulse 29 boundary is identical to the array [19184,19625]. | PASS |
| Pulse 3 boundary is identical to the array [1985,2426]. | PASS |
| Pulse 30 boundary is identical to the array [19845,20286]. | PASS |
| Pulse 31 boundary is identical to the array [20507,20948]. | PASS |
| Pulse 32 boundary is identical to the array [21168,21609]. | PASS |
| Pulse 33 boundary is identical to the array [21830,22271]. | PASS |
| Pulse 34 boundary is identical to the array [22491,22932]. | PASS |
| Pulse 35 boundary is identical to the array [23153,23594]. | PASS |
| Pulse 36 boundary is identical to the array [23814,24255]. | PASS |
| Pulse 37 boundary is identical to the array [24475,24916]. | PASS |
| Pulse 38 boundary is identical to the array [25137,25578]. | PASS |
| Pulse 39 boundary is identical to the array [25799,26240]. | PASS |
| Pulse 4 boundary is identical to the array [2646,3087]. | PASS |
| Pulse 40 boundary is identical to the array [26460,26901]. | PASS |
| Pulse 41 boundary is identical to the array [27122,27563]. | PASS |
| Pulse 42 boundary is identical to the array [27783,28224]. | PASS |
| Pulse 43 boundary is identical to the array [28445,28886]. | PASS |
| Pulse 44 boundary is identical to the array [29106,29547]. | PASS |
| Pulse 45 boundary is identical to the array [29767,30208]. | PASS |
| Pulse 46 boundary is identical to the array [30429,30870]. | PASS |
| Pulse 47 boundary is identical to the array [31091,31532]. | PASS |
| Pulse 48 boundary is identical to the array [31752,32193]. | PASS |
| Pulse 49 boundary is identical to the array [32414,32855]. | PASS |
| Pulse 5 boundary is identical to the array [3308,3749]. | PASS |
| Pulse 50 boundary is identical to the array [33075,33516]. | PASS |
| Pulse 51 boundary is identical to the array [33737,34178]. | PASS |
| Pulse 52 boundary is identical to the array [34398,34839]. | PASS |
| Pulse 53 boundary is identical to the array [35060,35501]. | PASS |
| Pulse 54 boundary is identical to the array [35721,36162]. | PASS |
| Pulse 55 boundary is identical to the array [36383,36824]. | PASS |
| Pulse 56 boundary is identical to the array [37044,37485]. | PASS |
| Pulse 57 boundary is identical to the array [37706,38147]. | PASS |
| Pulse 58 boundary is identical to the array [38367,38808]. | PASS |
| Pulse 59 boundary is identical to the array [39029,39470]. | PASS |
| Pulse 6 boundary is identical to the array [3969,4410]. | PASS |
| Pulse 60 boundary is identical to the array [39690,40131]. | PASS |
| Pulse 61 boundary is identical to the array [40352,40793]. | PASS |
| Pulse 62 boundary is identical to the array [41013,41454]. | PASS |
| Pulse 63 boundary is identical to the array [41675,42116]. | PASS |
| Pulse 64 boundary is identical to the array [42336,42777]. | PASS |
| Pulse 65 boundary is identical to the array [42998,43439]. | PASS |
| Pulse 66 boundary is identical to the array [43659,44100]. | PASS |
| Pulse 67 boundary is identical to the array [44320,44761]. | PASS |
| Pulse 68 boundary is identical to the array [44982,45423]. | PASS |
| Pulse 69 boundary is identical to the array [45644,46085]. | PASS |
| Pulse 7 boundary is identical to the array [4631,5072]. | PASS |
| Pulse 70 boundary is identical to the array [46305,46746]. | PASS |
| Pulse 71 boundary is identical to the array [46967,47408]. | PASS |
| Pulse 72 boundary is identical to the array [47628,48069]. | PASS |
| Pulse 73 boundary is identical to the array [48290,48731]. | PASS |
| Pulse 74 boundary is identical to the array [48951,49392]. | PASS |
| Pulse 76 boundary is identical to the array [50274,50715]. | PASS |
| Pulse 77 boundary is identical to the array [50936,51377]. | PASS |
| Pulse 78 boundary is identical to the array [51597,52038]. | PASS |
| Pulse 79 boundary is identical to the array [52259,52700]. | PASS |
| Pulse 8 boundary is identical to the array [5292,5733]. | PASS |
| Pulse 80 boundary is identical to the array [52920,53361]. | PASS |
| Pulse 81 boundary is identical to the array [53581,54022]. | PASS |
| Pulse 82 boundary is identical to the array [54243,54684]. | PASS |
| Pulse 83 boundary is identical to the array [54904,55345]. | PASS |
| Pulse 84 boundary is identical to the array [55566,56007]. | PASS |
| Pulse 85 boundary is identical to the array [56227,56668]. | PASS |
| Pulse 86 boundary is identical to the array [56889,57330]. | PASS |
| Pulse 87 boundary is identical to the array [57551,57992]. | PASS |
| Pulse 88 boundary is identical to the array [58212,58653]. | PASS |
| Pulse 89 boundary is identical to the array [58874,59315]. | PASS |
| Pulse 9 boundary is identical to the array [5954,6395]. | PASS |
| Pulse 90 boundary is identical to the array [59535,59976]. | PASS |
| Pulse 91 boundary is identical to the array [60197,60638]. | PASS |
| Pulse 92 boundary is identical to the array [60858,61299]. | PASS |
| Pulse 93 boundary is identical to the array [61520,61961]. | PASS |
| Pulse 94 boundary is identical to the array [62181,62622]. | PASS |
| Pulse 95 boundary is identical to the array [62843,63284]. | PASS |
| Pulse 96 boundary is identical to the array [63504,63945]. | PASS |
| Pulse 97 boundary is identical to the array [64165,64606]. | PASS |
| Pulse 98 boundary is identical to the array [64827,65268]. | PASS |
| Pulse 99 boundary is identical to the array [65488,65929]. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Test timing of noteGrainOn] 2 out of 105 assertions were failed. | FAIL |
| > [Test timing of noteGrainOn] | PASS |
| X Number of grains out of 100 that ended at the wrong time is not equal to 0. Got 1. | FAIL |
| X Pulse 75 boundary expected to be equal to the array [49613,50053] but differs in 1 places: Index Actual Expected [1] 5.0054000000000000e+4 5.0053000000000000e+4 | FAIL |
| /webaudio/the-audio-api/the-audioparam-interface/k-rate-gain.html (12/12, 100.00%, 0.24% of total) | OK |
| GainNode: Output of a-rate GainNode is identical to the array [0,0.33869555592536926,0.6372646689414978,0.8604192137718201,0.9817960858345032,0.9870710372924805,0.8756494522094727,0.6607334017753601,0.367756724357605,0.03137582167983055,-0.3086302578449249,-0.6120638251304626,-0.843061089515686,-0.9743307828903198,-0.9903786182403564,-0.8893360495567322...]. | PASS |
| GainNode: Output of k-rate GainNode is identical to the array [0,0.33869555592536926,0.6372646689414978,0.8604192137718201,0.9817960858345032,0.9870710372924805,0.8756494522094727,0.6607334017753601,0.367756724357605,0.03137582167983055,-0.3086302578449249,-0.6120638251304626,-0.843061089515686,-0.9743307828903198,-0.9903786182403564,-0.8893360495567322...]. | PASS |
| GainNode: Setting gain.automationRate to "k-rate" is equal to k-rate. | PASS |
| GainNode: a-rate node:gain.linearRampToValueAtTime(0,1) did not throw an exception. | PASS |
| GainNode: a-rate node:gain.setValueAtTime(1,0) did not throw an exception. | PASS |
| GainNode: k-rate node: gain.linearRampToValueAtTime(0,1) did not throw an exception. | PASS |
| GainNode: k-rate node: gain.setValueAtTime(1,0) did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Test k-rate GainNode] 1 out of 8 assertions were failed. | FAIL |
| > [Test k-rate GainNode] | PASS |
| X GainNode: Difference between a-rate and k-rate GainNode should have contain at least one value different from 0. | FAIL |
| /webaudio/the-audio-api/the-audioparam-interface/audioparam-exponentialRampToValueAtTime.html (106/106, 100.00%, 2.14% of total) | OK |
| Max error for test 0 at offset 1 is less than or equal to 0.00001222. | PASS |
| Max error for test 1 at offset 2645 is less than or equal to 0.00001222. | PASS |
| Max error for test 10 at offset 14350 is less than or equal to 0.00001222. | PASS |
| Max error for test 11 at offset 15872 is less than or equal to 0.00001222. | PASS |
| Max error for test 12 at offset 16727 is less than or equal to 0.00001222. | PASS |
| Max error for test 13 at offset 18520 is less than or equal to 0.00001222. | PASS |
| Max error for test 14 at offset 18523 is less than or equal to 0.00001222. | PASS |
| Max error for test 15 at offset 21151 is less than or equal to 0.00001222. | PASS |
| Max error for test 16 at offset 21169 is less than or equal to 0.00001222. | PASS |
| Max error for test 17 at offset 23812 is less than or equal to 0.00001222. | PASS |
| Max error for test 18 at offset 23815 is less than or equal to 0.00001222. | PASS |
| Max error for test 19 at offset 26456 is less than or equal to 0.00001222. | PASS |
| Max error for test 2 at offset 2648 is less than or equal to 0.00001222. | PASS |
| Max error for test 20 at offset 26461 is less than or equal to 0.00001222. | PASS |
| Max error for test 21 at offset 29094 is less than or equal to 0.00001222. | PASS |
| Max error for test 22 at offset 29107 is less than or equal to 0.00001222. | PASS |
| Max error for test 23 at offset 31743 is less than or equal to 0.00001222. | PASS |
| Max error for test 24 at offset 31753 is less than or equal to 0.00001222. | PASS |
| Max error for test 25 at offset 34394 is less than or equal to 0.00001222. | PASS |
| Max error for test 26 at offset 34399 is less than or equal to 0.00001222. | PASS |
| Max error for test 27 at offset 37043 is less than or equal to 0.00001222. | PASS |
| Max error for test 28 at offset 37045 is less than or equal to 0.00001222. | PASS |
| Max error for test 29 at offset 39689 is less than or equal to 0.00001222. | PASS |
| Max error for test 3 at offset 5291 is less than or equal to 0.00001222. | PASS |
| Max error for test 30 at offset 39692 is less than or equal to 0.00001222. | PASS |
| Max error for test 31 at offset 42335 is less than or equal to 0.00001222. | PASS |
| Max error for test 32 at offset 42340 is less than or equal to 0.00001222. | PASS |
| Max error for test 33 at offset 44975 is less than or equal to 0.00001222. | PASS |
| Max error for test 34 at offset 44983 is less than or equal to 0.00001222. | PASS |
| Max error for test 35 at offset 47626 is less than or equal to 0.00001222. | PASS |
| Max error for test 36 at offset 47632 is less than or equal to 0.00001222. | PASS |
| Max error for test 37 at offset 50124 is less than or equal to 0.00001222. | PASS |
| Max error for test 38 at offset 50767 is less than or equal to 0.00001222. | PASS |
| Max error for test 39 at offset 52917 is less than or equal to 0.00001222. | PASS |
| Max error for test 4 at offset 6218 is less than or equal to 0.00001222. | PASS |
| Max error for test 40 at offset 53339 is less than or equal to 0.00001222. | PASS |
| Max error for test 41 at offset 55565 is less than or equal to 0.00001222. | PASS |
| Max error for test 42 at offset 55856 is less than or equal to 0.00001222. | PASS |
| Max error for test 43 at offset 58211 is less than or equal to 0.00001222. | PASS |
| Max error for test 44 at offset 58731 is less than or equal to 0.00001222. | PASS |
| Max error for test 45 at offset 60856 is less than or equal to 0.00001222. | PASS |
| Max error for test 46 at offset 61532 is less than or equal to 0.00001222. | PASS |
| Max error for test 47 at offset 63503 is less than or equal to 0.00001222. | PASS |
| Max error for test 48 at offset 63760 is less than or equal to 0.00001222. | PASS |
| Max error for test 49 at offset 66148 is less than or equal to 0.00001222. | PASS |
| Max error for test 5 at offset 7937 is less than or equal to 0.00001222. | PASS |
| Max error for test 50 at offset 66153 is less than or equal to 0.00001222. | PASS |
| Max error for test 51 at offset 68788 is less than or equal to 0.00001222. | PASS |
| Max error for test 52 at offset 69223 is less than or equal to 0.00001222. | PASS |
| Max error for test 53 at offset 71434 is less than or equal to 0.00001222. | PASS |
| Max error for test 54 at offset 72119 is less than or equal to 0.00001222. | PASS |
| Max error for test 55 at offset 74087 is less than or equal to 0.00001222. | PASS |
| Max error for test 56 at offset 74091 is less than or equal to 0.00001222. | PASS |
| Max error for test 57 at offset 76733 is less than or equal to 0.00001222. | PASS |
| Max error for test 58 at offset 77843 is less than or equal to 0.00001222. | PASS |
| Max error for test 59 at offset 79375 is less than or equal to 0.00001222. | PASS |
| Max error for test 6 at offset 7939 is less than or equal to 0.00001222. | PASS |
| Max error for test 60 at offset 79995 is less than or equal to 0.00001222. | PASS |
| Max error for test 61 at offset 82022 is less than or equal to 0.00001222. | PASS |
| Max error for test 62 at offset 83337 is less than or equal to 0.00001222. | PASS |
| Max error for test 63 at offset 84669 is less than or equal to 0.00001222. | PASS |
| Max error for test 64 at offset 85802 is less than or equal to 0.00001222. | PASS |
| Max error for test 65 at offset 87313 is less than or equal to 0.00001222. | PASS |
| Max error for test 66 at offset 87319 is less than or equal to 0.00001222. | PASS |
| Max error for test 67 at offset 89963 is less than or equal to 0.00001222. | PASS |
| Max error for test 68 at offset 89966 is less than or equal to 0.00001222. | PASS |
| Max error for test 69 at offset 92602 is less than or equal to 0.00001222. | PASS |
| Max error for test 7 at offset 10573 is less than or equal to 0.00001222. | PASS |
| Max error for test 70 at offset 92629 is less than or equal to 0.00001222. | PASS |
| Max error for test 71 at offset 95255 is less than or equal to 0.00001222. | PASS |
| Max error for test 72 at offset 96356 is less than or equal to 0.00001222. | PASS |
| Max error for test 73 at offset 97862 is less than or equal to 0.00001222. | PASS |
| Max error for test 74 at offset 99092 is less than or equal to 0.00001222. | PASS |
| Max error for test 75 at offset 100533 is less than or equal to 0.00001222. | PASS |
| Max error for test 76 at offset 101524 is less than or equal to 0.00001222. | PASS |
| Max error for test 77 at offset 103168 is less than or equal to 0.00001222. | PASS |
| Max error for test 78 at offset 103213 is less than or equal to 0.00001222. | PASS |
| Max error for test 79 at offset 105839 is less than or equal to 0.00001222. | PASS |
| Max error for test 8 at offset 10588 is less than or equal to 0.00001222. | PASS |
| Max error for test 80 at offset 105885 is less than or equal to 0.00001222. | PASS |
| Max error for test 81 at offset 108463 is less than or equal to 0.00001222. | PASS |
| Max error for test 82 at offset 108491 is less than or equal to 0.00001222. | PASS |
| Max error for test 83 at offset 111089 is less than or equal to 0.00001222. | PASS |
| Max error for test 84 at offset 112320 is less than or equal to 0.00001222. | PASS |
| Max error for test 85 at offset 113761 is less than or equal to 0.00001222. | PASS |
| Max error for test 86 at offset 113790 is less than or equal to 0.00001222. | PASS |
| Max error for test 87 at offset 116422 is less than or equal to 0.00001222. | PASS |
| Max error for test 88 at offset 116451 is less than or equal to 0.00001222. | PASS |
| Max error for test 89 at offset 118856 is less than or equal to 0.00001222. | PASS |
| Max error for test 9 at offset 13228 is less than or equal to 0.00001222. | PASS |
| Max error for test 90 at offset 119132 is less than or equal to 0.00001222. | PASS |
| Max error for test 91 at offset 121711 is less than or equal to 0.00001222. | PASS |
| Max error for test 92 at offset 121720 is less than or equal to 0.00001222. | PASS |
| Max error for test 93 at offset 124336 is less than or equal to 0.00001222. | PASS |
| Max error for test 94 at offset 125034 is less than or equal to 0.00001222. | PASS |
| Max error for test 95 at offset 126659 is less than or equal to 0.00001222. | PASS |
| Max error for test 96 at offset 127632 is less than or equal to 0.00001222. | PASS |
| Max error for test 97 at offset 129220 is less than or equal to 0.00001222. | PASS |
| Max error for test 98 at offset 130184 is less than or equal to 0.00001222. | PASS |
| Max error for test 99 at offset 132121 is less than or equal to 0.00001222. | PASS |
| Number of failed tests with an acceptable relative tolerance of 0.00001222 is equal to 0. | PASS |
| Number of tests started and ended at the correct time is equal to 100. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 102 assertions) | PASS |
| > [test] AudioParam exponentialRampToValueAtTime() functionality | PASS |
| /webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-basic.html (37/37, 100.00%, 0.75% of total) | OK |
| Initialize context for testing did not throw an exception. | PASS |
| channelCountMode is equal to max. | PASS |
| channelInterpretation is equal to speakers. | PASS |
| context.createIIRFilter does exist. | PASS |
| createIIRFilter() threw TypeError: "Not enough arguments to BaseAudioContext.createIIRFilter.". | PASS |
| createIIRFilter([1, 'abc', []], [1]) threw TypeError: "Element of argument 1 of BaseAudioContext.createIIRFilter is not a finite floating-point value.". | PASS |
| createIIRFilter([1, NaN, Infinity], [1]) threw TypeError: "Element of argument 1 of BaseAudioContext.createIIRFilter is not a finite floating-point value.". | PASS |
| createIIRFilter([1], [1, NaN, Infinity]) threw TypeError: "Element of argument 2 of BaseAudioContext.createIIRFilter is not a finite floating-point value.". | PASS |
| createIIRFilter([1], []) threw NotSupportedError: "Operation is not supported". | PASS |
| createIIRFilter([1], new Float32Array(2)) threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| createIIRFilter([1], new Float32Array(21)) threw NotSupportedError: "Operation is not supported". | PASS |
| createIIRFilter([], [1]) threw NotSupportedError: "Operation is not supported". | PASS |
| createIIRFilter([], []) threw NotSupportedError: "Operation is not supported". | PASS |
| createIIRFilter(new Float32Array(1)) threw TypeError: "Not enough arguments to BaseAudioContext.createIIRFilter.". | PASS |
| createIIRFilter(new Float32Array(10), [1]) threw InvalidStateError: "An attempt was made to use an object that is not, or is no longer, usable". | PASS |
| createIIRFilter(new Float32Array(20), new Float32Array(20)) did not throw an exception. | PASS |
| createIIRFilter(new Float32Array(21), [1]) threw NotSupportedError: "Operation is not supported". | PASS |
| createIIRFilter(null, null) threw TypeError: "Argument 1 of BaseAudioContext.createIIRFilter can't be converted to a sequence.". | PASS |
| getFrequencyResponse(new Float32Array(1), new Float32Array(1), null) threw TypeError: "Argument 3 of IIRFilterNode.getFrequencyResponse is not an object.". | PASS |
| getFrequencyResponse(new Float32Array(1), null, new Float32Array(1)) threw TypeError: "Argument 2 of IIRFilterNode.getFrequencyResponse is not an object.". | PASS |
| getFrequencyResponse(null, new Float32Array(1), new Float32Array(1)) threw TypeError: "Argument 1 of IIRFilterNode.getFrequencyResponse is not an object.". | PASS |
| numberOfInputs is equal to 1. | PASS |
| numberOfOutputs is equal to 1. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 5 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [exceptions-createIIRFilter] All assertions passed. (total 14 assertions) | PASS |
| < [exceptions-getFrequencyData] 2 out of 5 assertions were failed. | FAIL |
| < [existence] All assertions passed. (total 1 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [parameters] All assertions passed. (total 4 assertions) | PASS |
| > [exceptions-createIIRFilter] | PASS |
| > [exceptions-getFrequencyData] | PASS |
| > [existence] | PASS |
| > [initialize] | PASS |
| > [parameters] | PASS |
| X getFrequencyResponse(new Float32Array(10), new Float32Array(1), new Float32Array(20)) did not throw an exception. | FAIL |
| X getFrequencyResponse(new Float32Array(10), new Float32Array(20), new Float32Array(1)) did not throw an exception. | FAIL |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-addmodule-resolution.https.html (1/1, 100.00%, 0.02% of total) | TIMEOUT |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-addmodule-resolution.https.html | TIMEOUT |
| /webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html (1/1, 100.00%, 0.02% of total) | OK |
| Test if MediaElementAudioSourceNode works for cross-origin redirects with "no-cors" request mode. | FAIL |
| /webaudio/the-audio-api/the-delaynode-interface/ctor-delay.html (47/47, 100.00%, 0.95% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new DelayNode() threw TypeError: "Not enough arguments to DelayNode.". | PASS |
| new DelayNode(1) threw TypeError: "Argument 1 of DelayNode.constructor is not an object.". | PASS |
| new DelayNode(c, {channelCount: 0}) threw NotSupportedError: "Operation is not supported". | PASS |
| new DelayNode(c, {channelCount: 17}} did not throw an exception. | PASS |
| new DelayNode(c, {channelCount: 99}) threw NotSupportedError: "Operation is not supported". | PASS |
| new DelayNode(c, {channelCountMode: "clamped-max"}) did not throw an exception. | PASS |
| new DelayNode(c, {channelCountMode: "explicit"}) did not throw an exception. | PASS |
| new DelayNode(c, {channelCountMode: "foobar"} threw TypeError: "'channelCountMode' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelCountMode.". | PASS |
| new DelayNode(c, {channelCountMode: "max"} did not throw an exception. | PASS |
| new DelayNode(c, {channelCountMode: "max"}) did not throw an exception. | PASS |
| new DelayNode(c, {channelInterpretation: "discrete"}) did not throw an exception. | PASS |
| new DelayNode(c, {channelInterpretation: "foobar"}) threw TypeError: "'channelInterpretation' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelInterpretation.". | PASS |
| new DelayNode(c, {channelInterpretation: "speakers"}) did not throw an exception. | PASS |
| new DelayNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node.channelCount is equal to 17. | PASS |
| node.channelCountMode after invalid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to clamped-max. | PASS |
| node.channelCountMode after valid setter is equal to explicit. | PASS |
| node.channelCountMode after valid setter is equal to max. | PASS |
| node.channelCountMode is equal to max. | PASS |
| node.channelInterpretation after invalid setter is equal to discrete. | PASS |
| node.channelInterpretation is equal to discrete. | PASS |
| node.channelInterpretation is equal to speakers. | PASS |
| node0 = new DelayNode(context) did not throw an exception. | PASS |
| node0 instanceof DelayNode is equal to true. | PASS |
| node0.channelCount is equal to 2. | PASS |
| node0.channelCountMode is equal to max. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.delayTime.value is equal to 0. | PASS |
| node0.numberOfInputs is equal to 1. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node1 = new DelayNode(c, {"delayTime":0.5,"maxDelayTime":1.5}) did not throw an exception. | PASS |
| node1.delayTime.maxValue is equal to 1.5. | PASS |
| node1.delayTime.value is equal to 0.5. | PASS |
| # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [constructor options] All assertions passed. (total 3 assertions) | PASS |
| < [default constructor] All assertions passed. (total 8 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [test AudioNodeOptions] All assertions passed. (total 20 assertions) | PASS |
| > [constructor options] | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [test AudioNodeOptions] | PASS |
| /webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping.html (46/46, 100.00%, 0.93% of total) | OK |
| Model: exponential: Distance (0.01) is outside the range [1, 10000] is equal to true. | PASS |
| Model: exponential: Distance (2) is outside the range [10, 1000] is equal to true. | PASS |
| Model: exponential: Distance (21000) is outside the range [1, 10000] is equal to true. | PASS |
| Model: exponential: Distance (5000) is outside the range [10, 1000] is equal to true. | PASS |
| Model: inverse: Distance (0.01) is outside the range [1, 10000] is equal to true. | PASS |
| Model: inverse: Distance (2) is outside the range [10, 1000] is equal to true. | PASS |
| Model: inverse: Distance (23000) is outside the range [1, 10000] is equal to true. | PASS |
| Model: inverse: Distance (5000) is outside the range [10, 1000] is equal to true. | PASS |
| Model: linear: Distance (0.01) is outside the range [1, 10000] is equal to true. | PASS |
| Model: linear: Distance (2) is outside the range [10, 1000] is equal to true. | PASS |
| Model: linear: Distance (20000) is outside the range [1, 10000] is equal to true. | PASS |
| Model: linear: Distance (5000) is outside the range [10, 1000] is equal to true. | PASS |
| Test panner output {"distance":0.01,"distanceModel":"exponential"} is identical to the array [0,0.295012891292572,0.675191342830658,-0.3281824290752411,-0.5979354977607727,-0.03646343573927879,0.06110522150993347,0.6431357860565186,0.22387216985225677,-0.6992175579071045,-0.2357022911310196,0.00031174527248367667,0.3577147424221039,0.6349031329154968,-0.4236578047275543,-0.5443311929702759...]. | PASS |
| Test panner output {"distance":0.01,"distanceModel":"inverse"} is identical to the array [0,0.295012891292572,0.675191342830658,-0.3281824290752411,-0.5979354977607727,-0.03646343573927879,0.06110522150993347,0.6431357860565186,0.22387216985225677,-0.6992175579071045,-0.2357022911310196,0.00031174527248367667,0.3577147424221039,0.6349031329154968,-0.4236578047275543,-0.5443311929702759...]. | PASS |
| Test panner output {"distance":0.01,"distanceModel":"linear"} is identical to the array [0,0.295012891292572,0.675191342830658,-0.3281824290752411,-0.5979354977607727,-0.03646343573927879,0.06110522150993347,0.6431357860565186,0.22387216985225677,-0.6992175579071045,-0.2357022911310196,0.00031174527248367667,0.3577147424221039,0.6349031329154968,-0.4236578047275543,-0.5443311929702759...]. | PASS |
| Test panner output {"distance":2,"distanceModel":"exponential","maxDistance":1000,"refDistance":10} is identical to the array [0,0.295012891292572,0.675191342830658,-0.3281824290752411,-0.5979354977607727,-0.03646343573927879,0.06110522150993347,0.6431357860565186,0.22387216985225677,-0.6992175579071045,-0.2357022911310196,0.00031174527248367667,0.3577147424221039,0.6349031329154968,-0.4236578047275543,-0.5443311929702759...]. | PASS |
| Test panner output {"distance":2,"distanceModel":"inverse","maxDistance":1000,"refDistance":10} is identical to the array [0,0.295012891292572,0.675191342830658,-0.3281824290752411,-0.5979354977607727,-0.03646343573927879,0.06110522150993347,0.6431357860565186,0.22387216985225677,-0.6992175579071045,-0.2357022911310196,0.00031174527248367667,0.3577147424221039,0.6349031329154968,-0.4236578047275543,-0.5443311929702759...]. | PASS |
| Test panner output {"distance":2,"distanceModel":"linear","maxDistance":1000,"refDistance":10} is identical to the array [0,0.295012891292572,0.675191342830658,-0.3281824290752411,-0.5979354977607727,-0.03646343573927879,0.06110522150993347,0.6431357860565186,0.22387216985225677,-0.6992175579071045,-0.2357022911310196,0.00031174527248367667,0.3577147424221039,0.6349031329154968,-0.4236578047275543,-0.5443311929702759...]. | PASS |
| Test panner output {"distance":20000,"distanceModel":"linear"} is identical to the array [0,0.147506445646286,0.337595671415329,-0.16409121453762054,-0.29896774888038635,-0.018231717869639397,0.030552610754966736,0.3215678930282593,0.11193608492612839,-0.34960877895355225,-0.1178511455655098,0.00015587263624183834,0.17885737121105194,0.3174515664577484,-0.21182890236377716,-0.27216559648513794...]. | PASS |
| Test panner output {"distance":21000,"distanceModel":"exponential"} is identical to the array [0,0.002035782439634204,0.004659262951463461,-0.0022646738216280937,-0.004126146901398897,-0.0002516216190997511,0.00042166607454419136,0.004438058473169804,0.0015448647318407893,-0.004825059324502945,-0.0016265002777799964,0.000002151246690118569,0.00246846629306674,0.004381247796118259,-0.002923516556620598,-0.0037562421057373285...]. | PASS |
| Test panner output {"distance":23000,"distanceModel":"inverse"} is identical to the array [0,0.00002565217982919421,0.000058709738368634135,-0.000028536362151498906,-0.00005199213046580553,-0.0000031705958463135175,0.000005313266683515394,0.00005592242087004706,0.00001946629890881013,-0.00006079888407839462,-0.00002049496106337756,2.7107105893264816e-8,0.00003110427860519849,0.00005520656850421801,-0.000036838209780398756,-0.00004733109017251991...]. | PASS |
| Test panner output {"distance":5000,"distanceModel":"exponential","maxDistance":1000,"refDistance":10} is identical to the array [0,0.01319337822496891,0.03019547648727894,-0.014676764607429504,-0.026740489527583122,-0.0016306944889947772,0.0027327085845172405,0.028761908411979675,0.010011868551373482,-0.03126996010541916,-0.01054092776030302,0.000013941673387307674,0.015997489914298058,0.028393732383847237,-0.018946554511785507,-0.024343231692910194...]. | PASS |
| Test panner output {"distance":5000,"distanceModel":"inverse","maxDistance":1000,"refDistance":10} is identical to the array [0,0.001177696161903441,0.00269537465646863,-0.0013101095100864768,-0.0023869681172072887,-0.00014556261885445565,0.0002439330128254369,0.002567408373579383,0.000893701275344938,-0.002791287610307336,-0.0009409273043274879,0.000001244492068508407,0.0014280029572546482,0.0025345433969050646,-0.0016912487335503101,-0.002172978827729821...]. | PASS |
| Test panner output {"distance":5000,"distanceModel":"linear","maxDistance":1000,"refDistance":10} is identical to the array [0,0.147506445646286,0.337595671415329,-0.16409121453762054,-0.29896774888038635,-0.018231717869639397,0.030552610754966736,0.3215678930282593,0.11193608492612839,-0.34960877895355225,-0.1178511455655098,0.00015587263624183834,0.17885737121105194,0.3174515664577484,-0.21182890236377716,-0.27216559648513794...]. | PASS |
| new PannerNode(c, {maxDistance: -1}) threw RangeError: "The maxDistance value passed to PannerNode must be positive.". | PASS |
| new PannerNode(c, {maxDistance: 0}) threw RangeError: "The maxDistance value passed to PannerNode must be positive.". | PASS |
| new PannerNode(c, {maxDistance: 5e-324}) did not throw an exception. | PASS |
| new PannerNode(c, {refDistance: -1}) threw RangeError: "The refDistance value passed to PannerNode must not be negative.". | PASS |
| new PannerNode(c, {refDistance: 0}) did not throw an exception. | PASS |
| new PannerNode(c, {refDistance: 5e-324}) did not throw an exception. | PASS |
| panner.maxDistance = -1 threw RangeError: "The maxDistance value passed to PannerNode must be positive.". | PASS |
| panner.maxDistance = 0 threw RangeError: "The maxDistance value passed to PannerNode must be positive.". | PASS |
| panner.maxDistance = 5e-324 did not throw an exception. | PASS |
| panner.refDistance = -1 threw RangeError: "The refDistance value passed to PannerNode must not be negative.". | PASS |
| panner.refDistance = 0 did not throw an exception. | PASS |
| panner.refDistance = 5e-324 did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [max-distance-error] All assertions passed. (total 6 assertions) | PASS |
| < [max-distance] All assertions passed. (total 12 assertions) | PASS |
| < [min-distance] All assertions passed. (total 12 assertions) | PASS |
| < [ref-distance-error] All assertions passed. (total 6 assertions) | PASS |
| > [max-distance-error] | PASS |
| > [max-distance] | PASS |
| > [min-distance] | PASS |
| > [ref-distance-error] | PASS |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowshelf.html (7/7, 100.00%, 0.14% of total) | OK |
| Max error in Lowshelf filter response is less than or equal to 3.8349e-8. | PASS |
| Number of filters tested is equal to 3. | PASS |
| Number of non-finite values in the rendered output is equal to 0. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 3 assertions) | PASS |
| > [test] Biquad lowshelf filter | PASS |
| /webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input.html (30/30, 100.00%, 0.60% of total) | OK |
| 1-channel source: Channel #0 contains only the constant 0. | PASS |
| 1-channel source: Channel #1 contains only the constant 0. | PASS |
| 1-channel source: Channel #2 contains only the constant 0. | PASS |
| 1-channel source: Channel #3 contains only the constant 1. | PASS |
| 1-channel source: Channel #4 contains only the constant 0. | PASS |
| 1-channel source: Channel #5 contains only the constant 0. | PASS |
| 2-channel source: Channel #0 contains only the constant 1.5. | PASS |
| 2-channel source: Channel #1 contains only the constant 0. | PASS |
| 2-channel source: Channel #2 contains only the constant 0. | PASS |
| 2-channel source: Channel #3 contains only the constant 0. | PASS |
| 2-channel source: Channel #4 contains only the constant 0. | PASS |
| 2-channel source: Channel #5 contains only the constant 0. | PASS |
| 3-channel source: Channel #0 contains only the constant 1. | PASS |
| 3-channel source: Channel #1 contains only the constant 0. | PASS |
| 3-channel source: Channel #2 contains only the constant 0. | PASS |
| 3-channel source: Channel #3 contains only the constant 0. | PASS |
| 3-channel source: Channel #4 contains only the constant 0. | PASS |
| 3-channel source: Channel #5 contains only the constant 0. | PASS |
| Channel #0 contains only the constant 1. | PASS |
| Channel #1 contains only the constant -1. | PASS |
| # AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [merging-to-stereo] All assertions passed. (total 2 assertions) | PASS |
| < [silent-channel] All assertions passed. (total 6 assertions) | PASS |
| < [stereo-down-mixing] All assertions passed. (total 6 assertions) | PASS |
| < [undefined-channel-layout] All assertions passed. (total 6 assertions) | PASS |
| > [merging-to-stereo] | PASS |
| > [silent-channel] | PASS |
| > [stereo-down-mixing] | PASS |
| > [undefined-channel-layout] | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining.html (19/19, 100.00%, 0.38% of total) | OK |
| Calling exponentialRampToValueAtTime() with a zero target value threw RangeError: "The value passed to exponentialRampToValueAtTime must be positive.". | PASS |
| Calling setValueAtTime() with a negative end time threw RangeError: "The start time for an AudioParam method must be non-negative.". | PASS |
| The gain value of the first gain node is equal to 1. | PASS |
| The rendered envelope equals [0,0.000125,0.00025,0.000375,0.0005,0.000625,0.00075,0.000875,0.001,0.001125,0.00125,0.001375,0.0015,0.001625,0.00175,0.001875...] with an element-wise tolerance of {"absoluteThreshold":0.0000040532,"relativeThreshold":0}. | PASS |
| The return value of AudioParam.cancelScheduledValues() matches the source AudioParam is equal to true. | PASS |
| The return value of AudioParam.exponentialRampToValueAtTime() matches the source AudioParam is equal to true. | PASS |
| The return value of AudioParam.linearRampToValueAtTime() matches the source AudioParam is equal to true. | PASS |
| The return value of AudioParam.setTargetAtTime() matches the source AudioParam is equal to true. | PASS |
| The return value of AudioParam.setValueAtTime() matches the source AudioParam is equal to true. | PASS |
| The return value of AudioParam.setValueCurveAtTime() matches the source AudioParam is equal to true. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 out of 3 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [from-dictionary] All assertions passed. (total 6 assertions) | PASS |
| < [invalid-operation] 1 out of 4 assertions were failed. | FAIL |
| < [verification] All assertions passed. (total 1 assertions) | PASS |
| > [from-dictionary] | PASS |
| > [invalid-operation] | PASS |
| > [verification] | PASS |
| X The gain value of the second gain node is not equal to 0.5. Got 1. | FAIL |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-onerror.https.html (1/1, 100.00%, 0.02% of total) | OK |
| Test onprocessorerror handler in AudioWorkletNode | FAIL |
| /webaudio/the-audio-api/the-convolvernode-interface/convolver-channels.html (36/36, 100.00%, 0.73% of total) | OK |
| ConvolverNode with buffer of 1 channels did not throw an exception. | PASS |
| ConvolverNode with buffer of 10 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 11 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 12 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 13 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 14 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 15 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 16 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 17 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 18 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 19 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 2 channels did not throw an exception. | PASS |
| ConvolverNode with buffer of 20 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 21 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 22 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 23 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 24 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 25 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 26 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 27 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 28 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 29 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 3 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 30 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 31 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 32 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 4 channels did not throw an exception. | PASS |
| ConvolverNode with buffer of 5 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 6 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 7 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 8 channels threw NotSupportedError: "Operation is not supported". | PASS |
| ConvolverNode with buffer of 9 channels threw NotSupportedError: "Operation is not supported". | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [channel-count-test] All assertions passed. (total 32 assertions) | PASS |
| > [channel-count-test] | PASS |
| /webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-non-default.html (29/29, 100.00%, 0.58% of total) | OK |
| 1-channel source: Channel #0 contains only the constant 0. | PASS |
| 1-channel source: Channel #1 contains only the constant 0. | PASS |
| 1-channel source: Channel #2 contains only the constant 0. | PASS |
| 1-channel source: Channel #3 contains only the constant 0. | PASS |
| 1-channel source: Channel #4 contains only the constant 0. | PASS |
| 1-channel source: Channel #5 contains only the constant 0. | PASS |
| 1-channel source: Channel #6 contains only the constant 1. | PASS |
| 2-channel source: Channel #0 contains only the constant 0. | PASS |
| 2-channel source: Channel #1 contains only the constant 0. | PASS |
| 2-channel source: Channel #2 contains only the constant 0. | PASS |
| 2-channel source: Channel #3 contains only the constant 0. | PASS |
| 2-channel source: Channel #4 contains only the constant 0. | PASS |
| 2-channel source: Channel #5 contains only the constant 0. | PASS |
| 2-channel source: Channel #6 contains only the constant 1.5. | PASS |
| 3-channel source: Channel #0 contains only the constant 0. | PASS |
| 3-channel source: Channel #1 contains only the constant 0. | PASS |
| 3-channel source: Channel #2 contains only the constant 0. | PASS |
| 3-channel source: Channel #3 contains only the constant 0. | PASS |
| 3-channel source: Channel #4 contains only the constant 0. | PASS |
| 3-channel source: Channel #5 contains only the constant 0. | PASS |
| 3-channel source: Channel #6 contains only the constant 1. | PASS |
| # AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [silent-channel] All assertions passed. (total 7 assertions) | PASS |
| < [stereo-down-mixing] All assertions passed. (total 7 assertions) | PASS |
| < [undefined-channel-layout] All assertions passed. (total 7 assertions) | PASS |
| > [silent-channel] | PASS |
| > [stereo-down-mixing] | PASS |
| > [undefined-channel-layout] | PASS |
| /webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter.html (16/16, 100.00%, 0.32% of total) | OK |
| Left and right channels were exchanged correctly | PASS |
| Left channel contains only the constant -1. | PASS |
| Right channel contains only the constant 1. | PASS |
| createChannelSplitter(0) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| createChannelSplitter(33) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| splitternode = context.createChannelSplitter() did not throw an exception. | PASS |
| splitternode = context.createChannelSplitter(32) did not throw an exception. | PASS |
| splitternode.numberOfInputs is equal to 1. | PASS |
| splitternode.numberOfOutputs is equal to 32. | PASS |
| splitternode.numberOfOutputs is equal to 6. | PASS |
| # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [construction] All assertions passed. (total 7 assertions) | PASS |
| < [functionality] All assertions passed. (total 3 assertions) | PASS |
| > [construction] Construction of ChannelSplitterNode | PASS |
| > [functionality] Functionality of ChannelSplitterNode | PASS |
| /webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html (2/2, 100.00%, 0.04% of total) | OK |
| Test AnalyserNode API | FAIL |
| Test AnalyserNode's ctor API | FAIL |
| /webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-basic.html (13/13, 100.00%, 0.26% of total) | OK |
| panner.channelCount = 1 did not throw an exception. | PASS |
| panner.channelCount = 3 threw NotSupportedError: "Operation is not supported". | PASS |
| panner.channelCountMode = "explicit" did not throw an exception. | PASS |
| panner.channelCountMode = "max" threw NotSupportedError: "Operation is not supported". | PASS |
| panner.numberOfInputs is equal to 1. | PASS |
| panner.numberOfOutputs is equal to 1. | PASS |
| panner.pan.defaultValue is equal to 0. | PASS |
| panner.pan.value = 1.0 did not throw an exception. | PASS |
| panner.pan.value is equal to 1. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 9 assertions) | PASS |
| > [test] Attributes and basic functionality of StereoPannerNode | PASS |
| /webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https.html (1/1, 100.00%, 0.02% of total) | OK |
| Test sampleRate in AudioWorkletGlobalScope | FAIL |
| /webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html (1/1, 100.00%, 0.02% of total) | OK |
| Test AnalyserNode when the input is scaled | PASS |
| /webaudio/the-audio-api/the-delaynode-interface/delaynode.html (10/10, 100.00%, 0.20% of total) | OK |
| Delaying test signal by 0.5 sec was done correctly | PASS |
| delay.delayTime.defaultValue is equal to 0. | PASS |
| delay.delayTime.value = 0.5 is equal to 0.5. | PASS |
| delay.delayTime.value is equal to 0. | PASS |
| delay.numberOfInputs is equal to 1. | PASS |
| delay.numberOfOutputs is equal to 1. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 6 assertions) | PASS |
| > [test] Tests attribute and basic functionality of DelayNode | PASS |
| /webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-basic.html (11/11, 100.00%, 0.22% of total) | OK |
| Default maxDecibels value is equal to -30. | PASS |
| Default minDecibels value is equal to -100. | PASS |
| Default smoothingTimeConstant value is equal to 0.8. | PASS |
| Number of inputs for AnalyserNode is equal to 1. | PASS |
| Number of outputs for AnalyserNode is equal to 1. | PASS |
| node.maxDecibels = -40.333333333333336 is equal to -40.333333333333336. | PASS |
| node.minDecibels = -50.333333333333336 is equal to -50.333333333333336. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Basic AnalyserNode test] All assertions passed. (total 7 assertions) | PASS |
| > [Basic AnalyserNode test] | PASS |
| /webaudio/the-audio-api/the-audionode-interface/audionode-channel-rules.html (176/176, 100.00%, 3.55% of total) | OK |
| Rendered number of channels is equal to 8. | PASS |
| Rendered number of frames is equal to 1360. | PASS |
| connections: 1, clamped-max(4), discrete is true. | PASS |
| connections: 1, clamped-max(4), speakers is true. | PASS |
| connections: 1, explicit(1), speakers is true. | PASS |
| connections: 1, explicit(2), speakers is true. | PASS |
| connections: 1, explicit(4), discrete is true. | PASS |
| connections: 1, explicit(4), speakers is true. | PASS |
| connections: 1, explicit(6), speakers is true. | PASS |
| connections: 1, explicit(8), discrete is true. | PASS |
| connections: 1, max, discrete is true. | PASS |
| connections: 1, max, speakers is true. | PASS |
| connections: 11, clamped-max(4), discrete is true. | PASS |
| connections: 11, clamped-max(4), speakers is true. | PASS |
| connections: 11, explicit(1), speakers is true. | PASS |
| connections: 11, explicit(2), speakers is true. | PASS |
| connections: 11, explicit(4), discrete is true. | PASS |
| connections: 11, explicit(4), speakers is true. | PASS |
| connections: 11, explicit(6), speakers is true. | PASS |
| connections: 11, explicit(8), discrete is true. | PASS |
| connections: 11, max, discrete is true. | PASS |
| connections: 11, max, speakers is true. | PASS |
| connections: 111, clamped-max(4), discrete is true. | PASS |
| connections: 111, clamped-max(4), speakers is true. | PASS |
| connections: 111, explicit(1), speakers is true. | PASS |
| connections: 111, explicit(2), speakers is true. | PASS |
| connections: 111, explicit(4), discrete is true. | PASS |
| connections: 111, explicit(4), speakers is true. | PASS |
| connections: 111, explicit(6), speakers is true. | PASS |
| connections: 111, explicit(8), discrete is true. | PASS |
| connections: 111, max, discrete is true. | PASS |
| connections: 111, max, speakers is true. | PASS |
| connections: 12, clamped-max(4), discrete is true. | PASS |
| connections: 12, clamped-max(4), speakers is true. | PASS |
| connections: 12, explicit(1), speakers is true. | PASS |
| connections: 12, explicit(2), speakers is true. | PASS |
| connections: 12, explicit(4), discrete is true. | PASS |
| connections: 12, explicit(4), speakers is true. | PASS |
| connections: 12, explicit(6), speakers is true. | PASS |
| connections: 12, explicit(8), discrete is true. | PASS |
| connections: 12, max, discrete is true. | PASS |
| connections: 12, max, speakers is true. | PASS |
| connections: 122, clamped-max(4), discrete is true. | PASS |
| connections: 122, clamped-max(4), speakers is true. | PASS |
| connections: 122, explicit(1), speakers is true. | PASS |
| connections: 122, explicit(2), speakers is true. | PASS |
| connections: 122, explicit(4), discrete is true. | PASS |
| connections: 122, explicit(4), speakers is true. | PASS |
| connections: 122, explicit(6), speakers is true. | PASS |
| connections: 122, explicit(8), discrete is true. | PASS |
| connections: 122, max, discrete is true. | PASS |
| connections: 122, max, speakers is true. | PASS |
| connections: 123, clamped-max(4), discrete is true. | PASS |
| connections: 123, clamped-max(4), speakers is true. | PASS |
| connections: 123, explicit(1), speakers is true. | PASS |
| connections: 123, explicit(2), speakers is true. | PASS |
| connections: 123, explicit(4), discrete is true. | PASS |
| connections: 123, explicit(4), speakers is true. | PASS |
| connections: 123, explicit(6), speakers is true. | PASS |
| connections: 123, explicit(8), discrete is true. | PASS |
| connections: 123, max, discrete is true. | PASS |
| connections: 123, max, speakers is true. | PASS |
| connections: 124, clamped-max(4), discrete is true. | PASS |
| connections: 124, clamped-max(4), speakers is true. | PASS |
| connections: 124, explicit(1), speakers is true. | PASS |
| connections: 124, explicit(2), speakers is true. | PASS |
| connections: 124, explicit(4), discrete is true. | PASS |
| connections: 124, explicit(4), speakers is true. | PASS |
| connections: 124, explicit(6), speakers is true. | PASS |
| connections: 124, explicit(8), discrete is true. | PASS |
| connections: 124, max, discrete is true. | PASS |
| connections: 124, max, speakers is true. | PASS |
| connections: 128, clamped-max(4), discrete is true. | PASS |
| connections: 128, clamped-max(4), speakers is true. | PASS |
| connections: 128, explicit(1), speakers is true. | PASS |
| connections: 128, explicit(2), speakers is true. | PASS |
| connections: 128, explicit(4), discrete is true. | PASS |
| connections: 128, explicit(4), speakers is true. | PASS |
| connections: 128, explicit(6), speakers is true. | PASS |
| connections: 128, explicit(8), discrete is true. | PASS |
| connections: 128, max, discrete is true. | PASS |
| connections: 128, max, speakers is true. | PASS |
| connections: 14, clamped-max(4), discrete is true. | PASS |
| connections: 14, clamped-max(4), speakers is true. | PASS |
| connections: 14, explicit(1), speakers is true. | PASS |
| connections: 14, explicit(2), speakers is true. | PASS |
| connections: 14, explicit(4), discrete is true. | PASS |
| connections: 14, explicit(4), speakers is true. | PASS |
| connections: 14, explicit(6), speakers is true. | PASS |
| connections: 14, explicit(8), discrete is true. | PASS |
| connections: 14, max, discrete is true. | PASS |
| connections: 14, max, speakers is true. | PASS |
| connections: 18, clamped-max(4), discrete is true. | PASS |
| connections: 18, clamped-max(4), speakers is true. | PASS |
| connections: 18, explicit(1), speakers is true. | PASS |
| connections: 18, explicit(2), speakers is true. | PASS |
| connections: 18, explicit(4), discrete is true. | PASS |
| connections: 18, explicit(4), speakers is true. | PASS |
| connections: 18, explicit(6), speakers is true. | PASS |
| connections: 18, explicit(8), discrete is true. | PASS |
| connections: 18, max, discrete is true. | PASS |
| connections: 18, max, speakers is true. | PASS |
| connections: 2, clamped-max(4), discrete is true. | PASS |
| connections: 2, clamped-max(4), speakers is true. | PASS |
| connections: 2, explicit(1), speakers is true. | PASS |
| connections: 2, explicit(2), speakers is true. | PASS |
| connections: 2, explicit(4), discrete is true. | PASS |
| connections: 2, explicit(4), speakers is true. | PASS |
| connections: 2, explicit(6), speakers is true. | PASS |
| connections: 2, explicit(8), discrete is true. | PASS |
| connections: 2, max, discrete is true. | PASS |
| connections: 2, max, speakers is true. | PASS |
| connections: 3, clamped-max(4), discrete is true. | PASS |
| connections: 3, clamped-max(4), speakers is true. | PASS |
| connections: 3, explicit(1), speakers is true. | PASS |
| connections: 3, explicit(2), speakers is true. | PASS |
| connections: 3, explicit(4), discrete is true. | PASS |
| connections: 3, explicit(4), speakers is true. | PASS |
| connections: 3, explicit(6), speakers is true. | PASS |
| connections: 3, explicit(8), discrete is true. | PASS |
| connections: 3, max, discrete is true. | PASS |
| connections: 3, max, speakers is true. | PASS |
| connections: 4, clamped-max(4), discrete is true. | PASS |
| connections: 4, clamped-max(4), speakers is true. | PASS |
| connections: 4, explicit(1), speakers is true. | PASS |
| connections: 4, explicit(2), speakers is true. | PASS |
| connections: 4, explicit(4), discrete is true. | PASS |
| connections: 4, explicit(4), speakers is true. | PASS |
| connections: 4, explicit(6), speakers is true. | PASS |
| connections: 4, explicit(8), discrete is true. | PASS |
| connections: 4, max, discrete is true. | PASS |
| connections: 4, max, speakers is true. | PASS |
| connections: 5, clamped-max(4), discrete is true. | PASS |
| connections: 5, clamped-max(4), speakers is true. | PASS |
| connections: 5, explicit(1), speakers is true. | PASS |
| connections: 5, explicit(2), speakers is true. | PASS |
| connections: 5, explicit(4), discrete is true. | PASS |
| connections: 5, explicit(4), speakers is true. | PASS |
| connections: 5, explicit(6), speakers is true. | PASS |
| connections: 5, explicit(8), discrete is true. | PASS |
| connections: 5, max, discrete is true. | PASS |
| connections: 5, max, speakers is true. | PASS |
| connections: 6, clamped-max(4), discrete is true. | PASS |
| connections: 6, clamped-max(4), speakers is true. | PASS |
| connections: 6, explicit(1), speakers is true. | PASS |
| connections: 6, explicit(2), speakers is true. | PASS |
| connections: 6, explicit(4), discrete is true. | PASS |
| connections: 6, explicit(4), speakers is true. | PASS |
| connections: 6, explicit(6), speakers is true. | PASS |
| connections: 6, explicit(8), discrete is true. | PASS |
| connections: 6, max, discrete is true. | PASS |
| connections: 6, max, speakers is true. | PASS |
| connections: 7, clamped-max(4), discrete is true. | PASS |
| connections: 7, clamped-max(4), speakers is true. | PASS |
| connections: 7, explicit(1), speakers is true. | PASS |
| connections: 7, explicit(2), speakers is true. | PASS |
| connections: 7, explicit(4), discrete is true. | PASS |
| connections: 7, explicit(4), speakers is true. | PASS |
| connections: 7, explicit(6), speakers is true. | PASS |
| connections: 7, explicit(8), discrete is true. | PASS |
| connections: 7, max, discrete is true. | PASS |
| connections: 7, max, speakers is true. | PASS |
| connections: 8, clamped-max(4), discrete is true. | PASS |
| connections: 8, clamped-max(4), speakers is true. | PASS |
| connections: 8, explicit(1), speakers is true. | PASS |
| connections: 8, explicit(2), speakers is true. | PASS |
| connections: 8, explicit(4), discrete is true. | PASS |
| connections: 8, explicit(4), speakers is true. | PASS |
| connections: 8, explicit(6), speakers is true. | PASS |
| connections: 8, explicit(8), discrete is true. | PASS |
| connections: 8, max, discrete is true. | PASS |
| connections: 8, max, speakers is true. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 172 assertions) | PASS |
| > [test] Channel mixing rules for AudioNodes | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/event-insertion.html (44/44, 100.00%, 0.89% of total) | OK |
| Expo+Linear: At time 0.01556396484375 (frame 255) output is 2.9871532226369792 within an error of 0.0000042533. | PASS |
| Expo+Linear: At time 0.015625 (frame 256) and later, output contains only the constant 2. | PASS |
| Expo+Linear: Context length is long enough for the test is true. | PASS |
| Expo+Linear: exponentialRampToValueAtTime(3, 0.015625) did not throw an exception. | PASS |
| Expo+Linear: linearRampToValueAtTime(2, 0.015625) did not throw an exception. | PASS |
| Expo+Linear: setValueAtTime(99, 0.015625) did not throw an exception. | PASS |
| Linear+Expo: At time 0.01556396484375 (frame 255) output is 1.99609375 within an error of 0. | PASS |
| Linear+Expo: At time 0.015625 (frame 256) and later, output contains only the constant 3. | PASS |
| Linear+Expo: Context length is long enough for the test is true. | PASS |
| Linear+Expo: exponentialRampToValueAtTime(3, 0.015625) did not throw an exception. | PASS |
| Linear+Expo: linearRampToValueAtTime(2, 0.015625) did not throw an exception. | PASS |
| Linear+Expo: setValueAtTime(99, 0.015625) did not throw an exception. | PASS |
| Linear+SetTarget: At time 0.01556396484375 (frame 255) output is 2.9921875 within an error of 0. | PASS |
| Linear+SetTarget: At time 0.015625 (frame 256) and later equals [100,99.93898010253906,99.87800598144531,99.81706237792969,99.75615692138672,99.6952896118164,99.63446044921875,99.57366180419922,99.51290893554688,99.45218658447266,99.39151000976562,99.33086395263672,99.27025604248047,99.20968627929688,99.1491470336914,99.08865356445312...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":1.7807e-7}. | PASS |
| Linear+SetTarget: At time 0.015625 (frame 256) output is equal to 100. | PASS |
| Linear+SetTarget: Context length is long enough for the test is true. | PASS |
| Linear+SetTarget: linearRampToValueAtTime(3, 0.015625) did not throw an exception. | PASS |
| Linear+SetTarget: setTargetAtTime(0, 0.015625, 0.1) did not throw an exception. | PASS |
| Linear+SetTarget: setValueAtTime(100, 0.015625) did not throw an exception. | PASS |
| Output at frame 128 (time 0.0078125) is equal to 1. | PASS |
| Output at frame 256 (time 0.015625) is equal to 2. | PASS |
| Output at frame 384 (time 0.0234375) is equal to 3. | PASS |
| Output at frame 512 (time 0.03125) is equal to 4. | PASS |
| Output at frame 640 (time 0.0390625) is equal to 5. | PASS |
| exponentialRampToValueAtTime(3, 0.0234375) did not throw an exception. | PASS |
| exponentialRampToValueAtTime(99, 0.0234375) did not throw an exception. | PASS |
| linearRampToValueAtTime(2, 0.015625) did not throw an exception. | PASS |
| linearRampToValueAtTime(99, 0.015625) did not throw an exception. | PASS |
| setValueAtTime(1, 0.0078125) did not throw an exception. | PASS |
| setValueAtTime(1, 0.03900146484375) did not throw an exception. | PASS |
| setValueAtTime(5, 0.03900146484375) did not throw an exception. | PASS |
| setValueAtTime(99, 0.0078125) did not throw an exception. | PASS |
| setValueAtTime(99, 0.03900146484375) did not throw an exception. | PASS |
| setValueCurveAtTime([3,4], 0.0234375, 0.0078125) did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Expo + Linear] All assertions passed. (total 6 assertions) | PASS |
| < [Insert same event at same time] All assertions passed. (total 15 assertions) | PASS |
| < [Linear + Expo] All assertions passed. (total 6 assertions) | PASS |
| < [Linear + SetTarget] All assertions passed. (total 7 assertions) | PASS |
| > [Expo + Linear] Different events at same time | PASS |
| > [Insert same event at same time] | PASS |
| > [Linear + Expo] Different events at same time | PASS |
| > [Linear + SetTarget] Different events at same time | PASS |
| /webaudio/the-audio-api/the-audiobuffersourcenode-interface/ctor-audiobuffersource.html (38/38, 100.00%, 0.77% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new AudioBufferSourceNode() threw TypeError: "Not enough arguments to AudioBufferSourceNode.". | PASS |
| new AudioBufferSourceNode(1) threw TypeError: "Argument 1 of AudioBufferSourceNode.constructor is not an object.". | PASS |
| new AudioBufferSourceNode(context, 42) threw TypeError: "Argument 2 of AudioBufferSourceNode.constructor can't be converted to a dictionary.". | PASS |
| node = new AudioBufferSourceNode(c, {"buffer":{},"detune":0.5,"loop":true,"loopEnd":0.010416666666666666,"loopStart":0.00010416666666666667,"playbackRate":0.75}) did not throw an exception. | PASS |
| node0 = new AudioBufferSourceNode(context) did not throw an exception. | PASS |
| node0 instanceof AudioBufferSourceNode is equal to true. | PASS |
| node0.buffer is equal to null. | PASS |
| node0.channelCount is equal to 2. | PASS |
| node0.channelCountMode is equal to max. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.detune.value is equal to 0. | PASS |
| node0.loop is equal to false. | PASS |
| node0.loopEnd is equal to 0. | PASS |
| node0.loopStart is equal to 0. | PASS |
| node0.numberOfInputs is equal to 0. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node0.playbackRate.value is equal to 1. | PASS |
| node1 = new AudioBufferSourceNode(c, {"buffer":null} did not throw an exception. | PASS |
| node1.buffer is equal to null. | PASS |
| node2.buffer === buffer is equal to true. | PASS |
| node2.detune.value is equal to 0.5. | PASS |
| node2.loop is equal to true. | PASS |
| node2.loopEnd is equal to 0.010416666666666666. | PASS |
| node2.loopStart is equal to 0.00010416666666666667. | PASS |
| node2.playbackRate.value is equal to 0.75. | PASS |
| # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [constructor options] All assertions passed. (total 7 assertions) | PASS |
| < [default constructor] All assertions passed. (total 13 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [nullable buffer] All assertions passed. (total 2 assertions) | PASS |
| > [constructor options] | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [nullable buffer] | PASS |
| /webaudio/the-audio-api/the-pannernode-interface/distance-inverse.html (106/106, 100.00%, 2.14% of total) | OK |
| 0.00007142485992517322 is 0.00007142485524626213 within an error of 0.0000033. | PASS |
| 0.0000721536052878946 is 0.00007215360593004378 within an error of 0.0000033. | PASS |
| 0.00007289737550308928 is 0.00007289738085207445 within an error of 0.0000033. | PASS |
| 0.00007365665078395978 is 0.0000736566494708926 within an error of 0.0000033. | PASS |
| 0.0000744318967917934 is 0.00007443190100963128 within an error of 0.0000033. | PASS |
| 0.00007522365194745362 is 0.0000752236455072146 within an error of 0.0000033. | PASS |
| 0.00007603241101605818 is 0.0000760324149373658 within an error of 0.0000033. | PASS |
| 0.00007685876335017383 is 0.00007685876440058646 within an error of 0.0000033. | PASS |
| 0.00007770327647449449 is 0.0000777032733947189 within an error of 0.0000033. | PASS |
| 0.00007856654701754451 is 0.00007856654717020339 within an error of 0.0000033. | PASS |
| 0.00007944921526359394 is 0.00007944921817669082 within an error of 0.0000033. | PASS |
| 0.00008035194332478568 is 0.00008035194760827667 within an error of 0.0000033. | PASS |
| 0.00008127542969305068 is 0.00008127542705529087 within an error of 0.0000033. | PASS |
| 0.00008222038013627753 is 0.00008222038027131507 within an error of 0.0000033. | PASS |
| 0.0000831875586300157 is 0.00008318756506491622 within an error of 0.0000033. | PASS |
| 0.00008417777280556038 is 0.00008417777532648753 within an error of 0.0000033. | PASS |
| 0.00008519184484612197 is 0.00008519184320159076 within an error of 0.0000033. | PASS |
| 0.00008623064786661416 is 0.00008623064142330383 within an error of 0.0000033. | PASS |
| 0.00008729508408578113 is 0.00008729508581731386 within an error of 0.0000033. | PASS |
| 0.00008838613575790077 is 0.00008838613799486857 within an error of 0.0000033. | PASS |
| 0.00008950480696512386 is 0.00008950480825022975 within an error of 0.0000033. | PASS |
| 0.00009065215999726206 is 0.00009065215868097922 within an error of 0.0000033. | PASS |
| 0.00009182930807583034 is 0.00009182930655143387 within an error of 0.0000033. | PASS |
| 0.0000930374299059622 is 0.00009303742792155874 within an error of 0.0000033. | PASS |
| 0.00009427775512449443 is 0.00009427776156615415 within an error of 0.0000033. | PASS |
| 0.00009555161523167044 is 0.00009555161321177196 within an error of 0.0000033. | PASS |
| 0.00009686036355560645 is 0.00009686036012182393 within an error of 0.0000033. | PASS |
| 0.00009820545528782532 is 0.00009820545606372913 within an error of 0.0000033. | PASS |
| 0.00009958843293134123 is 0.00009958843669576138 within an error of 0.0000033. | PASS |
| 0.00010101093357661739 is 0.00010101092541556044 within an error of 0.0000033. | PASS |
| 0.00010247463796986267 is 0.00010247463971713554 within an error of 0.0000033. | PASS |
| 0.00010398139420431107 is 0.00010398139810869895 within an error of 0.0000033. | PASS |
| 0.00010553312313277274 is 0.0001055331276499139 within an error of 0.0000033. | PASS |
| 0.00010713187657529488 is 0.0001071318721742437 within an error of 0.0000033. | PASS |
| 0.00010877980093937367 is 0.00010877980127016969 within an error of 0.0000033. | PASS |
| 0.00011047922453144565 is 0.0001104792201042672 within an error of 0.0000033. | PASS |
| 0.00011223257752135396 is 0.00011223258017966366 within an error of 0.0000033. | PASS |
| 0.00011404248652979732 is 0.00011404249113547034 within an error of 0.0000033. | PASS |
| 0.00011591173097258434 is 0.0001159117337066233 within an error of 0.0000033. | PASS |
| 0.00011784327944042161 is 0.00011784327397949263 within an error of 0.0000033. | PASS |
| 0.00011984026787104085 is 0.00011984027909696912 within an error of 0.0000033. | PASS |
| 0.00012190613779239357 is 0.00012190613458793458 within an error of 0.0000033. | PASS |
| 0.0001240444544237107 is 0.00012404446352056735 within an error of 0.0000033. | PASS |
| 0.0001262591395061463 is 0.00012625914770742077 within an error of 0.0000033. | PASS |
| 0.0001285543548874557 is 0.0001285543512233631 within an error of 0.0000033. | PASS |
| 0.00013093453890178353 is 0.00013093454653613723 within an error of 0.0000033. | PASS |
| 0.00013340453733690083 is 0.00013340454359453928 within an error of 0.0000033. | PASS |
| 0.00013596951612271369 is 0.00013596952227228016 within an error of 0.0000033. | PASS |
| 0.00013863506319466978 is 0.0001386350686280235 within an error of 0.0000033. | PASS |
| 0.0001414072175975889 is 0.00014140721551575796 within an error of 0.0000033. | PASS |
| 0.0001442924840375781 is 0.0001442924881668536 within an error of 0.0000033. | PASS |
| 0.00014729794929735363 is 0.00014729795546868834 within an error of 0.0000033. | PASS |
| 0.0001504312822362408 is 0.00015043128778808934 within an error of 0.0000033. | PASS |
| 0.0001537008211016655 is 0.00015370082233532315 within an error of 0.0000033. | PASS |
| 0.00015711563173681498 is 0.00015711563724134773 within an error of 0.0000033. | PASS |
| 0.00016068562399595976 is 0.00016068563573421284 within an error of 0.0000033. | PASS |
| 0.00016442163905594498 is 0.00016442164205827313 within an error of 0.0000033. | PASS |
| 0.0001683355076238513 is 0.00016833551109288422 within an error of 0.0000033. | PASS |
| 0.0001724402536638081 is 0.00017244025400894687 within an error of 0.0000033. | PASS |
| 0.00017675016715656966 is 0.0001767501827692215 within an error of 0.0000033. | PASS |
| 0.0001812810660339892 is 0.00018128107685376073 within an error of 0.0000033. | PASS |
| 0.00018605036893859506 is 0.00018605037630348406 within an error of 0.0000033. | PASS |
| 0.00019107740081381053 is 0.00019107740605965677 within an error of 0.0000033. | PASS |
| 0.0001963836548384279 is 0.00019638363768289738 within an error of 0.0000033. | PASS |
| 0.00020199301070533693 is 0.00020199299592548462 within an error of 0.0000033. | PASS |
| 0.00020793221483472735 is 0.00020793221938875033 within an error of 0.0000033. | PASS |
| 0.0002142313023796305 is 0.00021423128673467743 within an error of 0.0000033. | PASS |
| 0.0002209239173680544 is 0.00022092392278720384 within an error of 0.0000033. | PASS |
| 0.00022804820036981255 is 0.00022804820255702685 within an error of 0.0000033. | PASS |
| 0.00023564728326164186 is 0.00023564727603110863 within an error of 0.0000033. | PASS |
| 0.0002437702496536076 is 0.0002437702428669352 within an error of 0.0000033. | PASS |
| 0.0002524732262827456 is 0.0002524732144543359 within an error of 0.0000033. | PASS |
| 0.00026182059082202613 is 0.0002618206119036511 within an error of 0.0000033. | PASS |
| 0.0002718867617659271 is 0.00027188676345445823 within an error of 0.0000033. | PASS |
| 0.0002827578573487699 is 0.0002827578851090863 within an error of 0.0000033. | PASS |
| 0.00029453454772010446 is 0.00029453455621825906 within an error of 0.0000033. | PASS |
| 0.0003073348489124328 is 0.00030733484059099675 within an error of 0.0000033. | PASS |
| 0.00032129825558513403 is 0.000321298258429533 within an error of 0.0000033. | PASS |
| 0.0003365908924024552 is 0.00033659089256258244 within an error of 0.0000033. | PASS |
| 0.0003534120332915336 is 0.0003534120257829606 within an error of 0.0000033. | PASS |
| 0.0003720028616953641 is 0.00037200287308386824 within an error of 0.0000033. | PASS |
| 0.00039265822852030396 is 0.0003926582230242598 within an error of 0.0000033. | PASS |
| 0.0004157421935815364 is 0.00041574218539568777 within an error of 0.0000033. | PASS |
| 0.00044170982437208295 is 0.00044170984057529024 within an error of 0.0000033. | PASS |
| 0.00047113755135796964 is 0.00047113754285008335 within an error of 0.0000033. | PASS |
| 0.0005047661834396422 is 0.0005047662016094025 within an error of 0.0000033. | PASS |
| 0.0005435644998215139 is 0.0005435645231164894 within an error of 0.0000033. | PASS |
| 0.0005888238083571196 is 0.0005888238468344444 within an error of 0.0000033. | PASS |
| 0.000642304599750787 is 0.0006423046636689839 within an error of 0.0000033. | PASS |
| 0.0007064709207043052 is 0.0007064709573249552 within an error of 0.0000033. | PASS |
| 0.0007848805980756879 is 0.0007848805998230096 within an error of 0.0000033. | PASS |
| 0.0008828681893646717 is 0.0008828681780783943 within an error of 0.0000033. | PASS |
| 0.0010088123381137848 is 0.0010088122653996085 within an error of 0.0000033. | PASS |
| 0.0011766677489504218 is 0.0011766678556703624 within an error of 0.0000033. | PASS |
| 0.001411531469784677 is 0.0014115316522338509 within an error of 0.0000033. | PASS |
| 0.001763534382916987 is 0.0017635344702377983 within an error of 0.0000033. | PASS |
| 0.0023494260385632515 is 0.0023494261261472827 within an error of 0.0000033. | PASS |
| 0.003518294310197234 is 0.003518294264038947 within an error of 0.0000033. | PASS |
| 0.007001750636845827 is 0.007001750482092757 within an error of 0.0000033. | PASS |
| 0.7071067690849304 is 0.7071067811865476 within an error of 0.0000033. | PASS |
| Max error in distance gains is less than or equal to 0.0000033. | PASS |
| Number of impulses is equal to 100. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 102 assertions) | PASS |
| > [test] | PASS |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-allpass.html (1/1, 100.00%, 0.02% of total) | TIMEOUT |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-allpass.html | TIMEOUT |
| /webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator.html (8/8, 100.00%, 0.16% of total) | OK |
| # AUDIT TASK RUNNER FINISHED: 2 out of 2 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Oscillator k-rate detune] 1 out of 1 assertions were failed. | FAIL |
| < [Oscillator k-rate frequency] 1 out of 1 assertions were failed. | FAIL |
| > [Oscillator k-rate detune] | PASS |
| > [Oscillator k-rate frequency] | PASS |
| X k-rate detune: Difference between a-rate and k-rate outputs should have contain at least one value different from 0. | FAIL |
| X k-rate frequency: Difference between a-rate and k-rate outputs should have contain at least one value different from 0. | FAIL |
| /webaudio/the-audio-api/the-pannernode-interface/panner-automation-equalpower-stereo.html (8/8, 100.00%, 0.16% of total) | OK |
| Error in left channel gain values is less than or equal to 0.0000013. | PASS |
| Error in right channel gain values is less than or equal to 0.0000013. | PASS |
| Number of impulses found is equal to 100. | PASS |
| Offsets of impulses at the wrong position is identical to the array []. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 4 assertions) | PASS |
| > [test] Equal-power panner model of AudioPannerNode with stereo source | PASS |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass.html (7/7, 100.00%, 0.14% of total) | OK |
| Max error in Highpass filter response is less than or equal to 1.5487e-8. | PASS |
| Number of filters tested is equal to 3. | PASS |
| Number of non-finite values in the rendered output is equal to 0. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 3 assertions) | PASS |
| > [test] Biquad highpass filter | PASS |
| /webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-onended.html (1/1, 100.00%, 0.02% of total) | OK |
| ConstantSourceNode onended event fired | PASS |
| /webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html (1/1, 100.00%, 0.02% of total) | OK |
| Test if MediaElementAudioSourceNode works for cross-origin redirects with "cors" request mode. | FAIL |
| /webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelay.html (5/5, 100.00%, 0.10% of total) | OK |
| Delaying test signal by 1.5 sec was done correctly | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 1 assertions) | PASS |
| > [test] Basic functionality of DelayNode with a non-default max delay time | PASS |
| /webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-sizing.html (41/41, 100.00%, 0.83% of total) | OK |
| Setting fftSize to -1 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 0 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 1 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 1024 did not throw an exception. | PASS |
| Setting fftSize to 1025 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 128 did not throw an exception. | PASS |
| Setting fftSize to 129 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 131072 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 131073 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 16 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 16384 did not throw an exception. | PASS |
| Setting fftSize to 16385 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 17 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 2 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 2048 did not throw an exception. | PASS |
| Setting fftSize to 2049 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 256 did not throw an exception. | PASS |
| Setting fftSize to 257 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 3 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 32 did not throw an exception. | PASS |
| Setting fftSize to 32768 did not throw an exception. | PASS |
| Setting fftSize to 32769 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 33 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 4 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 4096 did not throw an exception. | PASS |
| Setting fftSize to 4097 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 5 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 512 did not throw an exception. | PASS |
| Setting fftSize to 513 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 64 did not throw an exception. | PASS |
| Setting fftSize to 65 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 65536 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 65537 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 8 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 8192 did not throw an exception. | PASS |
| Setting fftSize to 8193 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| Setting fftSize to 9 threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [FFT size test] All assertions passed. (total 37 assertions) | PASS |
| > [FFT size test] Test that re-sizing the FFT arrays does not fail. | PASS |
| /webaudio/the-audio-api/the-channelmergernode-interface/ctor-channelmerger.html (43/43, 100.00%, 0.87% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new ChannelMergerNode() threw TypeError: "Not enough arguments to ChannelMergerNode.". | PASS |
| new ChannelMergerNode(1) threw TypeError: "Argument 1 of ChannelMergerNode.constructor is not an object.". | PASS |
| new ChannelMergerNode(c, {"numberOfInputs":99}) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| new ChannelMergerNode(c, {channelCount: 1}} did not throw an exception. | PASS |
| new ChannelMergerNode(c, {channelCountMode: "explicit"} did not throw an exception. | PASS |
| new ChannelMergerNode(c, {channelInterpretation: "discrete"}) did not throw an exception. | PASS |
| new ChannelMergerNode(c, {channelInterpretation: "foobar"}) threw TypeError: "'channelInterpretation' member of AudioNodeOptions 'foobar' is not a valid value for enumeration ChannelInterpretation.". | PASS |
| new ChannelMergerNode(c, {channelInterpretation: "speakers"}) did not throw an exception. | PASS |
| new ChannelMergerNode(context, 42) threw TypeError: "Value can't be converted to a dictionary.". | PASS |
| node.channelCount is equal to 1. | PASS |
| node.channelCountMode is equal to explicit. | PASS |
| node.channelInterpretation after invalid setter is equal to discrete. | PASS |
| node.channelInterpretation is equal to discrete. | PASS |
| node.channelInterpretation is equal to speakers. | PASS |
| node0 = new ChannelMergerNode(context) did not throw an exception. | PASS |
| node0 instanceof ChannelMergerNode is equal to true. | PASS |
| node0.channelCount is equal to 1. | PASS |
| node0.channelCountMode is equal to explicit. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.numberOfInputs is equal to 6. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node1 = new ChannelMergerNode(context, {"numberOfInputs":3,"numberOfOutputs":9,"channelInterpretation":"discrete"}) did not throw an exception. | PASS |
| node1.channelInterpretation is equal to discrete. | PASS |
| node1.numberOfInputs is equal to 3. | PASS |
| node1.numberOfOutputs is equal to 1. | PASS |
| # AUDIT TASK RUNNER FINISHED: 2 out of 5 tasks were failed. | FAIL |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [constructor options] 2 out of 7 assertions were failed. | FAIL |
| < [default constructor] All assertions passed. (total 7 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [test AudioNodeOptions] 3 out of 13 assertions were failed. | FAIL |
| > [constructor options] | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [test AudioNodeOptions] | PASS |
| X new ChannelMergerNode(c, {"channelCount":3}) did not throw an exception. | FAIL |
| X new ChannelMergerNode(c, {"channelCountMode":"max"}) did not throw an exception. | FAIL |
| X new ChannelMergerNode(c, {channelCount: 2}} did not throw an exception. | FAIL |
| X new ChannelMergerNode(c, {channelCountMode: "clamped-max"}) did not throw an exception. | FAIL |
| X new ChannelMergerNode(c, {channelCountMode: "max"}) did not throw an exception. | FAIL |
| /webaudio/the-audio-api/the-constantsourcenode-interface/ctor-constantsource.html (20/20, 100.00%, 0.40% of total) | OK |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new ConstantSourceNode() threw TypeError: "Not enough arguments to ConstantSourceNode.". | PASS |
| new ConstantSourceNode(1) threw TypeError: "Argument 1 of ConstantSourceNode.constructor is not an object.". | PASS |
| new ConstantSourceNode(context, 42) threw TypeError: "Argument 2 of ConstantSourceNode.constructor can't be converted to a dictionary.". | PASS |
| node0 = new ConstantSourceNode(context) did not throw an exception. | PASS |
| node0 instanceof ConstantSourceNode is equal to true. | PASS |
| node0.channelCount is equal to 2. | PASS |
| node0.channelCountMode is equal to max. | PASS |
| node0.channelInterpretation is equal to speakers. | PASS |
| node0.numberOfInputs is equal to 0. | PASS |
| node0.numberOfOutputs is equal to 1. | PASS |
| node0.offset.value is equal to 1. | PASS |
| # AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [default constructor] All assertions passed. (total 8 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| /webaudio/the-audio-api/the-audioworklet-interface/baseaudiocontext-audioworklet.https.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [Test if AudioWorklet exists] | PASS |
| /webaudio/the-audio-api/the-pannernode-interface/pannernode-basic.html (29/29, 100.00%, 0.58% of total) | ERROR |
| Initialize context and panner did not throw an exception. | PASS |
| inverse is equal to panner.distanceModel. | PASS |
| panner.coneInnerAngle = 240.5 is equal to 240.5. | PASS |
| panner.coneInnerAngle is equal to 360. | PASS |
| panner.coneOuterAngle = 166.5 is equal to 166.5. | PASS |
| panner.coneOuterAngle is equal to 360. | PASS |
| panner.coneOuterGain = 0.25 is equal to 0.25. | PASS |
| panner.coneOuterGain is equal to 0. | PASS |
| panner.maxDistance = 100.5 is equal to 100.5. | PASS |
| panner.maxDistance is equal to 10000. | PASS |
| panner.numberOfInputs is equal to 1. | PASS |
| panner.numberOfOutputs is equal to 1. | PASS |
| panner.orientationX is equal to 1. | PASS |
| panner.orientationY is equal to 0. | PASS |
| panner.orientationZ is equal to 0. | PASS |
| panner.panningModel is equal to equalpower. | PASS |
| panner.positionX is equal to 0. | PASS |
| panner.positionY is equal to 0. | PASS |
| panner.positionZ is equal to 0. | PASS |
| panner.refDistance = 270.5 is equal to 270.5. | PASS |
| panner.refDistance is equal to 1. | PASS |
| panner.rolloffFactor = 0.75 is equal to 0.75. | PASS |
| panner.rolloffFactor is equal to 1. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [basic] All assertions passed. (total 22 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| > [basic] | PASS |
| > [initialize] | PASS |
| > [listener] | PASS |
| /webaudio/the-audio-api/the-biquadfilternode-interface/biquadfilternode-basic.html (27/27, 100.00%, 0.54% of total) | OK |
| Default Q value is equal to 1. | PASS |
| Default filter type is equal to lowpass. | PASS |
| Default frequency value is equal to 350. | PASS |
| Default gain value is equal to 0. | PASS |
| Filter type is is equal to allpass. | PASS |
| Filter type is is equal to bandpass. | PASS |
| Filter type is is equal to highpass. | PASS |
| Filter type is is equal to highshelf. | PASS |
| Filter type is is equal to lowpass. | PASS |
| Filter type is is equal to lowshelf. | PASS |
| Filter type is is equal to notch. | PASS |
| Filter type is is equal to peaking. | PASS |
| Number of inputs is equal to 1. | PASS |
| Number of outputs is equal to 1. | PASS |
| Setting filter.type to (invalid) 99 is not equal to 99. | PASS |
| Setting filter.type to allpass did not throw an exception. | PASS |
| Setting filter.type to bandpass did not throw an exception. | PASS |
| Setting filter.type to highpass did not throw an exception. | PASS |
| Setting filter.type to highshelf did not throw an exception. | PASS |
| Setting filter.type to lowpass did not throw an exception. | PASS |
| Setting filter.type to lowshelf did not throw an exception. | PASS |
| Setting filter.type to notch did not throw an exception. | PASS |
| Setting filter.type to peaking did not throw an exception. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [test] All assertions passed. (total 23 assertions) | PASS |
| > [test] Basic tests for BiquadFilterNode | PASS |
| /webaudio/the-audio-api/the-audionode-interface/audionode-connect-order.html (6/6, 100.00%, 0.12% of total) | OK |
| Connecting nodes did not throw an exception. | PASS |
| OfflineContext startRendering() resolved correctly. | PASS |
| # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [Test connections] All assertions passed. (total 2 assertions) | PASS |
| > [Test connections] AudioNode connection order doesn't trigger assertion errors | PASS |
| /webaudio/the-audio-api/the-audioparam-interface/audioparam-large-endtime.html (2/2, 100.00%, 0.04% of total) | ERROR |
| # AUDIT TASK RUNNER STARTED. | PASS |
| > [linearRamp] | PASS |
| /webaudio/the-audio-api/the-audiobuffer-interface/ctor-audiobuffer.html (54/54, 100.00%, 1.09% of total) | OK |
| AudioBuffer shared between two different contexts correctly | PASS |
| buffer = new AudioBuffer({"numberOfChannels":5,"length":17,"sampleRate":16000}) did not throw an exception. | PASS |
| buffer = new AudioBuffer({length: 1}) threw TypeError: "Missing required 'sampleRate' member of AudioBufferOptions.". | PASS |
| buffer = new AudioBuffer({numberOfChannels: 1} threw TypeError: "Missing required 'length' member of AudioBufferOptions.". | PASS |
| buffer = new AudioBuffer({sampleRate: 48000}) threw TypeError: "Missing required 'length' member of AudioBufferOptions.". | PASS |
| buffer = new AudioBuffer({}) threw TypeError: "Missing required 'length' member of AudioBufferOptions.". | PASS |
| buffer.getChannelData(0) did not throw an exception. | PASS |
| buffer.getChannelData(0) length is equal to 42. | PASS |
| buffer.getChannelData(1) did not throw an exception. | PASS |
| buffer.getChannelData(1) length is equal to 42. | PASS |
| buffer.getChannelData(2) did not throw an exception. | PASS |
| buffer.getChannelData(2) length is equal to 42. | PASS |
| buffer.getChannelData(3) threw IndexSizeError: "Index or size is negative or greater than the allowed amount". | PASS |
| buffer.length is equal to 17. | PASS |
| buffer.length is equal to 42. | PASS |
| buffer.numberOfChannels is equal to 3. | PASS |
| buffer.numberOfChannels is equal to 5. | PASS |
| buffer.sampleRate is equal to 16000. | PASS |
| buffer.sampleRate is equal to 54321. | PASS |
| buffer0 = new AudioBuffer({length: 21, sampleRate: 48000} did not throw an exception. | PASS |
| buffer0.length is equal to 21. | PASS |
| buffer0.numberOfChannels is equal to 1. | PASS |
| buffer0.sampleRate is equal to 48000. | PASS |
| buffer1 = new AudioBuffer({numberOfChannels: 3, length: 1, sampleRate: 48000}) did not throw an exception. | PASS |
| buffer1.length is equal to 1. | PASS |
| buffer1.numberOfChannels is equal to 3. | PASS |
| buffer1.sampleRate is equal to 48000. | PASS |
| c1 result is identical to the array [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16...]. | PASS |
| c2 result is identical to the array [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16...]. | PASS |
| context = new OfflineAudioContext(...) did not throw an exception. | PASS |
| new AudioBuffer() threw TypeError: "Not enough arguments to AudioBuffer.". | PASS |
| new AudioBuffer(1) threw TypeError: "Argument 1 of AudioBuffer.constructor can't be converted to a dictionary.". | PASS |
| new AudioBuffer(Date, 42) threw TypeError: "Missing required 'sampleRate' member of AudioBufferOptions.". | PASS |
| new AudioBuffer({"numberOfChannels":0,"length":1,"sampleRate":16000}) threw NotSupportedError: "Operation is not supported". | PASS |
| new AudioBuffer({"numberOfChannels":1,"length":0,"sampleRate":16000}) threw NotSupportedError: "Operation is not supported". | PASS |
| new AudioBuffer({"numberOfChannels":1,"length":1,"sampleRate":100}) threw NotSupportedError: "Operation is not supported". | PASS |
| new AudioBuffer({"numberOfChannels":3,"length":42,"sampleRate":54321}) did not throw an exception. | PASS |
| new AudioBuffer({"numberOfChannels":99,"length":0,"sampleRate":16000}) threw NotSupportedError: "Operation is not supported". | PASS |
| # AUDIT TASK RUNNER FINISHED: 7 tasks ran successfully. | PASS |
| # AUDIT TASK RUNNER STARTED. | PASS |
| < [default constructor] All assertions passed. (total 4 assertions) | PASS |
| < [initialize] All assertions passed. (total 1 assertions) | PASS |
| < [invalid constructor] All assertions passed. (total 3 assertions) | PASS |
| < [invalid option values] All assertions passed. (total 4 assertions) | PASS |
| < [multiple contexts] All assertions passed. (total 3 assertions) | PASS |
| < [required options] All assertions passed. (total 12 assertions) | PASS |
| < [valid constructor] All assertions passed. (total 11 assertions) | PASS |
| > [default constructor] | PASS |
| > [initialize] | PASS |
| > [invalid constructor] | PASS |
| > [invalid option values] | PASS |
| > [multiple contexts] | PASS |
| > [required options] | PASS |
| > [valid constructor] | PASS |