adventofcode/2023/04/benchmark.js

39 lines
865 B
JavaScript

import fs from "fs-extra";
import { parse } from "yaml";
import { Bench } from "tinybench";
import assert from "assert";
import { solution_1 } from "./part1.js";
import { solution_2 } from "./part2.js";
const input = fs.readFileSync("./input", { encoding: "utf8" });
const solutions = parse(
fs.readFileSync("./solutions.yml", { encoding: "utf8" })
);
const bench = new Bench({ time: 10000 });
bench
.add("1", () => {
assert.equal(solution_1(input), solutions[1]);
})
.add("2", () => {
assert.equal(solution_2(input), solutions[2]);
});
await bench.run();
bench.tasks.forEach(({ result, name }) => {
console.log(
JSON.stringify({
day: 1,
year: 2023,
language: "javascript",
part: name,
timestamp: new Date().toISOString(),
time: result.mean / 1000,
persec: 1000 / result.mean,
})
);
});