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);
|
let level = frame_level(&full);
|
||||||
assert!(level > 0.99 && level <= 1.0, "full-scale level was {level}");
|
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