use crate::inference::windows::CHUNK_THRESHOLD_SAMPLES;
use crate::test_support;
#[test]
fn test_transcribe_samples_silence_yields_empty_text() {
let (engine, _tmp) = test_support::rnnt_engine();
let mut guard = engine.pool.checkout_blocking().expect("checkout");
let silence = vec![0.0f32; 16000 * 2]; let result = engine
.transcribe_samples(&silence, &mut guard)
.expect("silence transcription must not error");
assert!(result.text.trim().is_empty(), "silence yields no text");
assert!(result.words.is_empty());
assert!((result.duration_s - 2.0).abs() < 1e-6);
}
#[test]
fn test_transcribe_samples_short_sub_frame_audio() {
let (engine, _tmp) = test_support::rnnt_engine();
let mut guard = engine.pool.checkout_blocking().expect("checkout");
let tiny = vec![0.0f32; 100]; let result = engine
.transcribe_samples(&tiny, &mut guard)
.expect("sub-frame audio must not error");
assert!((result.duration_s - 100.0 / 16000.0).abs() < 1e-9);
}
#[test]
fn test_transcribe_samples_below_chunk_threshold_single_pass() {
let (engine, _tmp) = test_support::rnnt_engine();
let mut guard = engine.pool.checkout_blocking().expect("checkout");
let samples = vec![0.0f32; CHUNK_THRESHOLD_SAMPLES]; let result = engine
.transcribe_samples(&samples, &mut guard)
.expect("at-threshold audio must not error");
assert!(result.words.is_empty(), "silence decodes to no words");
}