Title: [265713] trunk
Revision
265713
Author
[email protected]
Date
2020-08-14 15:54:08 -0700 (Fri, 14 Aug 2020)

Log Message

OfflineAudioContext.destination has incorrect number of channels & channel count mode
https://bugs.webkit.org/show_bug.cgi?id=215522

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.
Note that some tests are now failing when checking the audio channels on the OfflineAudioContext's destination.
Previously, there were no such channels to check since the channel count was always 0.

* web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/gain-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext-expected.txt:

Source/WebCore:

OfflineAudioContext.destination currently always has a number of channels that is 0, no
matter the numberOfChannels provided when constructing the OfflineAudioContext. The
channel count mode is also "max" instead of "explicit" (as per [1]).

[1] https://www.w3.org/TR/webaudio/#AudioDestinationNode

No new tests, rebaselined existing tests.

* Modules/webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
(WebCore::OfflineAudioDestinationNode::maxChannelCount const):
* Modules/webaudio/OfflineAudioDestinationNode.h:

Modified Paths

Diff

Modified: trunk/LayoutTests/TestExpectations (265712 => 265713)


--- trunk/LayoutTests/TestExpectations	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/TestExpectations	2020-08-14 22:54:08 UTC (rev 265713)
@@ -322,8 +322,12 @@
 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-connection.html [ Pass Failure ]
 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering.html [ Pass Failure ]
 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan.html [ Pass Failure ]
+imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan.html [ Pass Failure ]
 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html [ Pass Failure ]
 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.html [ Pass Failure ]
+imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad.html [ Pass Failure ]
+imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay.html [ Pass Failure ]
+imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain.html [ Pass Failure ]
 
 # This test passes but prints a different value almost every time.
 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-4-chan.html [ Pass Failure ]

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (265712 => 265713)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2020-08-14 22:54:08 UTC (rev 265713)
@@ -1,5 +1,28 @@
 2020-08-14  Chris Dumez  <[email protected]>
 
+        OfflineAudioContext.destination has incorrect number of channels & channel count mode
+        https://bugs.webkit.org/show_bug.cgi?id=215522
+
+        Reviewed by Eric Carlson.
+
+        Rebaseline WPT tests now that more checks are passing.
+        Note that some tests are now failing when checking the audio channels on the OfflineAudioContext's destination.
+        Previously, there were no such channels to check since the channel count was always 0.
+
+        * web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/gain-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext-expected.txt:
+
+2020-08-14  Chris Dumez  <[email protected]>
+
         Add support for suspending / resuming an OfflineAudioContext
         https://bugs.webkit.org/show_bug.cgi?id=215417
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling-expected.txt (265712 => 265713)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling-expected.txt	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling-expected.txt	2020-08-14 22:54:08 UTC (rev 265713)
@@ -1,7 +1,7 @@
 
 PASS # AUDIT TASK RUNNER STARTED. 
 PASS Executing "sub-sample accurate start" 
-FAIL Executing "sub-sample accurate stop" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
+PASS Executing "sub-sample accurate stop" 
 PASS Executing "sub-sample-grain" 
 PASS Executing "sub-sample accurate start with playbackRate" 
 PASS Audit report 
@@ -38,6 +38,16 @@
  assert_true: expected true got false
 FAIL < [sub-sample accurate start] 3 out of 6 assertions were failed. assert_true: expected true got false
 PASS > [sub-sample accurate stop]  
+PASS   src0 end frame is equal to 32. 
+PASS   output0[32] is not equal to 0. 
+PASS   output0[33:] contains only the constant 0. 
+PASS   src1 end frame is equal to 33.1. 
+FAIL X output1[33] should not be equal to 0. Got 0. assert_true: expected true got false
+PASS   output1[34:] contains only the constant 0. 
+PASS   src2 end frame is equal to 33.9. 
+PASS   output2[33] is not equal to 0. 
+PASS   output2[34:] contains only the constant 0. 
+FAIL < [sub-sample accurate stop] 1 out of 9 assertions were failed. assert_true: expected true got false
 PASS > [sub-sample-grain]  
 PASS   src0 grain start is equal to 3.1. 
 PASS   src0 grain duration is equal to 34.1. 
@@ -66,5 +76,5 @@
 PASS   With playbackRate 4: output1[17] is equal to 0. 
 FAIL X With playbackRate 4: output1[18] is not close to 1.7999999999999972 within a relative error of 4.542e-8 (RelErr=0.4444444444444436). Got 1. assert_true: expected true got false
 FAIL < [sub-sample accurate start with playbackRate] 2 out of 5 assertions were failed. assert_true: expected true got false
-FAIL # AUDIT TASK RUNNER FINISHED: 3 out of 4 tasks were failed. assert_true: expected true got false
+FAIL # AUDIT TASK RUNNER FINISHED: 4 out of 4 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt (265712 => 265713)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt	2020-08-14 22:54:08 UTC (rev 265713)
@@ -1,10 +1,10 @@
 
 PASS # AUDIT TASK RUNNER STARTED. 
-FAIL Executing "Biquad k-rate AudioParams (all)" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "Biquad k-rate Q" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "Biquad k-rate detune" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "Biquad k-rate frequency" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "Biquad k-rate gain" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
+PASS Executing "Biquad k-rate AudioParams (all)" 
+PASS Executing "Biquad k-rate Q" 
+PASS Executing "Biquad k-rate detune" 
+PASS Executing "Biquad k-rate frequency" 
+PASS Executing "Biquad k-rate gain" 
 PASS Audit report 
 PASS > [Biquad k-rate AudioParams (all)]  
 PASS   All k-rate params: Setting Q.automationRate to "k-rate" is equal to k-rate. 
@@ -15,6 +15,10 @@
 PASS   All k-rate params: k-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: a-rate node:frequency.linearRampToValueAtTime(0,1) did not throw an exception. 
+PASS   All k-rate params: Output of k-rate BiquadFilterNode is identical to the array [0,0.005672737956047058,0.031761422753334045,0.09152894467115402,0.18822039663791656,0.3152911961078644,0.4580239951610565,0.5962369441986084,0.7076709866523743,0.7715816497802734,0.7720555663108826,0.700621485710144,0.5578286647796631,0.35359877347946167,0.10631752759218216,-0.15921232104301453...]. 
+PASS   All k-rate params: Output of a-rate BiquadFilterNode is identical to the array [0,0.005672737956047058,0.031761422753334045,0.09152894467115402,0.18822039663791656,0.3152911961078644,0.4580239951610565,0.5962369441986084,0.7076709866523743,0.7715816497802734,0.7720555663108826,0.700621485710144,0.5578286647796631,0.35359877347946167,0.10631752759218216,-0.15921232104301453...]. 
+FAIL X All k-rate params: Difference between a-rate and k-rate BiquadFilterNode should have contain at least one value different from 0. assert_true: expected true got false
+FAIL < [Biquad k-rate AudioParams (all)] 1 out of 11 assertions were failed. assert_true: expected true got false
 PASS > [Biquad k-rate Q]  
 PASS   k-rate Q: Setting Q.automationRate to "k-rate" is equal to k-rate. 
 PASS   k-rate Q: k-rate node: Q.setValueAtTime(1,0) did not throw an exception. 
@@ -21,6 +25,10 @@
 PASS   k-rate Q: k-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: a-rate node:Q.linearRampToValueAtTime(10,1) did not throw an exception. 
+PASS   k-rate Q: Output of k-rate BiquadFilterNode is identical to the array [0,0.39067500829696655,0.8280423879623413,1.237112283706665,1.5446851253509521,1.6899598836898804,1.6333717107772827,1.3625415563583374,0.8945985436439514,0.27460339665412903,-0.42972034215927124,-1.1362687349319458,-1.758807897567749,-2.217907190322876,-2.4511806964874268,-2.4215519428253174...]. 
+PASS   k-rate Q: Output of a-rate BiquadFilterNode is identical to the array [0,0.39067500829696655,0.8280423879623413,1.237112283706665,1.5446851253509521,1.6899598836898804,1.6333717107772827,1.3625415563583374,0.8945985436439514,0.27460339665412903,-0.42972034215927124,-1.1362687349319458,-1.758807897567749,-2.217907190322876,-2.4511806964874268,-2.4215519428253174...]. 
+FAIL X k-rate Q: Difference between a-rate and k-rate BiquadFilterNode should have contain at least one value different from 0. assert_true: expected true got false
+FAIL < [Biquad k-rate Q] 1 out of 8 assertions were failed. assert_true: expected true got false
 PASS > [Biquad k-rate detune]  
 PASS   k-rate detune: Setting detune.automationRate to "k-rate" is equal to k-rate. 
 PASS   k-rate detune: k-rate node: detune.setValueAtTime(0,0) did not throw an exception. 
@@ -27,6 +35,10 @@
 PASS   k-rate detune: k-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: a-rate node:detune.linearRampToValueAtTime(1200,1) did not throw an exception. 
