import { test, expect, describe } from "vitest"; import Victor from "@a-robu/victor"; const V = (...args) => new Victor(...args); import { expectSolution } from "../01/main.js"; import part1, { moveOnce, sample, puzzleInput } from "./part1.js"; import part2, { bigSample } from "./part2.js"; describe("part 1", () => { test("moveOnce", () => { let head = V(1, 0); let tail = V(0, 0); moveOnce(head, tail)(V(1, 0)); expect(tail).toMatchObject({ x: 1, y: 0 }); moveOnce(head, tail)(V(0, 1)); expect(tail).toMatchObject({ x: 1, y: 0 }); moveOnce(head, tail)(V(0, 1)); expect(tail).toMatchObject({ x: 2, y: 1 }); }); test("sample", () => { expect(part1(sample)).toEqual(13); }); test("solution", () => { expectSolution(part1(puzzleInput)).toEqual(6030); }); }); describe("part 2", () => { test("sample", () => { expect(part2(sample)).toEqual(1); expect(part2(bigSample)).toEqual(36); }); test("solution", () => { expectSolution(part2(puzzleInput)).toEqual(2545); }); });