39 lines
865 B
JavaScript
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,
|
|
})
|
|
);
|
|
});
|