@monstermann/tinybench-pretty-printer
Version:
Customizable pretty-printer for tinybench benchmarks
27 lines (25 loc) • 1.21 kB
JavaScript
const require_formatNumber = require('./formatNumber.cjs');
const require_mean = require('./mean.cjs');
//#region src/helpers/createCountFormatter.ts
function createCountFormatter(locales) {
return function formatCount(method, value, values) {
switch (method) {
case "none": return `${require_formatNumber.formatNumber(value, locales)} `;
case "shortest": return formatCount(resolveMethod(value), value, values);
case "highest": return formatCount(resolveMethod(Math.max(...values)), value, values);
case "lowest": return formatCount(resolveMethod(Math.min(...values)), value, values);
case "mean": return formatCount(resolveMethod(require_mean.mean(values)), value, values);
case "thousands": return `${require_formatNumber.formatNumber(value / 1e3, locales)}K`;
case "millions": return `${require_formatNumber.formatNumber(value / 1e6, locales)}M`;
case "billions": return `${require_formatNumber.formatNumber(value / 1e9, locales)}B`;
}
};
}
function resolveMethod(value) {
if (value >= 1e9) return "billions";
if (value >= 1e6) return "millions";
if (value >= 1e3) return "thousands";
return "none";
}
//#endregion
exports.createCountFormatter = createCountFormatter;