(values: list[float])
| 180 | |
| 181 | |
| 182 | def pcts(values: list[float]) -> dict[str, float]: |
| 183 | if not values: |
| 184 | return {} |
| 185 | s = sorted(values) |
| 186 | n = len(s) |
| 187 | |
| 188 | def p(q: float) -> float: |
| 189 | i = min(n - 1, int(q * n)) |
| 190 | return s[i] |
| 191 | |
| 192 | return { |
| 193 | "n": n, |
| 194 | "p50": p(0.50), |
| 195 | "p90": p(0.90), |
| 196 | "p95": p(0.95), |
| 197 | "p99": p(0.99), |
| 198 | "max": s[-1], |
| 199 | "mean": statistics.mean(s), |
| 200 | } |
| 201 | |
| 202 | |
| 203 | def _bucket_stats( |
no test coverage detected