Merge branch 'gemini/mixer-edge-tests': mixer edge-case unit tests
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -892,4 +892,42 @@ mod tests {
|
||||
let level = frame_level(&full);
|
||||
assert!(level > 0.99 && level <= 1.0, "full-scale level was {level}");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn volume_truncates_toward_zero() {
|
||||
let mut frame = vec![3, -3, 5, -5];
|
||||
apply_volume(&mut frame, 0.5);
|
||||
assert_eq!(frame, vec![1, -1, 2, -2]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn volume_amplifies_without_saturating() {
|
||||
let mut frame = vec![1000, -1000];
|
||||
apply_volume(&mut frame, 2.0);
|
||||
assert_eq!(frame, vec![2000, -2000]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn three_peers_sum_without_saturation() {
|
||||
let a = vec![10, 20];
|
||||
let b = vec![3, 4];
|
||||
let c = vec![100, -50];
|
||||
let mixed = mix_frames(&[a, b, c], 2);
|
||||
assert_eq!(mixed, vec![113, -26]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn mix_zero_pads_output_longer_than_peer_frames() {
|
||||
let a = vec![100, 200];
|
||||
let mixed = mix_frames(&[a], 4);
|
||||
assert_eq!(mixed, vec![100, 200, 0, 0]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn frame_level_mid_range() {
|
||||
let frame = vec![16384; 64];
|
||||
let level = frame_level(&frame);
|
||||
assert!((level - 0.5).abs() < 1e-3, "mid-range level was {level}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user