use crate::config::Config;
use crate::error::{Error, Result};
const SAMPLES: &[&str] = &[
"The harbor had been quiet since the last storm, the boats tucked tight in their slips.",
"Елена остановилась на пороге, прислушиваясь к шагам внизу.",
"Hélène s'arrêta sur le seuil, guettant le bruit des pas en contrebas.",
"Das Morgenlicht fiel aufs Fenster und färbte den Raum bernsteinfarben.",
"El puerto estaba tranquilo tras la última tormenta, las barcas bien amarradas.",
"Marcus said nothing for a long moment, then nodded once and walked away.",
];
pub fn run(count: usize) -> Result<()> {
let cfg = Config::default();
let engine = crate::store::build_embedding_engine(&cfg.embeddings.model)?;
engine.embed(SAMPLES[0]).map_err(|e| Error::Store(format!("embed warm-up: {e}")))?;
let t = std::time::Instant::now();
for i in 0..count.max(1) {
engine
.embed(SAMPLES[i % SAMPLES.len()])
.map_err(|e| Error::Store(format!("embed: {e}")))?;
}
let total = t.elapsed();
let per_sec = count as f64 / total.as_secs_f64().max(1e-9);
println!("embed_count: {count}");
println!("embed_total_us: {}", total.as_micros());
println!("embed_per_sec: {per_sec:.1}");
Ok(())
}