webaudio: All Results

Test files: 174; Total subtests: 4961

Test Files

  1. /webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions.html
  2. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-notch.html
  3. /webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions.html
  4. /webaudio/the-audio-api/the-analysernode-interface/ctor-analyser.html
  5. /webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer.html
  6. /webaudio/the-audio-api/the-iirfilternode-interface/test-iirfilternode.html
  7. /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam.https.html
  8. /webaudio/the-audio-api/the-convolvernode-interface/convolver-cascade.html
  9. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https.html
  10. /webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-basic.html
  11. /webaudio/the-audio-api/the-delaynode-interface/delaynode-scheduling.html
  12. /webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit.html
  13. /webaudio/the-audio-api/the-waveshapernode-interface/ctor-waveshaper.html
  14. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/sample-accurate-scheduling.html
  15. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-time-limits.html
  16. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start.html
  17. /webaudio/the-audio-api/the-pannernode-interface/panner-automation-position.html
  18. /webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect.html
  19. /webaudio/the-audio-api/the-audioparam-interface/audioparam-exceptional-values.html
  20. /webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html
  21. /webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting.html
  22. /webaudio/the-audio-api/the-audioparam-interface/audioparam-linearRampToValueAtTime.html
  23. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-peaking.html
  24. /webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurveAtTime.html
  25. /webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining.html
  26. /webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain.html
  27. /webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-getChannelData.html
  28. /webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-reuse.html
  29. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling.html
  30. /webaudio/the-audio-api/the-stereopanner-interface/ctor-stereopanner.html
  31. /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-getoutputtimestamp.html
  32. /webaudio/the-audio-api/the-iirfilternode-interface/iirfilter.html
  33. /webaudio/historical.html
  34. /webaudio/the-audio-api/the-audioparam-interface/k-rate-delay.html
  35. /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-4-chan.html
  36. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-constructor-options.https.html
  37. /webaudio/the-audio-api/the-dynamicscompressornode-interface/ctor-dynamicscompressor.html
  38. /webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html
  39. /webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic.html
  40. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-channel-count.https.html
  41. /webaudio/the-audio-api/the-gainnode-interface/gain-basic.html
  42. /webaudio/the-audio-api/the-audionode-interface/audionode.html
  43. /webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html
  44. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowpass.html
  45. /webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueAtTime.html
  46. /webaudio/the-audio-api/the-gainnode-interface/gain.html
  47. /webaudio/the-audio-api/the-waveshapernode-interface/waveshaper.html
  48. /webaudio/the-audio-api/the-audionode-interface/audionode-connect-return-value.html
  49. /webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueCurveAtTime.html
  50. /webaudio/the-audio-api/the-pannernode-interface/panner-equalpower-stereo.html
  51. /webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad.html
  52. /webaudio/the-audio-api/the-audioparam-interface/retrospective-exponentialRampToValueAtTime.html
  53. /webaudio/the-audio-api/the-audioparam-interface/retrospective-linearRampToValueAtTime.html
  54. /webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html
  55. /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume.html
  56. /webaudio/the-audio-api/the-audionode-interface/channel-mode-interp-basic.html
  57. /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-messageport.https.html
  58. /webaudio/the-audio-api/the-dynamicscompressornode-interface/dynamicscompressor-basic.html
  59. /webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode.html
  60. /webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html
  61. /webaudio/idlharness.https.window.html
  62. /webaudio/the-audio-api/the-pannernode-interface/panner-equalpower.html
  63. /webaudio/the-audio-api/the-gainnode-interface/ctor-gain.html
  64. /webaudio/the-audio-api/the-audioparam-interface/k-rate-panner.html
  65. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse.html
  66. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-zero.html
  67. /webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner.html
  68. /webaudio/the-audio-api/the-convolvernode-interface/convolver-setBuffer-already-has-value.html
  69. /webaudio/the-audio-api/the-pannernode-interface/panner-rolloff-clamping.html
  70. /webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic.html
  71. /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan.html
  72. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/note-grain-on-play.html
  73. /webaudio/the-audio-api/the-pannernode-interface/distance-exponential.html
  74. /webaudio/the-audio-api/the-convolvernode-interface/convolver-setBuffer-null.html
  75. /webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple.html
  76. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-construction.https.html
  77. /webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html
  78. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-basic.html
  79. /webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html
  80. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html
  81. /webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext.html
  82. /webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html
  83. /webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size.html
  84. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-grain.html
  85. /webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet.https.html
  86. /webaudio/the-audio-api/the-audioparam-interface/audioparam-summingjunction.html
  87. /webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block.html
  88. /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html
  89. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop.html
  90. /webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html
  91. /webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html
  92. /webaudio/the-audio-api/the-waveshapernode-interface/silent-inputs.html
  93. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highshelf.html
  94. /webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation.html
  95. /webaudio/the-audio-api/the-oscillatornode-interface/ctor-oscillator.html
  96. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-disconnected-input.https.html
  97. /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-size.https.html
  98. /webaudio/the-audio-api/the-pannernode-interface/ctor-panner.html
  99. /webaudio/the-audio-api/the-audioparam-interface/audioparam-setTargetAtTime.html
  100. /webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1.html
  101. /webaudio/the-audio-api/the-delaynode-interface/no-dezippering.html
  102. /webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html
  103. /webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam.html
  104. /webaudio/the-audio-api/the-convolvernode-interface/ctor-convolver.html
  105. /webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-output.html
  106. /webaudio/the-audio-api/the-convolvernode-interface/convolution-mono-mono.html
  107. /webaudio/the-audio-api/the-channelsplitternode-interface/ctor-channelsplitter.html
  108. /webaudio/the-audio-api/the-audioparam-interface/retrospective-setTargetAtTime.html
  109. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-onended.html
  110. /webaudio/the-audio-api/the-delaynode-interface/delaynode-max-nondefault-delay.html
  111. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https.html
  112. /webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.html
  113. /webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source.html
  114. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-bandpass.html
  115. /webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html
  116. /webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits.html
  117. /webaudio/the-audio-api/the-gainnode-interface/no-dezippering.html
  118. /webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering.html
  119. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-automatic-pull.https.html
  120. /webaudio/the-audio-api/the-audionode-interface/audionode-disconnect.html
  121. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail.html
  122. /webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block.html
  123. /webaudio/the-audio-api/the-audioparam-interface/automation-rate.html
  124. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-ended.html
  125. /webaudio/the-audio-api/the-biquadfilternode-interface/ctor-biquadfilter.html
  126. /webaudio/the-audio-api/the-pannernode-interface/distance-linear.html
  127. /webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-getFrequencyResponse.html
  128. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html
  129. /webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html
  130. /webaudio/the-audio-api/the-iirfilternode-interface/ctor-iirfilter.html
  131. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-basic.html
  132. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-channels.html
  133. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-automation.html
  134. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/note-grain-on-timing.html
  135. /webaudio/the-audio-api/the-audioparam-interface/k-rate-gain.html
  136. /webaudio/the-audio-api/the-audioparam-interface/audioparam-exponentialRampToValueAtTime.html
  137. /webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-basic.html
  138. /webaudio/the-audio-api/the-audioworklet-interface/audioworklet-addmodule-resolution.https.html
  139. /webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html
  140. /webaudio/the-audio-api/the-delaynode-interface/ctor-delay.html
  141. /webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping.html
  142. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowshelf.html
  143. /webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input.html
  144. /webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining.html
  145. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-onerror.https.html
  146. /webaudio/the-audio-api/the-convolvernode-interface/convolver-channels.html
  147. /webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-non-default.html
  148. /webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter.html
  149. /webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html
  150. /webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-basic.html
  151. /webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https.html
  152. /webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html
  153. /webaudio/the-audio-api/the-delaynode-interface/delaynode.html
  154. /webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-basic.html
  155. /webaudio/the-audio-api/the-audionode-interface/audionode-channel-rules.html
  156. /webaudio/the-audio-api/the-audioparam-interface/event-insertion.html
  157. /webaudio/the-audio-api/the-audiobuffersourcenode-interface/ctor-audiobuffersource.html
  158. /webaudio/the-audio-api/the-pannernode-interface/distance-inverse.html
  159. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-allpass.html
  160. /webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator.html
  161. /webaudio/the-audio-api/the-pannernode-interface/panner-automation-equalpower-stereo.html
  162. /webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass.html
  163. /webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-onended.html
  164. /webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html
  165. /webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelay.html
  166. /webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-sizing.html
  167. /webaudio/the-audio-api/the-channelmergernode-interface/ctor-channelmerger.html
  168. /webaudio/the-audio-api/the-constantsourcenode-interface/ctor-constantsource.html
  169. /webaudio/the-audio-api/the-audioworklet-interface/baseaudiocontext-audioworklet.https.html
  170. /webaudio/the-audio-api/the-pannernode-interface/pannernode-basic.html
  171. /webaudio/the-audio-api/the-biquadfilternode-interface/biquadfilternode-basic.html
  172. /webaudio/the-audio-api/the-audionode-interface/audionode-connect-order.html
  173. /webaudio/the-audio-api/the-audioparam-interface/audioparam-large-endtime.html
  174. /webaudio/the-audio-api/the-audiobuffer-interface/ctor-audiobuffer.html
