Solve 2024-12
Add side-aware coordinate utils
This commit is contained in:
@@ -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);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user