79 lines
1.1 KiB
TypeScript
79 lines
1.1 KiB
TypeScript
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);
|
|
});
|
|
});
|