File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -160,3 +160,35 @@ impl AudioProcessor for ChannelSplitterRenderer {
160
160
false
161
161
}
162
162
}
163
+
164
+ #[ cfg( test) ]
165
+ mod tests {
166
+ use crate :: context:: { BaseAudioContext , OfflineAudioContext } ;
167
+ use crate :: node:: { AudioNode , AudioScheduledSourceNode } ;
168
+ use crate :: AudioBuffer ;
169
+
170
+ use float_eq:: assert_float_eq;
171
+
172
+ #[ test]
173
+ fn test_splitter ( ) {
174
+ let sample_rate = 48000. ;
175
+ let mut context = OfflineAudioContext :: new ( 1 , 128 , sample_rate) ;
176
+
177
+ let splitter = context. create_channel_splitter ( 2 ) ;
178
+ // connect the 2nd output to the destination
179
+ splitter. connect_at ( & context. destination ( ) , 1 , 0 ) ;
180
+
181
+ // create buffer with sample value 1. left, value -1. right
182
+ let audio_buffer = AudioBuffer :: from ( vec ! [ vec![ 1. ] , vec![ -1. ] ] , 48000. ) ;
183
+ let mut src = context. create_buffer_source ( ) ;
184
+ src. set_buffer ( audio_buffer) ;
185
+ src. set_loop ( true ) ;
186
+ src. start ( ) ;
187
+ src. connect ( & splitter) ;
188
+
189
+ let buffer = context. start_rendering_sync ( ) ;
190
+
191
+ let mono = buffer. get_channel_data ( 0 ) ;
192
+ assert_float_eq ! ( & mono[ ..] , & [ -1. ; 128 ] [ ..] , abs_all <= 0. ) ;
193
+ }
194
+ }
You can’t perform that action at this time.
0 commit comments