assertthat
Version:
assertthat provides fluent TDD.
49 lines (48 loc) • 2.23 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
/* eslint-disable no-console */
const benchmarks_1 = require("./benchmarks");
const calculateLinearRegressionDeviations_1 = require("./util/calculateLinearRegressionDeviations");
const formatResults_1 = require("./util/formatResults");
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const runAveragedBenchmark_1 = require("./util/runAveragedBenchmark");
// eslint-disable-next-line @typescript-eslint/no-floating-promises
(async () => {
console.log('Running benchmarks.');
let benchmarkOutput = 'Benchmarks Results\n\n';
try {
for (const benchmark of benchmarks_1.benchmarks) {
console.log(`Running benchmark '${benchmark.name}'`);
benchmarkOutput += `Benchmark ${benchmark.name}:\n`;
const results = [];
for (const scale of benchmark.scales) {
console.log(` Scale ${scale}`);
const { averageTime, deviation } = await (0, runAveragedBenchmark_1.runAveragedBenchmark)({
benchmark,
scale,
howManyTimes: 20
});
results.push({
scale,
unit: benchmark.unit,
time: averageTime,
deviation
});
}
const resultsWithDeviations = (0, calculateLinearRegressionDeviations_1.calculateLinearRegressionDeviations)({ benchmarkResults: results });
const formattedResults = (0, formatResults_1.formatResults)({ results: resultsWithDeviations, precision: 2 });
console.log(formattedResults);
benchmarkOutput += formattedResults;
benchmarkOutput += '\n';
}
}
catch (ex) {
console.log('An exception occured during benchmarks.', { ex });
}
await fs_1.default.promises.writeFile(path_1.default.join(__dirname, '..', 'benchmark_output.txt'), benchmarkOutput, 'utf-8');
})();
/* eslint-enable no-console */