+PASS   k-rate detune: Output of k-rate BiquadFilterNode is identical to the array [0,0.39067500829696655,0.8280423879623413,1.237112283706665,1.5446851253509521,1.6899598836898804,1.6333717107772827,1.3625415563583374,0.8945985436439514,0.27460339665412903,-0.42972034215927124,-1.1362687349319458,-1.758807897567749,-2.217907190322876,-2.4511806964874268,-2.4215519428253174...]. 
+PASS   k-rate detune: Output of a-rate BiquadFilterNode is identical to the array [0,0.39067500829696655,0.8280423879623413,1.237112283706665,1.5446851253509521,1.6899598836898804,1.6333717107772827,1.3625415563583374,0.8945985436439514,0.27460339665412903,-0.42972034215927124,-1.1362687349319458,-1.758807897567749,-2.217907190322876,-2.4511806964874268,-2.4215519428253174...]. 
+FAIL X k-rate detune: Difference between a-rate and k-rate BiquadFilterNode should have contain at least one value different from 0. assert_true: expected true got false
+FAIL < [Biquad k-rate detune] 1 out of 8 assertions were failed. assert_true: expected true got false
 PASS > [Biquad k-rate frequency]  
 PASS   k-rate frequency: Setting frequency.automationRate to "k-rate" is equal to k-rate. 
 PASS   k-rate frequency: k-rate node: frequency.setValueAtTime(350,0) did not throw an exception. 
@@ -33,6 +45,10 @@
 PASS   k-rate frequency: k-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: a-rate node:frequency.linearRampToValueAtTime(0,1) did not throw an exception. 
+PASS   k-rate frequency: Output of k-rate BiquadFilterNode is identical to the array [0,0.39067500829696655,0.8280423879623413,1.237112283706665,1.5446851253509521,1.6899598836898804,1.6333717107772827,1.3625415563583374,0.8945985436439514,0.27460339665412903,-0.42972034215927124,-1.1362687349319458,-1.758807897567749,-2.217907190322876,-2.4511806964874268,-2.4215519428253174...]. 
+PASS   k-rate frequency: Output of a-rate BiquadFilterNode is identical to the array [0,0.39067500829696655,0.8280423879623413,1.237112283706665,1.5446851253509521,1.6899598836898804,1.6333717107772827,1.3625415563583374,0.8945985436439514,0.27460339665412903,-0.42972034215927124,-1.1362687349319458,-1.758807897567749,-2.217907190322876,-2.4511806964874268,-2.4215519428253174...]. 
+FAIL X k-rate frequency: Difference between a-rate and k-rate BiquadFilterNode should have contain at least one value different from 0. assert_true: expected true got false
+FAIL < [Biquad k-rate frequency] 1 out of 8 assertions were failed. assert_true: expected true got false
 PASS > [Biquad k-rate gain]  
 PASS   k-rate gain: Setting gain.automationRate to "k-rate" is equal to k-rate. 
 PASS   k-rate gain: k-rate node: gain.setValueAtTime(10,0) did not throw an exception. 
@@ -39,5 +55,9 @@
 PASS   k-rate gain: k-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: a-rate node:gain.linearRampToValueAtTime(0,1) did not throw an exception. 
-PASS # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully. 
+PASS   k-rate gain: Output of k-rate BiquadFilterNode is identical to the array [0,0.39067500829696655,0.8280423879623413,1.237112283706665,1.5446851253509521,1.6899598836898804,1.6333717107772827,1.3625415563583374,0.8945985436439514,0.27460339665412903,-0.42972034215927124,-1.1362687349319458,-1.758807897567749,-2.217907190322876,-2.4511806964874268,-2.4215519428253174...]. 
+PASS   k-rate gain: Output of a-rate BiquadFilterNode is identical to the array [0,0.39067500829696655,0.8280423879623413,1.237112283706665,1.5446851253509521,1.6899598836898804,1.6333717107772827,1.3625415563583374,0.8945985436439514,0.27460339665412903,-0.42972034215927124,-1.1362687349319458,-1.758807897567749,-2.217907190322876,-2.4511806964874268,-2.4215519428253174...]. 
+FAIL X k-rate gain: Difference between a-rate and k-rate BiquadFilterNode should have contain at least one value different from 0. assert_true: expected true got false
+FAIL < [Biquad k-rate gain] 1 out of 8 assertions were failed. assert_true: expected true got false
+FAIL # AUDIT TASK RUNNER FINISHED: 5 out of 5 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt (265712 => 265713)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt	2020-08-14 22:54:08 UTC (rev 265713)
@@ -1,6 +1,6 @@
 
 PASS # AUDIT TASK RUNNER STARTED. 
-FAIL Executing "ConstantSource k-rate offset" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
+PASS Executing "ConstantSource k-rate offset" 
 PASS Executing "ConstantSourceNode.offset k-rate automation" 
 PASS Executing "ConstantSource.offset" 
 PASS Audit report 
@@ -10,6 +10,38 @@
 PASS   k-rate offset: k-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: a-rate node:offset.linearRampToValueAtTime(10,0.064) did not throw an exception. 
+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: 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...]. 
+FAIL X k-rate offset: Difference between a-rate and k-rate ConstantSourceNode should have contain at least one value different from 0. assert_true: expected true got false
+FAIL 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. assert_true: expected true got false
+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. assert_true: expected true got false
+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. assert_true: expected true got false
+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. assert_true: expected true got false
+FAIL < [ConstantSource k-rate offset] 5 out of 12 assertions were failed. assert_true: expected true got false
 PASS > [ConstantSourceNode.offset k-rate automation] Explicitly test ConstantSourceNode.offset k-rate automation is k-rate 
 FAIL X k-rate ConstantSource.offset:  output[0:128]: Expected 0 for all values but found 127 unexpected values: 
 	Index	Actual
@@ -78,5 +110,5 @@
 PASS   ConstantSource.offset k-rate input: output[768:896] contains only the constant 2. 
 PASS   ConstantSource.offset k-rate input: output[896:1024] contains only the constant 2. 
 PASS < [ConstantSource.offset] All assertions passed. (total 8 assertions) 
-FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 3 tasks were failed. assert_true: expected true got false
+FAIL # AUDIT TASK RUNNER FINISHED: 2 out of 3 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-expected.txt (265712 => 265713)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-expected.txt	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-expected.txt	2020-08-14 22:54:08 UTC (rev 265713)
@@ -1,6 +1,6 @@
 
 PASS # AUDIT TASK RUNNER STARTED. 
-FAIL Executing "Test k-rate DelayNode" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
+PASS Executing "Test k-rate DelayNode" 
 PASS Audit report 
 PASS > [Test k-rate DelayNode]  
 PASS   DelayNode: Setting delayTime.automationRate to "k-rate" is equal to k-rate. 
@@ -8,5 +8,9 @@
 PASS   DelayNode: k-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: a-rate node:delayTime.linearRampToValueAtTime(0.5,1) did not throw an exception. 
-PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. 
+PASS   DelayNode: Output of k-rate DelayNode is identical to the array [0,0.1693689227104187,0.3387378454208374,0.48808085918426514,0.6374238729476929,0.7490829229354858,0.8607419729232788,0.9215145707130432,0.9822871685028076,0.9849876165390015,0.9876880645751953,0.9319971799850464,0.8763062953948975,0.7688090205192566,0.6613118052482605,0.5147179961204529...]. 
+PASS   DelayNode: Output of a-rate DelayNode is identical to the array [0,0.1693689227104187,0.3387378454208374,0.48808085918426514,0.6374238729476929,0.7490829229354858,0.8607419729232788,0.9215145707130432,0.9822871685028076,0.9849876165390015,0.9876880645751953,0.9319971799850464,0.8763062953948975,0.7688090205192566,0.6613118052482605,0.5147179961204529...]. 
+FAIL X DelayNode: Difference between a-rate and k-rate DelayNode should have contain at least one value different from 0. assert_true: expected true got false
+FAIL < [Test k-rate DelayNode] 1 out of 8 assertions were failed. assert_true: expected true got false
+FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt (265712 => 265713)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt	2020-08-14 22:54:08 UTC (rev 265713)
@@ -1,6 +1,6 @@
 
 PASS # AUDIT TASK RUNNER STARTED. 
-FAIL Executing "Test k-rate GainNode" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
+PASS Executing "Test k-rate GainNode" 
 PASS Audit report 
 PASS > [Test k-rate GainNode]  
 PASS   GainNode: Setting gain.automationRate to "k-rate" is equal to k-rate. 
@@ -8,5 +8,9 @@
 PASS   GainNode: k-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: a-rate node:gain.linearRampToValueAtTime(0,1) did not throw an exception. 
-PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. 
+PASS   GainNode: Output of k-rate GainNode is identical to the array [0,0.3386955261230469,0.6372645497322083,0.8604192137718201,0.9817960262298584,0.9870707392692566,0.8756490349769592,0.6607331037521362,0.367756187915802,0.03137516602873802,-0.3086307942867279,-0.6120643615722656,-0.8430613279342651,-0.974330723285675,-0.9903783798217773,-0.8893356323242188...]. 
+PASS   GainNode: Output of a-rate GainNode is identical to the array [0,0.3386955261230469,0.6372645497322083,0.8604192137718201,0.9817960262298584,0.9870707392692566,0.8756490349769592,0.6607331037521362,0.367756187915802,0.03137516602873802,-0.3086307942867279,-0.6120643615722656,-0.8430613279342651,-0.974330723285675,-0.9903783798217773,-0.8893356323242188...]. 
+FAIL X GainNode: Difference between a-rate and k-rate GainNode should have contain at least one value different from 0. assert_true: expected true got false
+FAIL < [Test k-rate GainNode] 1 out of 8 assertions were failed. assert_true: expected true got false
+FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt (265712 => 265713)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt	2020-08-14 22:54:08 UTC (rev 265713)
@@ -1,9 +1,13 @@
 
 PASS # AUDIT TASK RUNNER STARTED. 
-FAIL Executing "Oscillator k-rate detune" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "Oscillator k-rate frequency" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
+PASS Executing "Oscillator k-rate detune" 
+PASS Executing "Oscillator k-rate frequency" 
 PASS Audit report 
 PASS > [Oscillator k-rate detune]  
+FAIL X k-rate detune: Difference between a-rate and k-rate outputs should have contain at least one value different from 0. assert_true: expected true got false
+FAIL < [Oscillator k-rate detune] 1 out of 1 assertions were failed. assert_true: expected true got false
 PASS > [Oscillator k-rate frequency]  
-PASS # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully. 
+FAIL X k-rate frequency: Difference between a-rate and k-rate outputs should have contain at least one value different from 0. assert_true: expected true got false
+FAIL < [Oscillator k-rate frequency] 1 out of 1 assertions were failed. assert_true: expected true got false
+FAIL # AUDIT TASK RUNNER FINISHED: 2 out of 2 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt (265712 => 265713)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt	2020-08-14 22:54:08 UTC (rev 265713)
@@ -1,15 +1,131 @@
 
 PASS # AUDIT TASK RUNNER STARTED. 
-FAIL Executing "Panner x" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "Panner y" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "Panner z" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
+PASS Executing "Panner x" 
+PASS Executing "Panner y" 
+PASS Executing "Panner z" 
 PASS Executing "Listener x" 
 PASS Executing "Listener y" 
 PASS Executing "Listener z" 
 PASS Audit report 
 PASS > [Panner x] k-rate input 