Test Show/Hide MessagesFF64
/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions.htmlOK
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.htmlOK
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 filterPASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions.htmlOK
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.htmlOK
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.htmlOK
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.htmlOK
IIRFilterNode coefficients are checked properlyPASS
IIRFilterNode getFrequencyResponse handles invalid frequencies properlyPASS
at least one feedforward coefficient must be non-zeroPASS
feedback coefficients can not be emptyPASS
feedforward coefficients can not be emptyPASS
more than 20 feedback coefficients can not be usedPASS
more than 20 feedforward coefficients can not be usedPASS
the first feedback coefficient must be non-zeroPASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam.https.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [Initializing AudioWorklet and Context] PASS
/webaudio/the-audio-api/the-convolvernode-interface/convolver-cascade.htmlOK
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 convolversPASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https.htmlOK
Test currentTime and currentFrame in AudioWorkletGlobalScope FAIL
/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-basic.htmlOK
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.htmlTIMEOUT
/webaudio/the-audio-api/the-delaynode-interface/delaynode-scheduling.htmlTIMEOUT
/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit.htmlOK
Delaying test signal by 0.5 sec was done correctlyPASS
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 DelayNodePASS
/webaudio/the-audio-api/the-waveshapernode-interface/ctor-waveshaper.htmlOK
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.htmlOK
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 schedulingPASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-time-limits.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [buffersource: huge stop time] PASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start.htmlOK
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.htmlTIMEOUT
# AUDIT TASK RUNNER STARTED.PASS
> [0: 1-channel inverse rolloff: 1] PASS
/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [silent-disconnect] PASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-exceptional-values.htmlOK
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 valuesPASS
> [special cases 2] Test special cases for expeonentialRampPASS
> [test setValueCurve] Test non-finite arguments for setValueCurveAtTimePASS
> [test time] Test non-finite arguments for AudioParam timePASS
> [test value] Test non-finite arguments for AudioParam valuePASS
/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.htmlERROR
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.htmlOK
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 NyquistPASS
> [detune limits] Oscillator with detune and frequency at Nyquist or abovePASS
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.htmlOK
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() functionalityPASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-peaking.htmlOK
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 filterPASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurveAtTime.htmlOK
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.htmlERROR
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.htmlOK
Test effect of AnalyserNode on GainNode outputPASS
/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-getChannelData.htmlOK
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.htmlOK
AudioBuffer can be reused between AudioBufferSourceNodesPASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling.htmlOK
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 ratePASS
/webaudio/the-audio-api/the-stereopanner-interface/ctor-stereopanner.htmlOK
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.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [getoutputtimestamp-initial-values] PASS
/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter.htmlOK
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.htmlOK
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 existPASS
webkitAudioPannerNode interface should not existPASS
webkitOfflineAudioContext interface should not existPASS
/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay.htmlOK
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.htmlTIMEOUT
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 outputPASS
> [2-channel input] produces 2-channel outputPASS
> [3-channel input] 3->2 downmix producing 2-channel outputPASS
> [4-channel input] 4->2 downmix producing 2-channel outputPASS
> [5.1-channel input] 5.1->2 downmix producing 2-channel outputPASS
> [delayed buffer set] Delayed set of 4-channel responsePASS
> [initialize] Convolver response with one channelPASS
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.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [setup] PASS
/webaudio/the-audio-api/the-dynamicscompressornode-interface/ctor-dynamicscompressor.htmlOK
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.htmlOK
All data processed correctlyFAIL
Channel 0 processed some dataPASS
Element Source tests completedPASS
/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic.htmlOK
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.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [setup-buffer-and-worklet] PASS
/webaudio/the-audio-api/the-gainnode-interface/gain-basic.htmlOK
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.htmlOK
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.htmlOK
discretePASS
speakers, initially monoPASS
speakers, initially stereoPASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowpass.htmlOK
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 filterPASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueAtTime.htmlOK
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.htmlOK
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 testPASS
> [test] GainNode functionalityPASS
/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper.htmlOK
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.htmlOK
connect should return the node connected to.PASS
/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueCurveAtTime.htmlTIMEOUT
/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueCurveAtTime.htmlTIMEOUT
/webaudio/the-audio-api/the-pannernode-interface/panner-equalpower-stereo.htmlOK
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 sourcePASS
/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad.htmlOK
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.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [test] Test exponentialRampToValue with end time in the pastPASS
/webaudio/the-audio-api/the-audioparam-interface/retrospective-linearRampToValueAtTime.htmlTIMEOUT
/webaudio/the-audio-api/the-audioparam-interface/retrospective-linearRampToValueAtTime.htmlTIMEOUT
/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.htmlOK
Test AnalyserNode when the input is silentPASS
/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume.htmlERROR
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 contextPASS
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.htmlOK
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.htmlOK
Test MessagePort in AudioWorkletNode and AudioWorkletProcessor FAIL
/webaudio/the-audio-api/the-dynamicscompressornode-interface/dynamicscompressor-basic.htmlOK
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 APIPASS
/webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode.htmlOK
ConstantSourceNode can be constructedPASS
ConstantSourceNode onended eventPASS
ConstantSourceNode start and stop when workPASS
ConstantSourceNode stop and startPASS
ConstantSourceNode with automationPASS
ConstantSourceNode with no automationPASS
/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.htmlOK
Delaying test signal by 1 sec was done correctlyPASS
# 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 delayPASS
/webaudio/idlharness.https.window.htmlOK
AnalyserNode interface object lengthPASS
AnalyserNode interface object namePASS
AnalyserNode interface: attribute fftSizePASS
AnalyserNode interface: attribute frequencyBinCountPASS
AnalyserNode interface: attribute maxDecibelsPASS
AnalyserNode interface: attribute minDecibelsPASS
AnalyserNode interface: attribute smoothingTimeConstantPASS
AnalyserNode interface: calling getByteFrequencyData(Uint8Array) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AnalyserNode interface: calling getByteTimeDomainData(Uint8Array) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AnalyserNode interface: calling getFloatFrequencyData(Float32Array) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AnalyserNode interface: calling getFloatTimeDomainData(Float32Array) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AnalyserNode interface: existence and properties of interface objectPASS
AnalyserNode interface: existence and properties of interface prototype objectPASS
AnalyserNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
AnalyserNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "fftSize" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "frequencyBinCount" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "getByteFrequencyData(Uint8Array)" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "getByteTimeDomainData(Uint8Array)" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "getFloatFrequencyData(Float32Array)" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "getFloatTimeDomainData(Float32Array)" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "maxDecibels" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "minDecibels" with the proper typePASS
AnalyserNode interface: new AnalyserNode(context) must inherit property "smoothingTimeConstant" with the proper typePASS
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 lengthPASS
AudioBuffer interface object namePASS
AudioBuffer interface: attribute durationPASS
AudioBuffer interface: attribute lengthPASS
AudioBuffer interface: attribute numberOfChannelsPASS
AudioBuffer interface: attribute sampleRatePASS
AudioBuffer interface: buffer must inherit property "copyFromChannel(Float32Array, unsigned long, unsigned long)" with the proper typePASS
AudioBuffer interface: buffer must inherit property "copyToChannel(Float32Array, unsigned long, unsigned long)" with the proper typePASS
AudioBuffer interface: buffer must inherit property "duration" with the proper typePASS
AudioBuffer interface: buffer must inherit property "getChannelData(unsigned long)" with the proper typePASS
AudioBuffer interface: buffer must inherit property "length" with the proper typePASS
AudioBuffer interface: buffer must inherit property "numberOfChannels" with the proper typePASS
AudioBuffer interface: buffer must inherit property "sampleRate" with the proper typePASS
AudioBuffer interface: calling copyFromChannel(Float32Array, unsigned long, unsigned long) on buffer with too few arguments must throw TypeErrorPASS
AudioBuffer interface: calling copyToChannel(Float32Array, unsigned long, unsigned long) on buffer with too few arguments must throw TypeErrorPASS
AudioBuffer interface: calling getChannelData(unsigned long) on buffer with too few arguments must throw TypeErrorPASS
AudioBuffer interface: existence and properties of interface objectPASS
AudioBuffer interface: existence and properties of interface prototype objectPASS
AudioBuffer interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioBuffer interface: existence and properties of interface prototype object's @@unscopables propertyPASS
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 bufferPASS
AudioBufferSourceNode interface object lengthPASS
AudioBufferSourceNode interface object namePASS
AudioBufferSourceNode interface: attribute bufferPASS
AudioBufferSourceNode interface: attribute detunePASS
AudioBufferSourceNode interface: attribute loopPASS
AudioBufferSourceNode interface: attribute loopEndPASS
AudioBufferSourceNode interface: attribute loopStartPASS
AudioBufferSourceNode interface: attribute playbackRatePASS
AudioBufferSourceNode interface: calling start(double, double, double) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioBufferSourceNode interface: existence and properties of interface objectPASS
AudioBufferSourceNode interface: existence and properties of interface prototype objectPASS
AudioBufferSourceNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioBufferSourceNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "buffer" with the proper typePASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "detune" with the proper typePASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "loop" with the proper typePASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "loopEnd" with the proper typePASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "loopStart" with the proper typePASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "playbackRate" with the proper typePASS
AudioBufferSourceNode interface: new AudioBufferSourceNode(context) must inherit property "start(double, double, double)" with the proper typePASS
AudioBufferSourceNode interface: operation start(double, double, double)PASS
AudioBufferSourceNode must be primary interface of new AudioBufferSourceNode(context)PASS
AudioContext interface object lengthPASS
AudioContext interface object namePASS
AudioContext interface: attribute baseLatencyFAIL
AudioContext interface: attribute outputLatencyFAIL
AudioContext interface: calling createMediaElementSource(HTMLMediaElement) on context with too few arguments must throw TypeErrorPASS
AudioContext interface: calling createMediaStreamSource(MediaStream) on context with too few arguments must throw TypeErrorPASS
AudioContext interface: calling createMediaStreamTrackSource(MediaStreamTrack) on context with too few arguments must throw TypeErrorFAIL
AudioContext interface: context must inherit property "baseLatency" with the proper typeFAIL
AudioContext interface: context must inherit property "close()" with the proper typePASS
AudioContext interface: context must inherit property "createMediaElementSource(HTMLMediaElement)" with the proper typePASS
AudioContext interface: context must inherit property "createMediaStreamDestination()" with the proper typePASS
AudioContext interface: context must inherit property "createMediaStreamSource(MediaStream)" with the proper typePASS
AudioContext interface: context must inherit property "createMediaStreamTrackSource(MediaStreamTrack)" with the proper typeFAIL
AudioContext interface: context must inherit property "getOutputTimestamp()" with the proper typeFAIL
AudioContext interface: context must inherit property "outputLatency" with the proper typeFAIL
AudioContext interface: context must inherit property "resume()" with the proper typePASS
AudioContext interface: context must inherit property "suspend()" with the proper typePASS
AudioContext interface: existence and properties of interface objectPASS
AudioContext interface: existence and properties of interface prototype objectPASS
AudioContext interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioContext interface: existence and properties of interface prototype object's @@unscopables propertyPASS
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 contextPASS
AudioDestinationNode interface object lengthPASS
AudioDestinationNode interface object namePASS
AudioDestinationNode interface: attribute maxChannelCountPASS
AudioDestinationNode interface: context.destination must inherit property "maxChannelCount" with the proper typePASS
AudioDestinationNode interface: existence and properties of interface objectPASS
AudioDestinationNode interface: existence and properties of interface prototype objectPASS
AudioDestinationNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioDestinationNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioDestinationNode must be primary interface of context.destinationPASS
AudioListener interface object lengthPASS
AudioListener interface object namePASS
AudioListener interface: attribute forwardXFAIL
AudioListener interface: attribute forwardYFAIL
AudioListener interface: attribute forwardZFAIL
AudioListener interface: attribute positionXFAIL
AudioListener interface: attribute positionYFAIL
AudioListener interface: attribute positionZFAIL
AudioListener interface: attribute upXFAIL
AudioListener interface: attribute upYFAIL
AudioListener interface: attribute upZFAIL
AudioListener interface: calling setOrientation(float, float, float, float, float, float) on context.listener with too few arguments must throw TypeErrorPASS
AudioListener interface: calling setPosition(float, float, float) on context.listener with too few arguments must throw TypeErrorPASS
AudioListener interface: context.listener must inherit property "forwardX" with the proper typeFAIL
AudioListener interface: context.listener must inherit property "forwardY" with the proper typeFAIL
AudioListener interface: context.listener must inherit property "forwardZ" with the proper typeFAIL
AudioListener interface: context.listener must inherit property "positionX" with the proper typeFAIL
AudioListener interface: context.listener must inherit property "positionY" with the proper typeFAIL
AudioListener interface: context.listener must inherit property "positionZ" with the proper typeFAIL
AudioListener interface: context.listener must inherit property "setOrientation(float, float, float, float, float, float)" with the proper typePASS
AudioListener interface: context.listener must inherit property "setPosition(float, float, float)" with the proper typePASS
AudioListener interface: context.listener must inherit property "upX" with the proper typeFAIL
AudioListener interface: context.listener must inherit property "upY" with the proper typeFAIL
AudioListener interface: context.listener must inherit property "upZ" with the proper typeFAIL
AudioListener interface: existence and properties of interface objectPASS
AudioListener interface: existence and properties of interface prototype objectPASS
AudioListener interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioListener interface: existence and properties of interface prototype object's @@unscopables propertyPASS
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.listenerPASS
AudioNode interface object lengthPASS
AudioNode interface object namePASS
AudioNode interface: attribute channelCountPASS
AudioNode interface: attribute channelCountModePASS
AudioNode interface: attribute channelInterpretationPASS
AudioNode interface: attribute contextPASS
AudioNode interface: attribute numberOfInputsPASS
AudioNode interface: attribute numberOfOutputsPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on worklet_node with too few arguments must throw TypeErrorFAIL
AudioNode interface: calling connect(AudioParam, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling connect(AudioParam, unsigned long) on worklet_node with too few arguments must throw TypeErrorFAIL
AudioNode interface: calling disconnect(AudioNode) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode) on worklet_node with too few arguments must throw TypeErrorFAIL
AudioNode interface: calling disconnect(AudioNode, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long) on worklet_node with too few arguments must throw TypeErrorFAIL
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on worklet_node with too few arguments must throw TypeErrorFAIL
AudioNode interface: calling disconnect(AudioParam) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam) on worklet_node with too few arguments must throw TypeErrorFAIL
AudioNode interface: calling disconnect(AudioParam, unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(AudioParam, unsigned long) on worklet_node with too few arguments must throw TypeErrorFAIL
AudioNode interface: calling disconnect(unsigned long) on context.createScriptProcessor() with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on context.destination with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new AnalyserNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new ConvolverNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new DelayNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new DynamicsCompressorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new GainNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new MediaStreamAudioDestinationNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new StereoPannerNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on new WaveShaperNode(context) with too few arguments must throw TypeErrorPASS
AudioNode interface: calling disconnect(unsigned long) on worklet_node with too few arguments must throw TypeErrorFAIL
AudioNode interface: context.createScriptProcessor() must inherit property "channelCount" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "context" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect()" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: context.createScriptProcessor() must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: context.destination must inherit property "channelCount" with the proper typePASS
AudioNode interface: context.destination must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: context.destination must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: context.destination must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: context.destination must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: context.destination must inherit property "context" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect()" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: context.destination must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: context.destination must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: context.destination must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: existence and properties of interface objectPASS
AudioNode interface: existence and properties of interface prototype objectPASS
AudioNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioNode interface: new AnalyserNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new AnalyserNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new AudioBufferSourceNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new BiquadFilterNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new ChannelMergerNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new ChannelSplitterNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new ConstantSourceNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new ConvolverNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new DelayNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new DynamicsCompressorNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new GainNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "context" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "context" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new OscillatorNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new PannerNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new StereoPannerNode(context) must inherit property "numberOfOutputs" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "channelCount" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "channelCountMode" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "channelInterpretation" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "connect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "context" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect()" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioNode)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioParam)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "disconnect(unsigned long)" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "numberOfInputs" with the proper typePASS
AudioNode interface: new WaveShaperNode(context) must inherit property "numberOfOutputs" with the proper typePASS
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 typeFAIL
AudioNode interface: worklet_node must inherit property "channelCountMode" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "channelInterpretation" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "connect(AudioParam, unsigned long)" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "context" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "disconnect()" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "disconnect(AudioNode)" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "disconnect(AudioNode, unsigned long)" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "disconnect(AudioParam)" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "disconnect(AudioParam, unsigned long)" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "disconnect(unsigned long)" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "numberOfInputs" with the proper typeFAIL
AudioNode interface: worklet_node must inherit property "numberOfOutputs" with the proper typeFAIL
AudioParam interface object lengthPASS
AudioParam interface object namePASS
AudioParam interface: attribute automationRateFAIL
AudioParam interface: attribute defaultValuePASS
AudioParam interface: attribute maxValuePASS
AudioParam interface: attribute minValuePASS
AudioParam interface: attribute valuePASS
AudioParam interface: calling cancelAndHoldAtTime(double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorFAIL
AudioParam interface: calling cancelScheduledValues(double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: calling exponentialRampToValueAtTime(float, double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: calling linearRampToValueAtTime(float, double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: calling setTargetAtTime(float, double, float) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: calling setValueAtTime(float, double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: calling setValueCurveAtTime([object Object], double, double) on new AudioBufferSourceNode(context).playbackRate with too few arguments must throw TypeErrorPASS
AudioParam interface: existence and properties of interface objectPASS
AudioParam interface: existence and properties of interface prototype objectPASS
AudioParam interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioParam interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "automationRate" with the proper typeFAIL
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "cancelAndHoldAtTime(double)" with the proper typeFAIL
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "cancelScheduledValues(double)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "defaultValue" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "exponentialRampToValueAtTime(float, double)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "linearRampToValueAtTime(float, double)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "maxValue" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "minValue" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "setTargetAtTime(float, double, float)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "setValueAtTime(float, double)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "setValueCurveAtTime([object Object], double, double)" with the proper typePASS
AudioParam interface: new AudioBufferSourceNode(context).playbackRate must inherit property "value" with the proper typePASS
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).playbackRatePASS
AudioParamMap interface object lengthFAIL
AudioParamMap interface object nameFAIL
AudioParamMap interface: existence and properties of interface objectFAIL
AudioParamMap interface: existence and properties of interface prototype objectFAIL
AudioParamMap interface: existence and properties of interface prototype object's "constructor" propertyFAIL
AudioParamMap interface: existence and properties of interface prototype object's @@unscopables propertyFAIL
AudioParamMap must be primary interface of worklet_node.parametersFAIL
AudioProcessingEvent interface object lengthFAIL
AudioProcessingEvent interface object namePASS
AudioProcessingEvent interface: attribute inputBufferPASS
AudioProcessingEvent interface: attribute outputBufferPASS
AudioProcessingEvent interface: attribute playbackTimePASS
AudioProcessingEvent interface: existence and properties of interface objectPASS
AudioProcessingEvent interface: existence and properties of interface prototype objectPASS
AudioProcessingEvent interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioProcessingEvent interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioProcessingEvent interface: new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer }) must inherit property "inputBuffer" with the proper typeFAIL
AudioProcessingEvent interface: new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer }) must inherit property "outputBuffer" with the proper typeFAIL
AudioProcessingEvent interface: new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer }) must inherit property "playbackTime" with the proper typeFAIL
AudioProcessingEvent must be primary interface of new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer })FAIL
AudioScheduledSourceNode interface object lengthPASS
AudioScheduledSourceNode interface object namePASS
AudioScheduledSourceNode interface: attribute onendedPASS
AudioScheduledSourceNode interface: calling start(double) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioScheduledSourceNode interface: calling start(double) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioScheduledSourceNode interface: calling start(double) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioScheduledSourceNode interface: calling stop(double) on new AudioBufferSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioScheduledSourceNode interface: calling stop(double) on new ConstantSourceNode(context) with too few arguments must throw TypeErrorPASS
AudioScheduledSourceNode interface: calling stop(double) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
AudioScheduledSourceNode interface: existence and properties of interface objectPASS
AudioScheduledSourceNode interface: existence and properties of interface prototype objectPASS
AudioScheduledSourceNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
AudioScheduledSourceNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
AudioScheduledSourceNode interface: new AudioBufferSourceNode(context) must inherit property "onended" with the proper typePASS
AudioScheduledSourceNode interface: new AudioBufferSourceNode(context) must inherit property "start(double)" with the proper typePASS
AudioScheduledSourceNode interface: new AudioBufferSourceNode(context) must inherit property "stop(double)" with the proper typePASS
AudioScheduledSourceNode interface: new ConstantSourceNode(context) must inherit property "onended" with the proper typePASS
AudioScheduledSourceNode interface: new ConstantSourceNode(context) must inherit property "start(double)" with the proper typePASS
AudioScheduledSourceNode interface: new ConstantSourceNode(context) must inherit property "stop(double)" with the proper typePASS
AudioScheduledSourceNode interface: new OscillatorNode(context) must inherit property "onended" with the proper typePASS
AudioScheduledSourceNode interface: new OscillatorNode(context) must inherit property "start(double)" with the proper typePASS
AudioScheduledSourceNode interface: new OscillatorNode(context) must inherit property "stop(double)" with the proper typePASS
AudioScheduledSourceNode interface: operation start(double)PASS
AudioScheduledSourceNode interface: operation stop(double)PASS
AudioWorklet interface object lengthFAIL
AudioWorklet interface object nameFAIL
AudioWorklet interface: existence and properties of interface objectFAIL
AudioWorklet interface: existence and properties of interface prototype objectFAIL
AudioWorklet interface: existence and properties of interface prototype object's "constructor" propertyFAIL
AudioWorklet interface: existence and properties of interface prototype object's @@unscopables propertyFAIL
AudioWorklet must be primary interface of context.audioWorkletFAIL
AudioWorkletGlobalScope interface: existence and properties of interface objectPASS
AudioWorkletNode interface object lengthFAIL
AudioWorkletNode interface object nameFAIL
AudioWorkletNode interface: attribute onprocessorerrorFAIL
AudioWorkletNode interface: attribute parametersFAIL
AudioWorkletNode interface: attribute portFAIL
AudioWorkletNode interface: existence and properties of interface objectFAIL
AudioWorkletNode interface: existence and properties of interface prototype objectFAIL
AudioWorkletNode interface: existence and properties of interface prototype object's "constructor" propertyFAIL
AudioWorkletNode interface: existence and properties of interface prototype object's @@unscopables propertyFAIL
AudioWorkletNode interface: worklet_node must inherit property "onprocessorerror" with the proper typeFAIL
AudioWorkletNode interface: worklet_node must inherit property "parameters" with the proper typeFAIL
AudioWorkletNode interface: worklet_node must inherit property "port" with the proper typeFAIL
AudioWorkletNode must be primary interface of worklet_nodeFAIL
AudioWorkletProcessor interface: existence and properties of interface objectPASS
BaseAudioContext interface object lengthPASS
BaseAudioContext interface object namePASS
BaseAudioContext interface: attribute audioWorkletFAIL
BaseAudioContext interface: attribute currentTimePASS
BaseAudioContext interface: attribute destinationPASS
BaseAudioContext interface: attribute listenerPASS
BaseAudioContext interface: attribute onstatechangePASS
BaseAudioContext interface: attribute sampleRatePASS
BaseAudioContext interface: attribute statePASS
BaseAudioContext interface: calling createBuffer(unsigned long, unsigned long, float) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createBuffer(unsigned long, unsigned long, float) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createChannelMerger(unsigned long) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createChannelMerger(unsigned long) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createChannelSplitter(unsigned long) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createChannelSplitter(unsigned long) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createDelay(double) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createDelay(double) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createIIRFilter([object Object], [object Object]) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createIIRFilter([object Object], [object Object]) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createScriptProcessor(unsigned long, unsigned long, unsigned long) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling createScriptProcessor(unsigned long, unsigned long, unsigned long) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback) on context with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: calling decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorPASS
BaseAudioContext interface: context must inherit property "audioWorklet" with the proper typeFAIL
BaseAudioContext interface: context must inherit property "createAnalyser()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createBiquadFilter()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createBuffer(unsigned long, unsigned long, float)" with the proper typePASS
BaseAudioContext interface: context must inherit property "createBufferSource()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createChannelMerger(unsigned long)" with the proper typePASS
BaseAudioContext interface: context must inherit property "createChannelSplitter(unsigned long)" with the proper typePASS
BaseAudioContext interface: context must inherit property "createConstantSource()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createConvolver()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createDelay(double)" with the proper typePASS
BaseAudioContext interface: context must inherit property "createDynamicsCompressor()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createGain()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createIIRFilter([object Object], [object Object])" with the proper typePASS
BaseAudioContext interface: context must inherit property "createOscillator()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createPanner()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints)" with the proper typePASS
BaseAudioContext interface: context must inherit property "createScriptProcessor(unsigned long, unsigned long, unsigned long)" with the proper typePASS
BaseAudioContext interface: context must inherit property "createStereoPanner()" with the proper typePASS
BaseAudioContext interface: context must inherit property "createWaveShaper()" with the proper typePASS
BaseAudioContext interface: context must inherit property "currentTime" with the proper typePASS
BaseAudioContext interface: context must inherit property "decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback)" with the proper typePASS
BaseAudioContext interface: context must inherit property "destination" with the proper typePASS
BaseAudioContext interface: context must inherit property "listener" with the proper typePASS
BaseAudioContext interface: context must inherit property "onstatechange" with the proper typePASS
BaseAudioContext interface: context must inherit property "sampleRate" with the proper typePASS
BaseAudioContext interface: context must inherit property "state" with the proper typePASS
BaseAudioContext interface: existence and properties of interface objectPASS
BaseAudioContext interface: existence and properties of interface prototype objectPASS
BaseAudioContext interface: existence and properties of interface prototype object's "constructor" propertyPASS
BaseAudioContext interface: existence and properties of interface prototype object's @@unscopables propertyPASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "audioWorklet" with the proper typeFAIL
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createAnalyser()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createBiquadFilter()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createBuffer(unsigned long, unsigned long, float)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createBufferSource()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createChannelMerger(unsigned long)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createChannelSplitter(unsigned long)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createConstantSource()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createConvolver()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createDelay(double)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createDynamicsCompressor()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createGain()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createIIRFilter([object Object], [object Object])" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createOscillator()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createPanner()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createPeriodicWave([object Object], [object Object], PeriodicWaveConstraints)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createScriptProcessor(unsigned long, unsigned long, unsigned long)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createStereoPanner()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "createWaveShaper()" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "currentTime" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "decodeAudioData(ArrayBuffer, DecodeSuccessCallback, DecodeErrorCallback)" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "destination" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "listener" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "onstatechange" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "sampleRate" with the proper typePASS
BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "state" with the proper typePASS
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 lengthPASS
BiquadFilterNode interface object namePASS
BiquadFilterNode interface: attribute QPASS
BiquadFilterNode interface: attribute detunePASS
BiquadFilterNode interface: attribute frequencyPASS
BiquadFilterNode interface: attribute gainPASS
BiquadFilterNode interface: attribute typePASS
BiquadFilterNode interface: calling getFrequencyResponse(Float32Array, Float32Array, Float32Array) on new BiquadFilterNode(context) with too few arguments must throw TypeErrorPASS
BiquadFilterNode interface: existence and properties of interface objectPASS
BiquadFilterNode interface: existence and properties of interface prototype objectPASS
BiquadFilterNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
BiquadFilterNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "Q" with the proper typePASS
BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "detune" with the proper typePASS
BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "frequency" with the proper typePASS
BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "gain" with the proper typePASS
BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "getFrequencyResponse(Float32Array, Float32Array, Float32Array)" with the proper typePASS
BiquadFilterNode interface: new BiquadFilterNode(context) must inherit property "type" with the proper typePASS
BiquadFilterNode interface: operation getFrequencyResponse(Float32Array, Float32Array, Float32Array)PASS
BiquadFilterNode must be primary interface of new BiquadFilterNode(context)PASS
ChannelMergerNode interface object lengthPASS
ChannelMergerNode interface object namePASS
ChannelMergerNode interface: existence and properties of interface objectPASS
ChannelMergerNode interface: existence and properties of interface prototype objectPASS
ChannelMergerNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
ChannelMergerNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
ChannelMergerNode must be primary interface of new ChannelMergerNode(context)PASS
ChannelSplitterNode interface object lengthPASS
ChannelSplitterNode interface object namePASS
ChannelSplitterNode interface: existence and properties of interface objectPASS
ChannelSplitterNode interface: existence and properties of interface prototype objectPASS
ChannelSplitterNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
ChannelSplitterNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
ChannelSplitterNode must be primary interface of new ChannelSplitterNode(context)PASS
ConstantSourceNode interface object lengthPASS
ConstantSourceNode interface object namePASS
ConstantSourceNode interface: attribute offsetPASS
ConstantSourceNode interface: existence and properties of interface objectPASS
ConstantSourceNode interface: existence and properties of interface prototype objectPASS
ConstantSourceNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
ConstantSourceNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
ConstantSourceNode interface: new ConstantSourceNode(context) must inherit property "offset" with the proper typePASS
ConstantSourceNode must be primary interface of new ConstantSourceNode(context)PASS
ConvolverNode interface object lengthPASS
ConvolverNode interface object namePASS
ConvolverNode interface: attribute bufferPASS
ConvolverNode interface: attribute normalizePASS
ConvolverNode interface: existence and properties of interface objectPASS
ConvolverNode interface: existence and properties of interface prototype objectPASS
ConvolverNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
ConvolverNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
ConvolverNode interface: new ConvolverNode(context) must inherit property "buffer" with the proper typePASS
ConvolverNode interface: new ConvolverNode(context) must inherit property "normalize" with the proper typePASS
ConvolverNode must be primary interface of new ConvolverNode(context)PASS
DelayNode interface object lengthPASS
DelayNode interface object namePASS
DelayNode interface: attribute delayTimePASS
DelayNode interface: existence and properties of interface objectPASS
DelayNode interface: existence and properties of interface prototype objectPASS
DelayNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
DelayNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
DelayNode interface: new DelayNode(context) must inherit property "delayTime" with the proper typePASS
DelayNode must be primary interface of new DelayNode(context)PASS
DynamicsCompressorNode interface object lengthPASS
DynamicsCompressorNode interface object namePASS
DynamicsCompressorNode interface: attribute attackPASS
DynamicsCompressorNode interface: attribute kneePASS
DynamicsCompressorNode interface: attribute ratioPASS
DynamicsCompressorNode interface: attribute reductionPASS
DynamicsCompressorNode interface: attribute releasePASS
DynamicsCompressorNode interface: attribute thresholdPASS
DynamicsCompressorNode interface: existence and properties of interface objectPASS
DynamicsCompressorNode interface: existence and properties of interface prototype objectPASS
DynamicsCompressorNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
DynamicsCompressorNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "attack" with the proper typePASS
DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "knee" with the proper typePASS
DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "ratio" with the proper typePASS
DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "reduction" with the proper typePASS
DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "release" with the proper typePASS
DynamicsCompressorNode interface: new DynamicsCompressorNode(context) must inherit property "threshold" with the proper typePASS
DynamicsCompressorNode must be primary interface of new DynamicsCompressorNode(context)PASS
GainNode interface object lengthPASS
GainNode interface object namePASS
GainNode interface: attribute gainPASS
GainNode interface: existence and properties of interface objectPASS
GainNode interface: existence and properties of interface prototype objectPASS
GainNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
GainNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
GainNode interface: new GainNode(context) must inherit property "gain" with the proper typePASS
GainNode must be primary interface of new GainNode(context)PASS
IIRFilterNode interface object lengthPASS
IIRFilterNode interface object namePASS
IIRFilterNode interface: calling getFrequencyResponse(Float32Array, Float32Array, Float32Array) on new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) with too few arguments must throw TypeErrorPASS
IIRFilterNode interface: existence and properties of interface objectPASS
IIRFilterNode interface: existence and properties of interface prototype objectPASS
IIRFilterNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
IIRFilterNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
IIRFilterNode interface: new IIRFilterNode(context, {feedforward: [1], feedback: [1]}) must inherit property "getFrequencyResponse(Float32Array, Float32Array, Float32Array)" with the proper typePASS
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 lengthPASS
MediaElementAudioSourceNode interface object namePASS
MediaElementAudioSourceNode interface: attribute mediaElementFAIL
MediaElementAudioSourceNode interface: existence and properties of interface objectPASS
MediaElementAudioSourceNode interface: existence and properties of interface prototype objectPASS
MediaElementAudioSourceNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
MediaElementAudioSourceNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
MediaElementAudioSourceNode interface: new MediaElementAudioSourceNode(context, {mediaElement: new Audio}) must inherit property "mediaElement" with the proper typeFAIL
MediaElementAudioSourceNode must be primary interface of new MediaElementAudioSourceNode(context, {mediaElement: new Audio})PASS
MediaStreamAudioDestinationNode interface object lengthPASS
MediaStreamAudioDestinationNode interface object namePASS
MediaStreamAudioDestinationNode interface: attribute streamPASS
MediaStreamAudioDestinationNode interface: existence and properties of interface objectPASS
MediaStreamAudioDestinationNode interface: existence and properties of interface prototype objectPASS
MediaStreamAudioDestinationNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
MediaStreamAudioDestinationNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
MediaStreamAudioDestinationNode interface: new MediaStreamAudioDestinationNode(context) must inherit property "stream" with the proper typePASS
MediaStreamAudioDestinationNode must be primary interface of new MediaStreamAudioDestinationNode(context)PASS
MediaStreamAudioSourceNode interface object lengthPASS
MediaStreamAudioSourceNode interface object namePASS
MediaStreamAudioSourceNode interface: attribute mediaStreamFAIL
MediaStreamAudioSourceNode interface: existence and properties of interface objectPASS
MediaStreamAudioSourceNode interface: existence and properties of interface prototype objectPASS
MediaStreamAudioSourceNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
MediaStreamAudioSourceNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
MediaStreamTrackAudioSourceNode interface object lengthFAIL
MediaStreamTrackAudioSourceNode interface object nameFAIL
MediaStreamTrackAudioSourceNode interface: existence and properties of interface objectFAIL
MediaStreamTrackAudioSourceNode interface: existence and properties of interface prototype objectFAIL
MediaStreamTrackAudioSourceNode interface: existence and properties of interface prototype object's "constructor" propertyFAIL
MediaStreamTrackAudioSourceNode interface: existence and properties of interface prototype object's @@unscopables propertyFAIL
OfflineAudioCompletionEvent interface object lengthPASS
OfflineAudioCompletionEvent interface object namePASS
OfflineAudioCompletionEvent interface: attribute renderedBufferPASS
OfflineAudioCompletionEvent interface: existence and properties of interface objectPASS
OfflineAudioCompletionEvent interface: existence and properties of interface prototype objectPASS
OfflineAudioCompletionEvent interface: existence and properties of interface prototype object's "constructor" propertyPASS
OfflineAudioCompletionEvent interface: existence and properties of interface prototype object's @@unscopables propertyPASS
OfflineAudioCompletionEvent interface: new OfflineAudioCompletionEvent("", {renderedBuffer: buffer}) must inherit property "renderedBuffer" with the proper typePASS
OfflineAudioCompletionEvent must be primary interface of new OfflineAudioCompletionEvent("", {renderedBuffer: buffer})PASS
OfflineAudioContext interface object lengthPASS
OfflineAudioContext interface object namePASS
OfflineAudioContext interface: attribute lengthPASS
OfflineAudioContext interface: attribute oncompletePASS
OfflineAudioContext interface: calling suspend(double) on new OfflineAudioContext(1, 1, sample_rate) with too few arguments must throw TypeErrorFAIL
OfflineAudioContext interface: existence and properties of interface objectPASS
OfflineAudioContext interface: existence and properties of interface prototype objectPASS
OfflineAudioContext interface: existence and properties of interface prototype object's "constructor" propertyPASS
OfflineAudioContext interface: existence and properties of interface prototype object's @@unscopables propertyPASS
OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "length" with the proper typePASS
OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "oncomplete" with the proper typePASS
OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "resume()" with the proper typePASS
OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "startRendering()" with the proper typePASS
OfflineAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "suspend(double)" with the proper typeFAIL
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 lengthPASS
OscillatorNode interface object namePASS
OscillatorNode interface: attribute detunePASS
OscillatorNode interface: attribute frequencyPASS
OscillatorNode interface: attribute typePASS
OscillatorNode interface: calling setPeriodicWave(PeriodicWave) on new OscillatorNode(context) with too few arguments must throw TypeErrorPASS
OscillatorNode interface: existence and properties of interface objectPASS
OscillatorNode interface: existence and properties of interface prototype objectPASS
OscillatorNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
OscillatorNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
OscillatorNode interface: new OscillatorNode(context) must inherit property "detune" with the proper typePASS
OscillatorNode interface: new OscillatorNode(context) must inherit property "frequency" with the proper typePASS
OscillatorNode interface: new OscillatorNode(context) must inherit property "setPeriodicWave(PeriodicWave)" with the proper typePASS
OscillatorNode interface: new OscillatorNode(context) must inherit property "type" with the proper typePASS
OscillatorNode interface: operation setPeriodicWave(PeriodicWave)PASS
OscillatorNode must be primary interface of new OscillatorNode(context)PASS
PannerNode interface object lengthPASS
PannerNode interface object namePASS
PannerNode interface: attribute coneInnerAnglePASS
PannerNode interface: attribute coneOuterAnglePASS
PannerNode interface: attribute coneOuterGainPASS
PannerNode interface: attribute distanceModelPASS
PannerNode interface: attribute maxDistancePASS
PannerNode interface: attribute orientationXPASS
PannerNode interface: attribute orientationYPASS
PannerNode interface: attribute orientationZPASS
PannerNode interface: attribute panningModelPASS
PannerNode interface: attribute positionXPASS
PannerNode interface: attribute positionYPASS
PannerNode interface: attribute positionZPASS
PannerNode interface: attribute refDistancePASS
PannerNode interface: attribute rolloffFactorPASS
PannerNode interface: calling setOrientation(float, float, float) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
PannerNode interface: calling setPosition(float, float, float) on new PannerNode(context) with too few arguments must throw TypeErrorPASS
PannerNode interface: existence and properties of interface objectPASS
PannerNode interface: existence and properties of interface prototype objectPASS
PannerNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
PannerNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
PannerNode interface: new PannerNode(context) must inherit property "coneInnerAngle" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "coneOuterAngle" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "coneOuterGain" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "distanceModel" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "maxDistance" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "orientationX" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "orientationY" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "orientationZ" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "panningModel" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "positionX" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "positionY" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "positionZ" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "refDistance" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "rolloffFactor" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "setOrientation(float, float, float)" with the proper typePASS
PannerNode interface: new PannerNode(context) must inherit property "setPosition(float, float, float)" with the proper typePASS
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 lengthPASS
PeriodicWave interface object namePASS
PeriodicWave interface: existence and properties of interface objectPASS
PeriodicWave interface: existence and properties of interface prototype objectPASS
PeriodicWave interface: existence and properties of interface prototype object's "constructor" propertyPASS
PeriodicWave interface: existence and properties of interface prototype object's @@unscopables propertyPASS
PeriodicWave must be primary interface of new PeriodicWave(context)PASS
ScriptProcessorNode interface object lengthPASS
ScriptProcessorNode interface object namePASS
ScriptProcessorNode interface: attribute bufferSizePASS
ScriptProcessorNode interface: attribute onaudioprocessPASS
ScriptProcessorNode interface: context.createScriptProcessor() must inherit property "bufferSize" with the proper typePASS
ScriptProcessorNode interface: context.createScriptProcessor() must inherit property "onaudioprocess" with the proper typePASS
ScriptProcessorNode interface: existence and properties of interface objectPASS
ScriptProcessorNode interface: existence and properties of interface prototype objectPASS
ScriptProcessorNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
ScriptProcessorNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
ScriptProcessorNode must be primary interface of context.createScriptProcessor()PASS
StereoPannerNode interface object lengthPASS
StereoPannerNode interface object namePASS
StereoPannerNode interface: attribute panPASS
StereoPannerNode interface: existence and properties of interface objectPASS
StereoPannerNode interface: existence and properties of interface prototype objectPASS
StereoPannerNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
StereoPannerNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
StereoPannerNode interface: new StereoPannerNode(context) must inherit property "pan" with the proper typePASS
StereoPannerNode must be primary interface of new StereoPannerNode(context)PASS
Stringification of bufferPASS
Stringification of contextPASS
Stringification of context.audioWorkletFAIL
Stringification of context.createScriptProcessor()PASS
Stringification of context.destinationPASS
Stringification of context.listenerPASS
Stringification of new AnalyserNode(context)PASS
Stringification of new AudioBufferSourceNode(context)PASS
Stringification of new AudioBufferSourceNode(context).playbackRatePASS
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_nodeFAIL
Stringification of worklet_node.parametersFAIL
WaveShaperNode interface object lengthPASS
WaveShaperNode interface object namePASS
WaveShaperNode interface: attribute curvePASS
WaveShaperNode interface: attribute oversamplePASS
WaveShaperNode interface: existence and properties of interface objectPASS
WaveShaperNode interface: existence and properties of interface prototype objectPASS
WaveShaperNode interface: existence and properties of interface prototype object's "constructor" propertyPASS
WaveShaperNode interface: existence and properties of interface prototype object's @@unscopables propertyPASS
WaveShaperNode interface: new WaveShaperNode(context) must inherit property "curve" with the proper typePASS
WaveShaperNode interface: new WaveShaperNode(context) must inherit property "oversample" with the proper typePASS
WaveShaperNode must be primary interface of new WaveShaperNode(context)PASS
idl_test setupFAIL
/webaudio/the-audio-api/the-pannernode-interface/panner-equalpower.htmlOK
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 positionPASS
> [stereo source=listener] Source and listener at the same positionPASS
> [test] Equal-power panner model of AudioPannerNodePASS
/webaudio/the-audio-api/the-gainnode-interface/ctor-gain.htmlOK
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.htmlTIMEOUT
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 NaNFAIL
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 NaNFAIL
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.htmlOK
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 valuesPASS
> [test] Biquad frequency responsePASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-zero.htmlOK
# 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.htmlOK
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.htmlOK
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.htmlOK
# 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 modelPASS
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.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [Stereo panner.positionX] PASS
/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan.htmlOK
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 outputPASS
> [2-channel input] produces 2-channel outputPASS
> [3-channel input] 3->2 downmix producing 2-channel outputPASS
> [4-channel input] 4->2 downmix producing 2-channel outputPASS
> [5.1-channel input] 5.1->2 downmix producing 2-channel outputPASS
> [initialize] Convolver response with one channelPASS
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.htmlOK
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 renderingPASS
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+4FAIL
/webaudio/the-audio-api/the-pannernode-interface/distance-exponential.htmlOK
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 PannerNodePASS
/webaudio/the-audio-api/the-convolvernode-interface/convolver-setBuffer-null.htmlOK
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.htmlOK
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.htmlERROR
# 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.htmlOK
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 curvePASS
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.htmlOK
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.htmlOK
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 outputPASS
> [2-channel input] produces 2-channel outputPASS
> [3-channel input] 3->2 downmix producing 2-channel outputPASS
> [4-channel input] 4->2 downmix producing 2-channel outputPASS
> [5.1-channel input] 5.1->2 downmix producing 2-channel outputPASS
> [initialize] Convolver response with one channelPASS
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.htmlTIMEOUT
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.htmlTIMEOUT
/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext.htmlOK
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 constructorPASS
> [options-1] Required optionsPASS
> [options-2] Invalid optionsPASS
> [options-3] Valid optionsPASS
/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.htmlTIMEOUT
/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.htmlTIMEOUT
/webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size.htmlOK
Test currentTime at completion of OfflineAudioContext renderingPASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-grain.htmlOK
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.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [Create Test Worklet] PASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-summingjunction.htmlOK
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.htmlOK
Test setTargetAtTime after an event in the same processing blockPASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.htmlOK
Test passing SharedArrayBuffer to an AudioWorklet FAIL
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop.htmlOK
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.htmlOK
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.htmlOK
AnalyserNode outputPASS
/webaudio/the-audio-api/the-waveshapernode-interface/silent-inputs.htmlOK
# 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 inputsPASS
> [test-1] 2x curve output is non-zero for silent inputsPASS
> [test-2] curve output is non-zero for no inputsPASS
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.htmlOK
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 filterPASS
/webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation.htmlOK
PannerNode AudioParam automation works properlyPASS
/webaudio/the-audio-api/the-oscillatornode-interface/ctor-oscillator.htmlOK
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.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [test] Input array length should be zero for disconnected inputPASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-size.https.htmlTIMEOUT
/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-size.https.htmlTIMEOUT
/webaudio/the-audio-api/the-pannernode-interface/ctor-panner.htmlERROR
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.htmlOK
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.htmlOK
Test that DelayNode output channelCount matches that of the delayed inputPASS
/webaudio/the-audio-api/the-delaynode-interface/no-dezippering.htmlTIMEOUT
/webaudio/the-audio-api/the-delaynode-interface/no-dezippering.htmlTIMEOUT
/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [test mono input] Test StereoPanner with mono input has no dezipperingPASS
/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [disconnect(AudioParam)] PASS
/webaudio/the-audio-api/the-convolvernode-interface/ctor-convolver.htmlOK
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.htmlOK
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.htmlOK
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 correctlyPASS
# 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.htmlOK
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.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [test] Test setTargetAtTime with start time in the pastPASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-onended.htmlOK
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.htmlOK
Delaying test signal by 1.5 sec was done correctlyPASS
# 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 delayPASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [valid-processor-data] PASS
/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [test copying] Modifying curve should not modify WaveShaperPASS
/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source.htmlOK
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.htmlOK
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.htmlOK
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 AnalyserNodePASS
/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits.htmlOK
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.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [test0] Dezippering of GainNode removedPASS
/webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering.htmlERROR
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 frequencyPASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-automatic-pull.https.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [setup-worklet] PASS
/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect.htmlOK
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 correctlyPASS
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.htmlOK
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 OutputPASS
/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block.htmlOK
Test setValueAtTime with start time not on a block boundaryPASS
/webaudio/the-audio-api/the-audioparam-interface/automation-rate.htmlERROR
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.htmlOK
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.htmlOK
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.htmlOK
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 PannerNodePASS
/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-getFrequencyResponse.htmlOK
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 valuesPASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.htmlOK
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 bufferPASS
/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.htmlOK
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.htmlOK
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.htmlOK
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.htmlOK
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 setterPASS
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.htmlOK
# 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.htmlOK
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+4FAIL
/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain.htmlOK
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.htmlOK
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() functionalityPASS
/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-basic.htmlOK
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.htmlTIMEOUT
/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-addmodule-resolution.https.htmlTIMEOUT
/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.htmlOK
Test if MediaElementAudioSourceNode works for cross-origin redirects with "no-cors" request mode. FAIL
/webaudio/the-audio-api/the-delaynode-interface/ctor-delay.htmlOK
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.htmlOK
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.htmlOK
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 filterPASS
/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input.htmlOK
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.htmlOK
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.htmlOK
Test onprocessorerror handler in AudioWorkletNode FAIL
/webaudio/the-audio-api/the-convolvernode-interface/convolver-channels.htmlOK
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.htmlOK
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.htmlOK
Left and right channels were exchanged correctlyPASS
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 ChannelSplitterNodePASS
> [functionality] Functionality of ChannelSplitterNodePASS
/webaudio/the-audio-api/the-analysernode-interface/test-analysernode.htmlOK
Test AnalyserNode APIFAIL
Test AnalyserNode's ctor APIFAIL
/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-basic.htmlOK
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 StereoPannerNodePASS
/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https.htmlOK
Test sampleRate in AudioWorkletGlobalScope FAIL
/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.htmlOK
Test AnalyserNode when the input is scaledPASS
/webaudio/the-audio-api/the-delaynode-interface/delaynode.htmlOK
Delaying test signal by 0.5 sec was done correctlyPASS
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 DelayNodePASS
/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-basic.htmlOK
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.htmlOK
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 AudioNodesPASS
/webaudio/the-audio-api/the-audioparam-interface/event-insertion.htmlOK
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 timePASS
> [Insert same event at same time] PASS
> [Linear + Expo] Different events at same timePASS
> [Linear + SetTarget] Different events at same timePASS
/webaudio/the-audio-api/the-audiobuffersourcenode-interface/ctor-audiobuffersource.htmlOK
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.htmlOK
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.htmlTIMEOUT
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-allpass.htmlTIMEOUT
/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator.htmlOK
# 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.htmlOK
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 sourcePASS
/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass.htmlOK
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 filterPASS
/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-onended.htmlOK
ConstantSourceNode onended event firedPASS
/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.htmlOK
Test if MediaElementAudioSourceNode works for cross-origin redirects with "cors" request mode. FAIL
/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelay.htmlOK
Delaying test signal by 1.5 sec was done correctlyPASS
# 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 timePASS
/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-sizing.htmlOK
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.htmlOK
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.htmlOK
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.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [Test if AudioWorklet exists] PASS
/webaudio/the-audio-api/the-pannernode-interface/pannernode-basic.htmlERROR
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.htmlOK
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 BiquadFilterNodePASS
/webaudio/the-audio-api/the-audionode-interface/audionode-connect-order.htmlOK
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 errorsPASS
/webaudio/the-audio-api/the-audioparam-interface/audioparam-large-endtime.htmlERROR
# AUDIT TASK RUNNER STARTED.PASS
> [linearRamp] PASS
/webaudio/the-audio-api/the-audiobuffer-interface/ctor-audiobuffer.htmlOK
AudioBuffer shared between two different contexts correctlyPASS
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