in src/results.rs [243:257]
fn quantile_duration(&self, mut data: Vec<Duration>, quantile: f64) -> anyhow::Result<f64> {
if self.is_ready() {
data.sort();
let i = (quantile * (data.len() - 1) as f64).floor();
let delta = (data.len() - 1) as f64 * quantile - i;
if i as usize >= data.len() {
return Err(anyhow::anyhow!(NoResponses));
}
let quantile = (1. - delta) * data[i as usize].as_secs_f64()
+ delta * data[i as usize + 1].as_secs_f64();
Ok(quantile)
} else {
Err(anyhow::anyhow!(NoResponses))
}
}