Skip to content

Commit c71a0e2

Browse files
committed
Add tests for ChannelSplitterNode
1 parent e6f0717 commit c71a0e2

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

src/node/channel_splitter.rs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,3 +160,35 @@ impl AudioProcessor for ChannelSplitterRenderer {
160160
false
161161
}
162162
}
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+
}

0 commit comments

Comments
 (0)