/** Median of numeric samples; empty input yields null (not zero). */ export const medianOf = (values: ReadonlyArray): number | null => { if (values.length === 0) return null const sorted = [...values].sort((a, b) => a - b) const middle = Math.floor(sorted.length / 2) return sorted.length % 2 === 0 ? (sorted[middle - 1] + sorted[middle]) / 2 : sorted[middle] }