UNPKG

@angular/benchpress

Version:

Benchpress - a framework for e2e performance tests

24 lines 3.42 kB
/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import { Statistic } from '../statistic'; export function formatNum(n) { return n.toFixed(2); } export function sortedProps(obj) { return Object.keys(obj).sort(); } export function formatStats(validSamples, metricName) { const samples = validSamples.map(measureValues => measureValues.values[metricName]); const mean = Statistic.calculateMean(samples); const cv = Statistic.calculateCoefficientOfVariation(samples, mean); const formattedMean = formatNum(mean); // Note: Don't use the unicode character for +- as it might cause // hickups for consoles... return isNaN(cv) ? formattedMean : `${formattedMean}+-${Math.floor(cv)}%`; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2JlbmNocHJlc3Mvc3JjL3JlcG9ydGVyL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUV2QyxNQUFNLFVBQVUsU0FBUyxDQUFDLENBQVM7SUFDakMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQXlCO0lBQ25ELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxZQUE2QixFQUFFLFVBQWtCO0lBQzNFLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDcEYsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsK0JBQStCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxpRUFBaUU7SUFDakUsMEJBQTBCO0lBQzFCLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsYUFBYSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQztBQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7TWVhc3VyZVZhbHVlc30gZnJvbSAnLi4vbWVhc3VyZV92YWx1ZXMnO1xuaW1wb3J0IHtTdGF0aXN0aWN9IGZyb20gJy4uL3N0YXRpc3RpYyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROdW0objogbnVtYmVyKSB7XG4gIHJldHVybiBuLnRvRml4ZWQoMik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0ZWRQcm9wcyhvYmo6IHtba2V5OiBzdHJpbmddOiBhbnl9KSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnNvcnQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFN0YXRzKHZhbGlkU2FtcGxlczogTWVhc3VyZVZhbHVlc1tdLCBtZXRyaWNOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBzYW1wbGVzID0gdmFsaWRTYW1wbGVzLm1hcChtZWFzdXJlVmFsdWVzID0+IG1lYXN1cmVWYWx1ZXMudmFsdWVzW21ldHJpY05hbWVdKTtcbiAgY29uc3QgbWVhbiA9IFN0YXRpc3RpYy5jYWxjdWxhdGVNZWFuKHNhbXBsZXMpO1xuICBjb25zdCBjdiA9IFN0YXRpc3RpYy5jYWxjdWxhdGVDb2VmZmljaWVudE9mVmFyaWF0aW9uKHNhbXBsZXMsIG1lYW4pO1xuICBjb25zdCBmb3JtYXR0ZWRNZWFuID0gZm9ybWF0TnVtKG1lYW4pO1xuICAvLyBOb3RlOiBEb24ndCB1c2UgdGhlIHVuaWNvZGUgY2hhcmFjdGVyIGZvciArLSBhcyBpdCBtaWdodCBjYXVzZVxuICAvLyBoaWNrdXBzIGZvciBjb25zb2xlcy4uLlxuICByZXR1cm4gaXNOYU4oY3YpID8gZm9ybWF0dGVkTWVhbiA6IGAke2Zvcm1hdHRlZE1lYW59Ky0ke01hdGguZmxvb3IoY3YpfSVgO1xufVxuIl19