+PASS   Panner: positionX: Expected output channel 0 is not constantly 0.017871389165520668 (contains 512 different values). 
+PASS   positionX: Expected output channel 1 is not constantly 0.03648621588945389 (contains 512 different values). 
+PASS   Panner: positionX: Channel 0 output[0, 127] contains only the constant 0.017888545989990234. 
+PASS   Panner: positionX: Channel 0 output[128, 255] contains only the constant 0.017888545989990234. 
+PASS   Panner: positionX: Channel 0 output[256, 383] contains only the constant 0.017888545989990234. 
+PASS   Panner: positionX: Channel 0 output[384, 511] contains only the constant 0.017888545989990234. 
+PASS   Panner: positionX: Channel 0 output[512, 639] contains only the constant 0.017888545989990234. 
+PASS   Panner: positionX: Channel 1 output[0, 127] contains only the constant 0.03577708825469017. 
+PASS   Panner: positionX: Channel 1 output[128, 255] contains only the constant 0.03577708825469017. 
+PASS   Panner: positionX: Channel 1 output[256, 383] contains only the constant 0.03577708825469017. 
+PASS   Panner: positionX: Channel 1 output[384, 511] contains only the constant 0.03577708825469017. 
+PASS   Panner: positionX: Channel 1 output[512, 639] contains only the constant 0.03577708825469017. 
+FAIL X Panner: positionX: Actual output channel 0 does not equal [0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668,0.017871389165520668...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[0]	1.7888545989990234e-2	1.7871389165520668e-2	1.7156824469566345e-5	9.6001627577262235e-4	0.0000000000000000e+0
+	[1]	1.7888545989990234e-2	1.7871389165520668e-2	1.7156824469566345e-5	9.6001627577262235e-4	0.0000000000000000e+0
+	[2]	1.7888545989990234e-2	1.7871389165520668e-2	1.7156824469566345e-5	9.6001627577262235e-4	0.0000000000000000e+0
+	[3]	1.7888545989990234e-2	1.7871389165520668e-2	1.7156824469566345e-5	9.6001627577262235e-4	0.0000000000000000e+0
+	[4]	1.7888545989990234e-2	1.7871389165520668e-2	1.7156824469566345e-5	9.6001627577262235e-4	0.0000000000000000e+0
+	...and 635 more errors.
+	Max AbsError of 1.0607887059450150e-2 at index of 639.
+	[639]	1.7888545989990234e-2	7.2806589305400848e-3	1.0607887059450150e-2	1.4569954671208927e+0	0.0000000000000000e+0
+	Max RelError of 1.4569954671208927e+0 at index of 639.
+	[639]	1.7888545989990234e-2	7.2806589305400848e-3	1.0607887059450150e-2	1.4569954671208927e+0	0.0000000000000000e+0
+ assert_true: expected true got false
+FAIL X Panner: positionX: Actual output channel 1 does not equal [0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389,0.03648621588945389...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[0]	3.5777088254690170e-2	3.6486215889453888e-2	7.0912763476371765e-4	1.9435494130502214e-2	0.0000000000000000e+0
+	[1]	3.5777088254690170e-2	3.6486215889453888e-2	7.0912763476371765e-4	1.9435494130502214e-2	0.0000000000000000e+0
+	[2]	3.5777088254690170e-2	3.6486215889453888e-2	7.0912763476371765e-4	1.9435494130502214e-2	0.0000000000000000e+0
+	[3]	3.5777088254690170e-2	3.6486215889453888e-2	7.0912763476371765e-4	1.9435494130502214e-2	0.0000000000000000e+0
+	[4]	3.5777088254690170e-2	3.6486215889453888e-2	7.0912763476371765e-4	1.9435494130502214e-2	0.0000000000000000e+0
+	...and 635 more errors.
+	Max AbsError of 3.2140947878360748e-3 at index of 639.
+	[639]	3.5777088254690170e-2	3.2562993466854095e-2	3.2140947878360748e-3	9.8703910348651003e-2	0.0000000000000000e+0
+	Max RelError of 9.8703910348651003e-2 at index of 639.
+	[639]	3.5777088254690170e-2	3.2562993466854095e-2	3.2140947878360748e-3	9.8703910348651003e-2	0.0000000000000000e+0
+ assert_true: expected true got false
+FAIL < [Panner x] 2 out of 14 assertions were failed. assert_true: expected true got false
 PASS > [Panner y] k-rate input 
+PASS   Panner: positionY: Expected output channel 0 is not constantly 0.039904240518808365 (contains 512 different values). 
+PASS   positionY: Expected output channel 1 is not constantly 0.08146847039461136 (contains 512 different values). 
+PASS   Panner: positionY: Channel 0 output[0, 127] contains only the constant 0.03993609920144081. 
+PASS   Panner: positionY: Channel 0 output[128, 255] contains only the constant 0.03993609920144081. 
+PASS   Panner: positionY: Channel 0 output[256, 383] contains only the constant 0.03993609920144081. 
+PASS   Panner: positionY: Channel 0 output[384, 511] contains only the constant 0.03993609920144081. 
+PASS   Panner: positionY: Channel 0 output[512, 639] contains only the constant 0.03993609920144081. 
+PASS   Panner: positionY: Channel 1 output[0, 127] contains only the constant 0.0815335139632225. 
+PASS   Panner: positionY: Channel 1 output[128, 255] contains only the constant 0.0815335139632225. 
+PASS   Panner: positionY: Channel 1 output[256, 383] contains only the constant 0.0815335139632225. 
+PASS   Panner: positionY: Channel 1 output[384, 511] contains only the constant 0.0815335139632225. 
+PASS   Panner: positionY: Channel 1 output[512, 639] contains only the constant 0.0815335139632225. 
+FAIL X Panner: positionY: Actual output channel 0 does not equal [0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365,0.039904240518808365...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[0]	3.9936099201440811e-2	3.9904240518808365e-2	3.1858682632446289e-5	7.9837837328165903e-4	0.0000000000000000e+0
+	[1]	3.9936099201440811e-2	3.9904240518808365e-2	3.1858682632446289e-5	7.9837837328165903e-4	0.0000000000000000e+0
+	[2]	3.9936099201440811e-2	3.9904240518808365e-2	3.1858682632446289e-5	7.9837837328165903e-4	0.0000000000000000e+0
+	[3]	3.9936099201440811e-2	3.9904240518808365e-2	3.1858682632446289e-5	7.9837837328165903e-4	0.0000000000000000e+0
+	[4]	3.9936099201440811e-2	3.9904240518808365e-2	3.1858682632446289e-5	7.9837837328165903e-4	0.0000000000000000e+0
+	...and 635 more errors.
+	Max AbsError of 2.2556981071829796e-2 at index of 639.
+	[639]	3.9936099201440811e-2	1.7379118129611015e-2	2.2556981071829796e-2	1.2979358851009015e+0	0.0000000000000000e+0
+	Max RelError of 1.2979358851009015e+0 at index of 639.
+	[639]	3.9936099201440811e-2	1.7379118129611015e-2	2.2556981071829796e-2	1.2979358851009015e+0	0.0000000000000000e+0
+ assert_true: expected true got false
+FAIL X Panner: positionY: Actual output channel 1 does not equal [0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136,0.08146847039461136...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[0]	8.1533513963222504e-2	8.1468470394611359e-2	6.5043568611145020e-5	7.9838946645360430e-4	0.0000000000000000e+0
+	[1]	8.1533513963222504e-2	8.1468470394611359e-2	6.5043568611145020e-5	7.9838946645360430e-4	0.0000000000000000e+0
+	[2]	8.1533513963222504e-2	8.1468470394611359e-2	6.5043568611145020e-5	7.9838946645360430e-4	0.0000000000000000e+0
+	[3]	8.1533513963222504e-2	8.1468470394611359e-2	6.5043568611145020e-5	7.9838946645360430e-4	0.0000000000000000e+0
+	[4]	8.1533513963222504e-2	8.1468470394611359e-2	6.5043568611145020e-5	7.9838946645360430e-4	0.0000000000000000e+0
+	...and 635 more errors.
+	Max AbsError of 4.6052318066358566e-2 at index of 639.
+	[639]	8.1533513963222504e-2	3.5481195896863937e-2	4.6052318066358566e-2	1.2979359038579918e+0	0.0000000000000000e+0
+	Max RelError of 1.2979359038579918e+0 at index of 639.
+	[639]	8.1533513963222504e-2	3.5481195896863937e-2	4.6052318066358566e-2	1.2979359038579918e+0	0.0000000000000000e+0
+ assert_true: expected true got false
+FAIL < [Panner y] 2 out of 14 assertions were failed. assert_true: expected true got false
 PASS > [Panner z] k-rate input 
+PASS   Panner: positionZ: Expected output channel 0 is not constantly 0.014136482030153275 (contains 512 different values). 
+PASS   positionZ: Expected output channel 1 is not constantly 0.054120492190122604 (contains 512 different values). 
+PASS   Panner: positionZ: Channel 0 output[0, 127] contains only the constant 1.2244020484828828e-18. 
+PASS   Panner: positionZ: Channel 0 output[128, 255] contains only the constant 1.2244020484828828e-18. 
+PASS   Panner: positionZ: Channel 0 output[256, 383] contains only the constant 1.2244020484828828e-18. 
+PASS   Panner: positionZ: Channel 0 output[384, 511] contains only the constant 1.2244020484828828e-18. 
+PASS   Panner: positionZ: Channel 0 output[512, 639] contains only the constant 1.2244020484828828e-18. 
+PASS   Panner: positionZ: Channel 1 output[0, 127] contains only the constant 0.059988006949424744. 
+PASS   Panner: positionZ: Channel 1 output[128, 255] contains only the constant 0.059988006949424744. 
+PASS   Panner: positionZ: Channel 1 output[256, 383] contains only the constant 0.059988006949424744. 
+PASS   Panner: positionZ: Channel 1 output[384, 511] contains only the constant 0.059988006949424744. 
+PASS   Panner: positionZ: Channel 1 output[512, 639] contains only the constant 0.059988006949424744. 
+FAIL X Panner: positionZ: Actual output channel 0 does not equal [0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275,0.014136482030153275...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[0]	1.2244020484828828e-18	1.4136482030153275e-2	1.4136482030153273e-2	9.9999999999999989e-1	0.0000000000000000e+0
+	[1]	1.2244020484828828e-18	1.4136482030153275e-2	1.4136482030153273e-2	9.9999999999999989e-1	0.0000000000000000e+0
+	[2]	1.2244020484828828e-18	1.4136482030153275e-2	1.4136482030153273e-2	9.9999999999999989e-1	0.0000000000000000e+0
+	[3]	1.2244020484828828e-18	1.4136482030153275e-2	1.4136482030153273e-2	9.9999999999999989e-1	0.0000000000000000e+0
+	[4]	1.2244020484828828e-18	1.4136482030153275e-2	1.4136482030153273e-2	9.9999999999999989e-1	0.0000000000000000e+0
+	...and 635 more errors.
+	Max AbsError of 1.5163775533437727e-2 at index of 255.
+	[255]	1.2244020484828828e-18	1.5163775533437729e-2	1.5163775533437727e-2	9.9999999999999989e-1	0.0000000000000000e+0
+	Max RelError of 9.9999999999999989e-1 at index of 0.
+ assert_true: expected true got false
+FAIL X Panner: positionZ: Actual output channel 1 does not equal [0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604,0.054120492190122604...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[0]	5.9988006949424744e-2	5.4120492190122604e-2	5.8675147593021393e-3	1.0841576862771039e-1	0.0000000000000000e+0
+	[1]	5.9988006949424744e-2	5.4120492190122604e-2	5.8675147593021393e-3	1.0841576862771039e-1	0.0000000000000000e+0
+	[2]	5.9988006949424744e-2	5.4120492190122604e-2	5.8675147593021393e-3	1.0841576862771039e-1	0.0000000000000000e+0
+	[3]	5.9988006949424744e-2	5.4120492190122604e-2	5.8675147593021393e-3	1.0841576862771039e-1	0.0000000000000000e+0
+	[4]	5.9988006949424744e-2	5.4120492190122604e-2	5.8675147593021393e-3	1.0841576862771039e-1	0.0000000000000000e+0
+	...and 635 more errors.
+	Max AbsError of 3.1148768961429596e-2 at index of 639.
+	[639]	5.9988006949424744e-2	2.8839237987995148e-2	3.1148768961429596e-2	1.0800829402772649e+0	0.0000000000000000e+0
+	Max RelError of 1.0800829402772649e+0 at index of 639.
+	[639]	5.9988006949424744e-2	2.8839237987995148e-2	3.1148768961429596e-2	1.0800829402772649e+0	0.0000000000000000e+0
+ assert_true: expected true got false
+FAIL < [Panner z] 2 out of 14 assertions were failed. assert_true: expected true got false
 PASS > [Listener x] k-rate input 
 PASS   Listener: positionX: Channel 0 output[0, 127] contains only the constant 0.016349565237760544. 
 PASS   Listener: positionX: Channel 0 output[128, 255] contains only the constant 0.016349565237760544. 
@@ -46,5 +162,5 @@
 PASS   Listener: positionZ: Channel 1 output[384, 511] contains only the constant 0.04175786301493645. 
 PASS   Listener: positionZ: Channel 1 output[512, 639] contains only the constant 0.04175786301493645. 
 PASS < [Listener z] All assertions passed. (total 10 assertions) 
-PASS # AUDIT TASK RUNNER FINISHED: 6 tasks ran successfully. 
+FAIL # AUDIT TASK RUNNER FINISHED: 3 out of 6 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt (265712 => 265713)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt	2020-08-14 22:54:08 UTC (rev 265713)
@@ -1,10 +1,10 @@
 
 PASS # AUDIT TASK RUNNER STARTED. 
-FAIL Executing "Panner k-rate positionX" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "Panner k-rate positionY" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "Panner k-rate orientationX" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "Panner k-rate orientationY" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "Panner k-rate orientationZ" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
+PASS Executing "Panner k-rate positionX" 
+PASS Executing "Panner k-rate positionY" 
+PASS Executing "Panner k-rate orientationX" 
+PASS Executing "Panner k-rate orientationY" 
+PASS Executing "Panner k-rate orientationZ" 
 PASS Executing "Listener k-rate positionX" 
 PASS Executing "Listener k-rate positionY" 
 PASS Executing "Listener k-rate positionZ" 
@@ -21,6 +21,39 @@
 PASS   k-rate positionX: k-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: a-rate node:positionX.linearRampToValueAtTime(1000,0.08) did not throw an exception. 
+PASS   k-rate positionX: Output of k-rate PannerNode is identical to the array [0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652...]. 
+PASS   k-rate positionX: Output of a-rate PannerNode is identical to the array [0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652,0.00005495094956131652...]. 
+PASS   k-rate positionX: Difference between a-rate and k-rate PannerNode is not constantly 0 (contains 157 different values). 
+PASS   k-rate positionX k-rate output [0: 127] contains only the constant 0.00005495094956131652. 
+FAIL X k-rate positionX k-rate output [128: 255]: Expected 0.00006342888082144782 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.00007185198774095625
+	[2]	0.00008022063411772251
+	[3]	0.00008853514736983925
+	[4]	0.00009679589129518718
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate positionX k-rate output [256: 383]: Expected 0.0008111112983897328 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.000810645055025816
+	[2]	0.0008101799758151174
+	[3]	0.0008097159443423152
+	[4]	0.0008092531352303922
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate positionX k-rate output [384: 511]: Expected 0.0005070294719189405 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.0005068031023256481
+	[2]	0.0005065773730166256
+	[3]	0.0005063521675765514
+	[4]	0.0005061274860054255
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate positionX k-rate output [512: 639]: Expected 0.000361790822353214 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.00036166736390441656
+	[2]	0.0003615442547015846
+	[3]	0.00036142137832939625
+	[4]	0.0003612988512031734
+	...and 123 more errors. assert_true: expected true got false
+FAIL < [Panner k-rate positionX] 4 out of 13 assertions were failed. assert_true: expected true got false
 PASS > [Panner k-rate positionY]  
 PASS   k-rate positionY: Setting positionY.automationRate to "k-rate" is equal to k-rate. 
 PASS   k-rate positionY: k-rate node: positionY.setValueAtTime(0,0) did not throw an exception. 
@@ -27,6 +60,39 @@
 PASS   k-rate positionY: k-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: a-rate node:positionY.linearRampToValueAtTime(1000,0.08) did not throw an exception. 
+PASS   k-rate positionY: Output of k-rate PannerNode is identical to the array [0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686...]. 
+PASS   k-rate positionY: Output of a-rate PannerNode is identical to the array [0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686,0.15397992730140686...]. 
+PASS   k-rate positionY: Difference between a-rate and k-rate PannerNode is not constantly 0 (contains 296 different values). 
+PASS   k-rate positionY k-rate output [0: 127] contains only the constant 0.15397992730140686. 
+FAIL X k-rate positionY k-rate output [128: 255]: Expected 0.15321408212184906 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.15245208144187927
+	[2]	0.15169388055801392
+	[3]	0.1509394645690918
+	[4]	0.15018881857395172
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate positionY k-rate output [256: 383]: Expected 0.08104125410318375 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.08063808083534241
+	[2]	0.08023692667484283
+	[3]	0.07983777672052383
+	[4]	0.07944062352180481
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate positionY k-rate output [384: 511]: Expected 0.04285595566034317 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.04264303669333458
+	[2]	0.04243117943406105
+	[3]	0.042220380157232285
+	[4]	0.04201063886284828
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate positionY k-rate output [512: 639]: Expected 0.022689657285809517 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.022577228024601936
+	[2]	0.022465359419584274
+	[3]	0.02235405333340168
+	[4]	0.022243302315473557
+	...and 123 more errors. assert_true: expected true got false
+FAIL < [Panner k-rate positionY] 4 out of 13 assertions were failed. assert_true: expected true got false
 PASS > [Panner k-rate orientationX]  
 PASS   k-rate orientationX: Setting orientationX.automationRate to "k-rate" is equal to k-rate. 
 PASS   k-rate orientationX: k-rate node: orientationX.setValueAtTime(1,0) did not throw an exception. 
@@ -33,6 +99,39 @@
 PASS   k-rate orientationX: k-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: a-rate node:orientationX.linearRampToValueAtTime(10,0.08) did not throw an exception. 
+PASS   k-rate orientationX: Output of k-rate PannerNode is identical to the array [0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766...]. 
+PASS   k-rate orientationX: Output of a-rate PannerNode is identical to the array [0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766,0.000041451945435255766...]. 
+PASS   k-rate orientationX: Difference between a-rate and k-rate PannerNode is not constantly 0 (contains 320 different values). 
+PASS   k-rate orientationX k-rate output [0: 127] contains only the constant 0.000041451945435255766. 
+FAIL X k-rate orientationX k-rate output [128: 255]: Expected 0.0003339551039971411 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.0006249957368709147
+	[2]	0.0009145812364295125
+	[3]	0.001202718704007566
+	[4]	0.0014894155319780111
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate orientationX k-rate output [256: 383]: Expected 0.028000328689813614 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.02825474739074707
+	[2]	0.028507892042398453
+	[3]	0.028759770095348358
+	[4]	0.029010390862822533
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate orientationX k-rate output [384: 511]: Expected 0.05214492604136467 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.05232711881399155
+	[2]	0.0525084063410759
+	[3]	0.052688777446746826
+	[4]	0.052868250757455826
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate orientationX k-rate output [512: 639]: Expected 0.06942851841449738 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.06955232471227646
+	[2]	0.0696755051612854
+	[3]	0.0697980672121048
+	[4]	0.06992002576589584
+	...and 123 more errors. assert_true: expected true got false
+FAIL < [Panner k-rate orientationX] 4 out of 13 assertions were failed. assert_true: expected true got false
 PASS > [Panner k-rate orientationY]  
 PASS   k-rate orientationY: Setting orientationY.automationRate to "k-rate" is equal to k-rate. 
 PASS   k-rate orientationY: k-rate node: orientationY.setValueAtTime(1,0) did not throw an exception. 
@@ -39,6 +138,39 @@
 PASS   k-rate orientationY: k-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: a-rate node:orientationY.linearRampToValueAtTime(10,0.08) did not throw an exception. 
+PASS   k-rate orientationY: Output of k-rate PannerNode is identical to the array [0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607...]. 
+PASS   k-rate orientationY: Output of a-rate PannerNode is identical to the array [0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607...]. 
+PASS   k-rate orientationY: Difference between a-rate and k-rate PannerNode is not constantly 0 (contains 174 different values). 
+PASS   k-rate orientationY k-rate output [0: 127] contains only the constant 0.07389305531978607. 
+FAIL X k-rate orientationY k-rate output [128: 255]: Expected 0.0739683136343956 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.07404319196939468
+	[2]	0.07411769032478333
+	[3]	0.07419182360172272
+	[4]	0.07426558434963226
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate orientationY k-rate output [256: 383]: Expected 0.0811038538813591 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.08118677884340286
+	[2]	0.0812692940235138
+	[3]	0.0813513994216919
+	[4]	0.08143308758735657
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate orientationY k-rate output [384: 511]: Expected 0.08898043632507324 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.08904612064361572
+	[2]	0.08911147713661194
+	[3]	0.08917650580406189
+	[4]	0.08924121409654617
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate orientationY k-rate output [512: 639]: Expected 0.09521431475877762 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.09526193141937256
+	[2]	0.0953093022108078
+	[3]	0.09535645693540573
+	[4]	0.09540335834026337
+	...and 123 more errors. assert_true: expected true got false
+FAIL < [Panner k-rate orientationY] 4 out of 13 assertions were failed. assert_true: expected true got false
 PASS > [Panner k-rate orientationZ]  
 PASS   k-rate orientationZ: Setting orientationZ.automationRate to "k-rate" is equal to k-rate. 
 PASS   k-rate orientationZ: k-rate node: orientationZ.setValueAtTime(1,0) did not throw an exception. 
@@ -45,6 +177,39 @@
 PASS   k-rate orientationZ: k-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: a-rate node:orientationZ.linearRampToValueAtTime(10,0.08) did not throw an exception. 
+PASS   k-rate orientationZ: Output of k-rate PannerNode is identical to the array [0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607...]. 
+PASS   k-rate orientationZ: Output of a-rate PannerNode is identical to the array [0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607,0.07389305531978607...]. 
+PASS   k-rate orientationZ: Difference between a-rate and k-rate PannerNode is not constantly 0 (contains 174 different values). 
+PASS   k-rate orientationZ k-rate output [0: 127] contains only the constant 0.07389305531978607. 
+FAIL X k-rate orientationZ k-rate output [128: 255]: Expected 0.0739683136343956 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.07404319196939468
+	[2]	0.07411769032478333
+	[3]	0.07419182360172272
+	[4]	0.07426558434963226
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate orientationZ k-rate output [256: 383]: Expected 0.0811038538813591 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.08118677884340286
+	[2]	0.0812692940235138
+	[3]	0.0813513994216919
+	[4]	0.08143308758735657
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate orientationZ k-rate output [384: 511]: Expected 0.08898043632507324 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.08904612064361572
+	[2]	0.08911147713661194
+	[3]	0.08917650580406189
+	[4]	0.08924121409654617
+	...and 123 more errors. assert_true: expected true got false
+FAIL X k-rate orientationZ k-rate output [512: 639]: Expected 0.09521431475877762 for all values but found 127 unexpected values: 
+	Index	Actual
+	[1]	0.09526193141937256
+	[2]	0.0953093022108078
+	[3]	0.09535645693540573
+	[4]	0.09540335834026337
+	...and 123 more errors. assert_true: expected true got false
+FAIL < [Panner k-rate orientationZ] 4 out of 13 assertions were failed. assert_true: expected true got false
 PASS > [Listener k-rate positionX]  
 PASS   Listener positionX.automationRate is equal to k-rate. 
 PASS   Listener positionX.setValueAtTime(1,0) did not throw an exception. 
@@ -360,5 +525,5 @@
 	[4]	0.0010074054589495063
 	...and 123 more errors. assert_true: expected true got false
 FAIL < [Listener k-rate upZ] 4 out of 9 assertions were failed. assert_true: expected true got false
-FAIL # AUDIT TASK RUNNER FINISHED: 9 out of 14 tasks were failed. assert_true: expected true got false
+FAIL # AUDIT TASK RUNNER FINISHED: 14 out of 14 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan-expected.txt (265712 => 265713)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan-expected.txt	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan-expected.txt	2020-08-14 22:54:08 UTC (rev 265713)
@@ -1,27 +1,270 @@
 
 PASS # AUDIT TASK RUNNER STARTED. 
 PASS Executing "initialize" 
-FAIL Executing "1-channel input" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "2-channel input" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "3-channel input" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "4-channel input" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "5.1-channel input" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "2-channel input, explicit mode" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "3-channel input explicit mode" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "4-channel input explicit mode" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
-FAIL Executing "5.1-channel input explicit mode" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
+PASS Executing "1-channel input" 
+PASS Executing "2-channel input" 
+PASS Executing "3-channel input" 
+PASS Executing "4-channel input" 
+PASS Executing "5.1-channel input" 
+PASS Executing "2-channel input, explicit mode" 
+PASS Executing "3-channel input explicit mode" 
+PASS Executing "4-channel input explicit mode" 
+PASS Executing "5.1-channel input explicit mode" 
 PASS Audit report 
 PASS > [initialize] Convolver response with one channel 
 PASS   new AudioBuffer({numberOfChannels: 2, length: 4, sampleRate: 8192}) did not throw an exception. 
 PASS < [initialize] All assertions passed. (total 1 assertions) 
 PASS > [1-channel input] produces 2-channel output 
+FAIL X 1: Channel 0 does not equal [0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248,-0.8348914980888367...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[2]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	4.7683715820312500e-7
+	[3]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	4.7683715820312500e-7
+	[4]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	4.7683715820312500e-7
+	[5]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	4.7683715820312500e-7
+	[6]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	4.7683715820312500e-7
+	...and 1271 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 235.
+	[235]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565493170255e-1 at index of 196.
+	[196]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL X 1: Channel 1 does not equal [0,0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[3]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	4.7683715820312500e-7
+	[4]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	4.7683715820312500e-7
+	[5]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	4.7683715820312500e-7
+	[6]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	4.7683715820312500e-7
+	[7]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	4.7683715820312500e-7
+	...and 1270 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 236.
+	[236]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565493170255e-1 at index of 197.
+	[197]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL < [1-channel input] 2 out of 2 assertions were failed. assert_true: expected true got false
 PASS > [2-channel input] produces 2-channel output 
+FAIL X 2: Channel 0 does not equal [0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248,-0.8348914980888367...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[2]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	4.7683715820312500e-7
+	[3]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	4.7683715820312500e-7
+	[4]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	4.7683715820312500e-7
+	[5]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	4.7683715820312500e-7
+	[6]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	4.7683715820312500e-7
+	...and 1271 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 235.
+	[235]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565493170255e-1 at index of 196.
+	[196]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL X 2: Channel 1 does not equal [0,0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[3]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	4.7683715820312500e-7
+	[4]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	4.7683715820312500e-7
+	[5]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	4.7683715820312500e-7
+	[6]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	4.7683715820312500e-7
+	[7]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	4.7683715820312500e-7
+	...and 1270 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 236.
+	[236]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565493170255e-1 at index of 197.
+	[197]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL < [2-channel input] 2 out of 2 assertions were failed. assert_true: expected true got false
 PASS > [3-channel input] 3->2 downmix producing 2-channel output 
+FAIL X 3: Channel 0 does not equal [0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248,-0.8348914980888367...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[2]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	4.7683715820312500e-7
+	[3]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	4.7683715820312500e-7
+	[4]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	4.7683715820312500e-7
+	[5]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	4.7683715820312500e-7
+	[6]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	4.7683715820312500e-7
+	...and 1271 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 235.
+	[235]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565493170255e-1 at index of 196.
+	[196]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL X 3: Channel 1 does not equal [0,0,0,0.9947001934051514,0.770577609539032,0.9109301567077637,0.7706682085990906,0.9842367172241211,0.3202291429042816,-0.9348859190940857,-0.8055058121681213,-0.8837443590164185,-0.8007677793502808,-0.9286618232727051,-0.6026888489723206,0.7909701466560364...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[3]	1.3482510112226009e-2	9.9470019340515137e-1	9.8121768329292536e-1	9.8644565447798760e-1	4.7683715820312500e-7
+	[4]	1.0444675572216511e-2	7.7057760953903198e-1	7.6013293396681547e-1	9.8644565395760120e-1	4.7683715820312500e-7
+	[5]	1.2347062118351460e-2	9.1093015670776367e-1	8.9858309458941221e-1	9.8644565444734467e-1	4.7683715820312500e-7
+	[6]	1.0445903055369854e-2	7.7066820859909058e-1	7.6022230554372072e-1	9.8644565464253642e-1	4.7683715820312500e-7
+	[7]	1.3340684585273266e-2	9.8423671722412109e-1	9.7089603263884783e-1	9.8644565443270749e-1	4.7683715820312500e-7
+	...and 1271 more errors.
+	Max AbsError of 9.8443668708205223e-1 at index of 274.
+	[274]	-1.3526741415262222e-2	-9.9796342849731445e-1	9.8443668708205223e-1	9.8644565419032426e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565485846292e-1 at index of 350.
+	[350]	8.9482078328728676e-3	6.6017264127731323e-1	6.5122443344444036e-1	9.8644565485846292e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL < [3-channel input] 2 out of 2 assertions were failed. assert_true: expected true got false
 PASS > [4-channel input] 4->2 downmix producing 2-channel output 
+FAIL X 4: Channel 0 does not equal [0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248,-0.8348914980888367...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[2]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	4.7683715820312500e-7
+	[3]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	4.7683715820312500e-7
+	[4]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	4.7683715820312500e-7
+	[5]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	4.7683715820312500e-7
+	[6]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	4.7683715820312500e-7
+	...and 1271 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 235.
+	[235]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565493170255e-1 at index of 196.
+	[196]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL X 4: Channel 1 does not equal [0,0,0,0.9947001934051514,0.770577609539032,0.9109301567077637,0.7706682085990906,0.9842367172241211,0.3202291429042816,-0.9348859190940857,-0.8055058121681213,-0.8837443590164185,-0.8007677793502808,-0.9286618232727051,-0.6026888489723206,0.7909701466560364...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[3]	1.3482510112226009e-2	9.9470019340515137e-1	9.8121768329292536e-1	9.8644565447798760e-1	4.7683715820312500e-7
+	[4]	1.0444675572216511e-2	7.7057760953903198e-1	7.6013293396681547e-1	9.8644565395760120e-1	4.7683715820312500e-7
+	[5]	1.2347062118351460e-2	9.1093015670776367e-1	8.9858309458941221e-1	9.8644565444734467e-1	4.7683715820312500e-7
+	[6]	1.0445903055369854e-2	7.7066820859909058e-1	7.6022230554372072e-1	9.8644565464253642e-1	4.7683715820312500e-7
+	[7]	1.3340684585273266e-2	9.8423671722412109e-1	9.7089603263884783e-1	9.8644565443270749e-1	4.7683715820312500e-7
+	...and 1271 more errors.
+	Max AbsError of 9.8443668708205223e-1 at index of 274.
+	[274]	-1.3526741415262222e-2	-9.9796342849731445e-1	9.8443668708205223e-1	9.8644565419032426e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565485846292e-1 at index of 350.
+	[350]	8.9482078328728676e-3	6.6017264127731323e-1	6.5122443344444036e-1	9.8644565485846292e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL < [4-channel input] 2 out of 2 assertions were failed. assert_true: expected true got false
 PASS > [5.1-channel input] 5.1->2 downmix producing 2-channel output 
+FAIL X 5.1: Channel 0 does not equal [0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248,-0.8348914980888367...] with an element-wise tolerance of {"absoluteThreshold":0.0000011511867343774294,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[2]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	1.1511867343774294e-6
+	[3]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	1.1511867343774294e-6
+	[4]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	1.1511867343774294e-6
+	[5]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	1.1511867343774294e-6
+	[6]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	1.1511867343774294e-6
+	...and 1271 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 235.
+	[235]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	1.1511867343774294e-6
+	Max RelError of 9.8644565493170255e-1 at index of 196.
+	[196]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	1.1511867343774294e-6
+ assert_true: expected true got false
+FAIL X 5.1: Channel 1 does not equal [0,0,0,0.9947001934051514,0.770577609539032,0.9109301567077637,0.7706682085990906,0.9842367172241211,0.3202291429042816,-0.9348859190940857,-0.8055058121681213,-0.8837443590164185,-0.8007677793502808,-0.9286618232727051,-0.6026888489723206,0.7909701466560364...] with an element-wise tolerance of {"absoluteThreshold":0.0000011511867343774294,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[3]	1.3482510112226009e-2	9.9470019340515137e-1	9.8121768329292536e-1	9.8644565447798760e-1	1.1511867343774294e-6
+	[4]	1.0444675572216511e-2	7.7057760953903198e-1	7.6013293396681547e-1	9.8644565395760120e-1	1.1511867343774294e-6
+	[5]	1.2347062118351460e-2	9.1093015670776367e-1	8.9858309458941221e-1	9.8644565444734467e-1	1.1511867343774294e-6
+	[6]	1.0445903055369854e-2	7.7066820859909058e-1	7.6022230554372072e-1	9.8644565464253642e-1	1.1511867343774294e-6
+	[7]	1.3340684585273266e-2	9.8423671722412109e-1	9.7089603263884783e-1	9.8644565443270749e-1	1.1511867343774294e-6
+	...and 1271 more errors.
+	Max AbsError of 9.8443668708205223e-1 at index of 274.
+	[274]	-1.3526741415262222e-2	-9.9796342849731445e-1	9.8443668708205223e-1	9.8644565419032426e-1	1.1511867343774294e-6
+	Max RelError of 9.8644565485846292e-1 at index of 350.
+	[350]	8.9482078328728676e-3	6.6017264127731323e-1	6.5122443344444036e-1	9.8644565485846292e-1	1.1511867343774294e-6
+ assert_true: expected true got false
+FAIL < [5.1-channel input] 2 out of 2 assertions were failed. assert_true: expected true got false
 PASS > [2-channel input, explicit mode] produces 2-channel output 
+FAIL X 2-in explicit mode: Channel 0 does not equal [0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248,-0.8348914980888367...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[2]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	4.7683715820312500e-7
+	[3]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	4.7683715820312500e-7
+	[4]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	4.7683715820312500e-7
+	[5]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	4.7683715820312500e-7
+	[6]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	4.7683715820312500e-7
+	...and 1271 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 235.
+	[235]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565493170255e-1 at index of 196.
+	[196]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL X 2-in explicit mode: Channel 1 does not equal [0,0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[3]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	4.7683715820312500e-7
+	[4]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	4.7683715820312500e-7
+	[5]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	4.7683715820312500e-7
+	[6]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	4.7683715820312500e-7
+	[7]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	4.7683715820312500e-7
+	...and 1270 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 236.
+	[236]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565493170255e-1 at index of 197.
+	[197]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL < [2-channel input, explicit mode] 2 out of 2 assertions were failed. assert_true: expected true got false
 PASS > [3-channel input explicit mode] 3->1 downmix producing 2-channel output 
+FAIL X 3-in explicit: Channel 0 does not equal [0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248,-0.8348914980888367...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[2]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	4.7683715820312500e-7
+	[3]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	4.7683715820312500e-7
+	[4]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	4.7683715820312500e-7
+	[5]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	4.7683715820312500e-7
+	[6]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	4.7683715820312500e-7
+	...and 1271 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 235.
+	[235]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565493170255e-1 at index of 196.
+	[196]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL X 3-in explicit: Channel 1 does not equal [0,0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[3]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	4.7683715820312500e-7
+	[4]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	4.7683715820312500e-7
+	[5]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	4.7683715820312500e-7
+	[6]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	4.7683715820312500e-7
+	[7]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	4.7683715820312500e-7
+	...and 1270 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 236.
+	[236]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565493170255e-1 at index of 197.
+	[197]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL < [3-channel input explicit mode] 2 out of 2 assertions were failed. assert_true: expected true got false
 PASS > [4-channel input explicit mode] 4->1 downmix producing 2-channel output 
+FAIL X 4-in explicit: Channel 0 does not equal [0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248,-0.8348914980888367...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[2]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	4.7683715820312500e-7
+	[3]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	4.7683715820312500e-7
+	[4]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	4.7683715820312500e-7
+	[5]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	4.7683715820312500e-7
+	[6]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	4.7683715820312500e-7
+	...and 1271 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 235.
+	[235]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565493170255e-1 at index of 196.
+	[196]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL X 4-in explicit: Channel 1 does not equal [0,0,0,0.9485263228416443,0.8472320437431335,0.8233562111854553,0.8645461201667786,0.8454251289367676,0.858031690120697,0.7955960035324097,0.9893835186958313,0.39837583899497986,-0.7808233499526978,-0.9249736070632935,-0.7918891906738281,-0.875220775604248...] with an element-wise tolerance of {"absoluteThreshold":4.76837158203125e-7,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[3]	1.2856653891503811e-2	9.4852632284164429e-1	9.3566966895014048e-1	9.8644565408265406e-1	4.7683715820312500e-7
+	[4]	1.1483675800263882e-2	8.4723204374313354e-1	8.3574836794286966e-1	9.8644565454638833e-1	4.7683715820312500e-7
+	[5]	1.1160055175423622e-2	8.2335621118545532e-1	8.1219615601003170e-1	9.8644565374765858e-1	4.7683715820312500e-7
+	[6]	1.1718356981873512e-2	8.6454612016677856e-1	8.5282776318490505e-1	9.8644565430515962e-1	4.7683715820312500e-7
+	[7]	1.1459184810519218e-2	8.4542512893676758e-1	8.3396594412624836e-1	9.8644565388666572e-1	4.7683715820312500e-7
+	...and 1270 more errors.
+	Max AbsError of 9.7670867852866650e-1 at index of 236.
+	[236]	-1.3420553877949715e-2	-9.9012923240661621e-1	9.7670867852866650e-1	9.8644565432602205e-1	4.7683715820312500e-7
+	Max RelError of 9.8644565493170255e-1 at index of 197.
+	[197]	8.1549119204282761e-3	6.0164558887481689e-1	5.9349067695438862e-1	9.8644565493170255e-1	4.7683715820312500e-7
+ assert_true: expected true got false
+FAIL < [4-channel input explicit mode] 2 out of 2 assertions were failed. assert_true: expected true got false
 PASS > [5.1-channel input explicit mode] 5.1->1 downmix producing 2-channel output 
-PASS # AUDIT TASK RUNNER FINISHED: 10 tasks ran successfully. 
+FAIL X 5.1-in explicit: Channel 0 does not equal [0,0,3.329847812652588,2.7786030769348145,1.9672815799713135,1.0015714168548584,0.10620647668838501,0.11284172534942627,0.06448185443878174,-0.363946795463562,-1.115907073020935,-0.9956827163696289,-0.7403642535209656,0.11553817987442017,1.4179216623306274,0.1121702715754509...] with an element-wise tolerance of {"absoluteThreshold":0.0000016280238925805544,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[2]	4.5133907347917557e-2	3.3298478126525879e+0	3.2847139053046703e+0	9.8644565461027378e-1	1.6280238925805544e-6
+	[3]	3.7662148475646973e-2	2.7786030769348145e+0	2.7409409284591675e+0	9.8644565364938930e-1	1.6280238925805544e-6
+	[4]	2.6665214449167252e-2	1.9672815799713135e+0	1.9406163655221462e+0	9.8644565438895837e-1	1.6280238925805544e-6
+	[5]	1.3575645163655281e-2	1.0015714168548584e+0	9.8799577169120312e-1	9.8644565436353449e-1	1.6280238925805544e-6
+	[6]	1.4395592734217644e-3	1.0620647668838501e-1	1.0476691741496325e-1	9.8644565455602584e-1	1.6280238925805544e-6
+	...and 1272 more errors.
+	Max AbsError of 3.4085995815694332e+0 at index of 37.
+	[37]	-4.6836171299219131e-2	-3.4554357528686523e+0	3.4085995815694332e+0	9.8644565413773455e-1	1.6280238925805544e-6
+	Max RelError of 9.8644565496877257e-1 at index of 622.
+	[622]	-1.9645565189421177e-3	-1.4493924379348755e-1	1.4297468727454543e-1	9.8644565496877257e-1	1.6280238925805544e-6
+ assert_true: expected true got false
+FAIL X 5.1-in explicit: Channel 1 does not equal [0,0,0,3.329847812652588,2.7786030769348145,1.9672815799713135,1.0015714168548584,0.10620647668838501,0.11284172534942627,0.06448185443878174,-0.363946795463562,-1.115907073020935,-0.9956827163696289,-0.7403642535209656,0.11553817987442017,1.4179216623306274...] with an element-wise tolerance of {"absoluteThreshold":0.0000016280238925805544,"relativeThreshold":0}.
+	Index	Actual			Expected		AbsError		RelError		Test threshold
+	[3]	4.5133907347917557e-2	3.3298478126525879e+0	3.2847139053046703e+0	9.8644565461027378e-1	1.6280238925805544e-6
+	[4]	3.7662148475646973e-2	2.7786030769348145e+0	2.7409409284591675e+0	9.8644565364938930e-1	1.6280238925805544e-6
+	[5]	2.6665214449167252e-2	1.9672815799713135e+0	1.9406163655221462e+0	9.8644565438895837e-1	1.6280238925805544e-6
+	[6]	1.3575645163655281e-2	1.0015714168548584e+0	9.8799577169120312e-1	9.8644565436353449e-1	1.6280238925805544e-6
+	[7]	1.4395592734217644e-3	1.0620647668838501e-1	1.0476691741496325e-1	9.8644565455602584e-1	1.6280238925805544e-6
+	...and 1271 more errors.
+	Max AbsError of 3.4085995815694332e+0 at index of 38.
+	[38]	-4.6836171299219131e-2	-3.4554357528686523e+0	3.4085995815694332e+0	9.8644565413773455e-1	1.6280238925805544e-6
+	Max RelError of 9.8644565496877257e-1 at index of 623.
+	[623]	-1.9645565189421177e-3	-1.4493924379348755e-1	1.4297468727454543e-1	9.8644565496877257e-1	1.6280238925805544e-6
+ assert_true: expected true got false
+FAIL < [5.1-channel input explicit mode] 2 out of 2 assertions were failed. assert_true: expected true got false
+FAIL # AUDIT TASK RUNNER FINISHED: 9 out of 10 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/gain-expected.txt (265712 => 265713)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/gain-expected.txt	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/gain-expected.txt	2020-08-14 22:54:08 UTC (rev 265713)
@@ -1,10 +1,15 @@
 
 PASS # AUDIT TASK RUNNER STARTED. 
 PASS Executing "create context" 
-FAIL Executing "test" promise_test: Unhandled rejection with value: object "IndexSizeError: The index is not in the allowed range."
+PASS Executing "test" 
 PASS Audit report 
 PASS > [create context] Create context for test 
 PASS < [create context] All assertions passed. (total 0 assertions) 
 PASS > [test] GainNode functionality 
+PASS   Left output from gain node equals [0,0.16793829202651978,0.3311063051223755,0.48486924171447754,0.6248595118522644,0.7471005916595459,0.8481203317642212,0.9250492453575134,0.9757021069526672,0.998640239238739,0.9932119250297546,0.9595715403556824,0.898674488067627,0.8122506141662598,0.7027547359466553,0.5732971429824829...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":1.1877e-7}. 
+PASS   Right output from gain node equals [0,0.16793829202651978,0.3311063051223755,0.48486924171447754,0.6248595118522644,0.7471005916595459,0.8481203317642212,0.9250492453575134,0.9757021069526672,0.998640239238739,0.9932119250297546,0.9595715403556824,0.898674488067627,0.8122506141662598,0.7027547359466553,0.5732971429824829...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":1.1877e-7}. 
+PASS   Left SNR (in dB) is greater than or equal to 148.71. 
+PASS   Right SNR (in dB) is greater than or equal to 148.71. 
+PASS < [test] All assertions passed. (total 4 assertions) 
 PASS # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully. 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext-expected.txt (265712 => 265713)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext-expected.txt	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext-expected.txt	2020-08-14 22:54:08 UTC (rev 265713)
@@ -11,10 +11,10 @@
 PASS   context = new OfflineAudioContext(3, 42, 12345) did not throw an exception. 
 PASS   context.length is equal to 42. 
 PASS   context.sampleRate is equal to 12345. 
-FAIL X context.destination.channelCount is not equal to 3. Got 2. assert_true: expected true got false
-FAIL X context.destination.channelCountMode is not equal to explicit. Got max. assert_true: expected true got false
+PASS   context.destination.channelCount is equal to 3. 
+PASS   context.destination.channelCountMode is equal to explicit. 
 PASS   context.destination.channelInterpretation is equal to speakers. 
-FAIL < [basic] 2 out of 8 assertions were failed. assert_true: expected true got false
+PASS < [basic] All assertions passed. (total 8 assertions) 
 PASS > [options-1] Required options 
 PASS   new OfflineAudioContext() threw TypeError: "Not enough arguments". 
 PASS   new OfflineAudioContext({}) threw TypeError: "Member OfflineAudioContextOptions.length is required and must be an instance of unsigned long". 
@@ -21,12 +21,12 @@
 PASS   new OfflineAudioContext({"length":42}) threw TypeError: "Member OfflineAudioContextOptions.sampleRate is required and must be an instance of float". 
 PASS   new OfflineAudioContext({"sampleRate":12345}) threw TypeError: "Member OfflineAudioContextOptions.length is required and must be an instance of unsigned long". 
 PASS   c2 = new OfflineAudioContext({"length":42,"sampleRate":12345}) did not throw an exception. 
-FAIL X c2.destination.channelCount is not equal to 1. Got 2. assert_true: expected true got false
+PASS   c2.destination.channelCount is equal to 1. 
 PASS   c2.length is equal to 42. 
 PASS   c2.sampleRate is equal to 12345. 
-FAIL X c2.destination.channelCountMode is not equal to explicit. Got max. assert_true: expected true got false
+PASS   c2.destination.channelCountMode is equal to explicit. 
 PASS   c2.destination.channelInterpretation is equal to speakers. 
-FAIL < [options-1] 2 out of 10 assertions were failed. assert_true: expected true got false
+PASS < [options-1] All assertions passed. (total 10 assertions) 
 PASS > [options-2] Invalid options 
 PASS   new OfflineAudioContext({"length":42,"sampleRate":8000,"numberOfChannels":33}) threw SyntaxError: "Number of channels is not in range". 
 PASS   new OfflineAudioContext({"length":0,"sampleRate":8000}) threw SyntaxError: "length cannot be 0". 
@@ -36,11 +36,11 @@
 PASS   c = new OfflineAudioContext{"length":1,"sampleRate":8000}) did not throw an exception. 
 PASS   c.length is equal to 1. 
 PASS   c.sampleRate is equal to 8000. 
-FAIL X c.destination.channelCount is not equal to 1. Got 2. assert_true: expected true got false
-FAIL X c.destination.channelCountMode is not equal to explicit. Got max. assert_true: expected true got false
+PASS   c.destination.channelCount is equal to 1. 
+PASS   c.destination.channelCountMode is equal to explicit. 
 PASS   c.destination.channelCountMode is equal to speakers. 
 PASS   c = new OfflineAudioContext{"length":1,"sampleRate":8000,"numberOfChannels":7}) did not throw an exception. 
-FAIL X c.destination.channelCount is not equal to 7. Got 2. assert_true: expected true got false
-FAIL < [options-3] 3 out of 8 assertions were failed. assert_true: expected true got false
-FAIL # AUDIT TASK RUNNER FINISHED: 3 out of 4 tasks were failed. assert_true: expected true got false
+PASS   c.destination.channelCount is equal to 7. 
+PASS < [options-3] All assertions passed. (total 8 assertions) 
+PASS # AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully. 
 

Modified: trunk/Source/WebCore/ChangeLog (265712 => 265713)


--- trunk/Source/WebCore/ChangeLog	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/Source/WebCore/ChangeLog	2020-08-14 22:54:08 UTC (rev 265713)
@@ -1,3 +1,23 @@
+2020-08-14  Chris Dumez  <[email protected]>
+
+        OfflineAudioContext.destination has incorrect number of channels & channel count mode
+        https://bugs.webkit.org/show_bug.cgi?id=215522
+
+        Reviewed by Eric Carlson.
+
+        OfflineAudioContext.destination currently always has a number of channels that is 0, no
+        matter the numberOfChannels provided when constructing the OfflineAudioContext. The
+        channel count mode is also "max" instead of "explicit" (as per [1]).
+
+        [1] https://www.w3.org/TR/webaudio/#AudioDestinationNode
+
+        No new tests, rebaselined existing tests.
+
+        * Modules/webaudio/OfflineAudioDestinationNode.cpp:
+        (WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
+        (WebCore::OfflineAudioDestinationNode::maxChannelCount const):
+        * Modules/webaudio/OfflineAudioDestinationNode.h:
+
 2020-08-14  James Darpinian  <[email protected]>
 
         [WebGL2] releaseShaderCompiler is not allowed to be supported in WebGL

Modified: trunk/Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp (265712 => 265713)


--- trunk/Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp	2020-08-14 22:54:08 UTC (rev 265713)
@@ -47,6 +47,7 @@
     , m_framesToProcess(renderTarget->length())
 {
     m_renderBus = AudioBus::create(renderTarget->numberOfChannels(), renderQuantumSize);
+    initializeDefaultNodeOptions(renderTarget->numberOfChannels(), ChannelCountMode::Explicit, ChannelInterpretation::Speakers);
 }
 
 OfflineAudioDestinationNode::~OfflineAudioDestinationNode()
@@ -54,6 +55,11 @@
     uninitialize();
 }
 
+unsigned OfflineAudioDestinationNode::maxChannelCount() const
+{
+    return m_renderTarget->numberOfChannels();
+}
+
 void OfflineAudioDestinationNode::initialize()
 {
     if (isInitialized())

Modified: trunk/Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.h (265712 => 265713)


--- trunk/Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.h	2020-08-14 22:42:31 UTC (rev 265712)
+++ trunk/Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.h	2020-08-14 22:54:08 UTC (rev 265713)
@@ -63,6 +63,8 @@
     OfflineRenderResult offlineRender();
     void notifyOfflineRenderingSuspended();
 
+    unsigned maxChannelCount() const final;
+
     // This AudioNode renders into this AudioBuffer.
     RefPtr<AudioBuffer> m_renderTarget;
     
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to