use super::*;
#[test]
fn audio_solver_custom_endpoint() {
let s = AudioCaptchaSolver::new().with_stt_endpoint("http://custom:9999/stt");
assert_eq!(s.stt_endpoint, "http://custom:9999/stt");
}
#[test]
fn jittered_audio_delay_varies_and_stays_in_band() {
let nominal_ms = 2_000_u64;
let low = (nominal_ms as f64 * (1.0 - AUDIO_DELAY_JITTER_SPREAD)) as u128; let high = (nominal_ms as f64 * (1.0 + AUDIO_DELAY_JITTER_SPREAD)) as u128; let mut seen = std::collections::HashSet::new();
for _ in 0..200 {
let ms = jittered_audio_delay(nominal_ms).as_millis();
assert!(
ms >= low && ms <= high,
"jittered delay {ms}ms out of band [{low},{high}] for nominal {nominal_ms}"
);
seen.insert(ms);
}
assert!(
seen.len() > 20,
"jitter barely varied ({} distinct of 200), cadence is still ~fixed",
seen.len()
);
}
#[test]
fn jittered_audio_delay_floor_is_at_least_1ms() {
for nominal in [0_u64, 1, 2] {
assert!(jittered_audio_delay(nominal).as_millis() >= 1);
}
}