Solve 2024-12

Add side-aware coordinate utils
This commit is contained in:
2024-12-12 19:19:44 +01:00
parent 3c9b48b3a6
commit feb1b40408
5 changed files with 266 additions and 3 deletions
+78
View File
@@ -0,0 +1,78 @@
import { describe, expect, it } from 'bun:test';
import { getSides, solveFirst, solveSecond } from './index.ts';
describe('2024-12', () => {
it('first', () => {
expect(
solveFirst(`AAAA
BBCD
BBCC
EEEC`)
).toBe(140);
expect(
solveFirst(`OOOOO
OXOXO
OOOOO
OXOXO
OOOOO`)
).toBe(772);
expect(
solveFirst(`RRRRIICCFF
RRRRIICCCF
VVRRRCCFFF
VVRCCCJFFF
VVVVCJJCFE
VVIVCCJJEE
VVIIICJJEE
MIIIIIJJEE
MIIISIJEEE
MMMISSJEEE`)
).toBe(1930);
});
it('second', () => {
// it takes too long
// so only run while `NODE_ENV=production bun test --coverage`
if (process.env.NODE_ENV === 'production') {
expect(
solveSecond(`EEEEE
EXXXX
EEEEE
EXXXX
EEEEE`)
).toBe(236);
expect(
solveSecond(`AAAA
BBCD
BBCC
EEEC`)
).toBe(80);
expect(
solveSecond(`OOOOO
OXOXO
OOOOO
OXOXO
OOOOO`)
).toBe(436);
expect(
solveSecond(`AAAAAA
AAABBA
AAABBA
ABBAAA
ABBAAA
AAAAAA`)
).toBe(368);
}
});
it('sides', () => {
expect(
getSides([
[0, 0],
[1, 0],
[2, 0],
[0, 1]
])
).toBe(6);
});
});