astro/benchmark/bench/_util.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

22 lines
642 B
JavaScript
Raw Normal View History

2023-08-25 13:00:51 +00:00
import { createRequire } from 'node:module';
import path from 'node:path';
2023-08-25 13:00:51 +00:00
const astroPkgPath = createRequire(import.meta.url).resolve('astro/package.json');
export const astroBin = path.resolve(astroPkgPath, '../astro.js');
/** @typedef {{ avg: number, stdev: number, max: number }} Stat */
/**
* @param {number[]} numbers
* @returns {Stat}
*/
export function calculateStat(numbers) {
const avg = numbers.reduce((a, b) => a + b, 0) / numbers.length;
const stdev = Math.sqrt(
numbers.map((x) => Math.pow(x - avg, 2)).reduce((a, b) => a + b, 0) / numbers.length
);
const max = Math.max(...numbers);
return { avg, stdev, max };
}