expeditaet
Version:
Advent of Code Solutions
55 lines (45 loc) • 1.96 kB
text/typescript
import { loadTaskResources } from '@alexaegis/advent-of-code-lib';
import { describe, expect, it } from 'vitest';
import packageJson from '../package.json';
import { p2, passportChecks } from './p2.js';
describe('2020 - Day 4 - Part Two', () => {
it('should solve the input', async () => {
const resources = await loadTaskResources(packageJson.aoc);
expect(p2(resources.input)).toEqual(224);
});
it('should solve the first example', async () => {
const resources = await loadTaskResources(packageJson.aoc, 'example.1.txt');
expect(p2(resources.input)).toEqual(2);
});
it('should solve the all valid example', async () => {
const resources = await loadTaskResources(packageJson.aoc, 'example.valid.txt');
expect(p2(resources.input)).toEqual(4);
});
it('should solve the all invalid example', async () => {
const resources = await loadTaskResources(packageJson.aoc, 'example.invalid.txt');
expect(p2(resources.input)).toEqual(0);
});
it('should solve for the second input', async () => {
const resources = await loadTaskResources(packageJson.aoc, 'input.2.txt');
expect(p2(resources.input)).toEqual(198);
});
it('should have a working byr check', () => {
expect(passportChecks.byr('2002')).toEqual(true);
expect(passportChecks.byr('2003')).toEqual(false);
});
it('should have a working hgt check', () => {
expect(passportChecks.hgt('60in')).toEqual(true);
expect(passportChecks.hgt('190cm')).toEqual(true);
expect(passportChecks.hgt('190in')).toEqual(false);
expect(passportChecks.hgt('190')).toEqual(false);
});
it('should have a working hcl check', () => {
expect(passportChecks.hcl('#123abc')).toEqual(true);
expect(passportChecks.hcl('#123abz')).toEqual(false);
expect(passportChecks.hcl('123abc')).toEqual(false);
});
it('should have a working pid check', () => {
expect(passportChecks.pid('000000001')).toEqual(true);
expect(passportChecks.pid('0123456789')).toEqual(false);
});
});