34 lines
850 B
JavaScript
34 lines
850 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,
|
||
|
}));
|
||
|
})
|