26 lines
763 B
Rust
26 lines
763 B
Rust
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
use molotov_core::audio::buffer::AudioRingBuffer;
|
|
|
|
#[test]
|
|
fn test_ring_buffer_write_and_read() {
|
|
let mut buffer = AudioRingBuffer::new(1024);
|
|
let samples = [0.1f32, 0.2, 0.3, 0.4];
|
|
|
|
assert_eq!(buffer.write(&samples), 4);
|
|
assert_eq!(buffer.available_read(), 4);
|
|
|
|
let mut out = [0.0f32; 4];
|
|
assert_eq!(buffer.read(&mut out), 4);
|
|
assert_eq!(out, samples);
|
|
assert_eq!(buffer.available_read(), 0);
|
|
}
|
|
|
|
#[test]
|
|
fn test_ring_buffer_underrun_fills_silence() {
|
|
let mut buffer = AudioRingBuffer::new(1024);
|
|
let mut out = [1.0f32; 4];
|
|
|
|
// Reading from empty buffer returns 0 read, but caller can zero memory
|
|
let read_count = buffer.read(&mut out);
|
|
assert_eq!(read_count, 0);
|
|
}
|