test(core): mixer edge cases — volume rounding, multi-peer, frame_level

Extend the mixer unit tests: pin apply_volume's as-i16 truncation-toward-zero
semantics (3*0.5 -> 1, -3*0.5 -> -1, not round-to-nearest), in-range amplify
without clamp, three-peer sum, mix_frames zero-padding when the output is
longer than every peer frame, and frame_level mid-range (constant 16384 ->
~0.5). Tests-only; no production change.

Implemented by Gemini (junior implementer), reviewed and verified by senior
(cargo build + clippy --all-targets + cargo test all green).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 05:57:19 -04:00
co-authored by Claude Opus 4.8
parent 846150659a
commit 915ad8a1ee
+38
View File
@@ -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}");
}
}