Harden audio meter regression coverage
This commit is contained in:
@@ -145,6 +145,26 @@ mod tests {
|
||||
assert_eq!(fast.negative_peak(), 0.0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn fast_response_tracks_a_phase_reversal_before_slow_response() {
|
||||
let sample_rate = 48_000;
|
||||
let mut fast = CorrelationMeter::new(sample_rate, 1.0, 0);
|
||||
let mut slow = CorrelationMeter::new(sample_rate, 2.5, 0);
|
||||
for index in 0..sample_rate as usize * 5 {
|
||||
let sample = if index & 1 == 0 { 0.5 } else { -0.5 };
|
||||
fast.process(sample, sample);
|
||||
slow.process(sample, sample);
|
||||
}
|
||||
for index in 0..sample_rate as usize {
|
||||
let sample = if index & 1 == 0 { 0.5 } else { -0.5 };
|
||||
fast.process(sample, -sample);
|
||||
slow.process(sample, -sample);
|
||||
}
|
||||
assert!(fast.value() < slow.value() - 0.35);
|
||||
assert!(fast.negative_peak() < 0.0);
|
||||
assert_eq!(slow.negative_peak(), 0.0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn silence_and_single_channel_are_neutral() {
|
||||
let mut meter = CorrelationMeter::new(48_000, 1.0, 0);
|
||||
|
||||
Reference in New Issue
Block a user