// 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); }