crate::ix!();
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_biquad_filter() {
let mut filter = BiquadFilter::new();
filter.set_coef(0.5, 0.5, 0.0, 0.5, 0.0, 0.0);
assert_eq!(filter.process_sample(1.0), 0.5);
assert_eq!(filter.process_sample(2.0), 1.25);
assert_eq!(filter.process_sample(3.0), 2.125);
filter.set_coef(1.0, -1.0, 0.0, 1.0, -1.0, 0.0);
assert_eq!(filter.process_sample(1.0), 1.0);
assert_eq!(filter.process_sample(2.0), -1.0);
assert_eq!(filter.process_sample(3.0), 2.0);
let mut filter_stereo = BiquadFilterStereo::new();
filter_stereo.set_coef(0.5, 0.5, 0.0, 0.5, 0.0, 0.0);
let mut left_input = [1.0, 2.0, 3.0];
let mut right_input = [4.0, 5.0, 6.0];
let mut left_output = [0.0; 3];
let mut right_output = [0.0; 3];
filter_stereo.process_block(
&mut left_input,
&mut right_input,
&mut left_output,
&mut right_output
);
assert_eq!(left_output, [0.5, 1.25, 2.125]);
assert_eq!(right_output, [2.0, 2.625, 3.0625]);
}
}