diff --git a/setup_day.sh b/setup_day.sh new file mode 100755 index 0000000..c6da565 --- /dev/null +++ b/setup_day.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +set -euo pipefail + +day=$1 +day_long=$(printf "%02d" "$day") +dir="day_$day_long" + +puzzle_name=$2 + +mkdir -p "$dir" + +cp solution.ts.template "$dir/solution.ts" + +sed -e "s/%%DAY%%/$day/g" \ + -e "s/%%DAY_LONG%%/$day_long/g" \ + -e "s/%%PUZZLE_NAME%%/$puzzle_name/g" \ + solution.test.ts.template > "$dir/solution.test.ts" + +./get_input.sh "$day" + +touch "$dir/sample.txt" \ No newline at end of file diff --git a/solution.test.ts.template b/solution.test.ts.template new file mode 100644 index 0000000..271020c --- /dev/null +++ b/solution.test.ts.template @@ -0,0 +1,27 @@ +import { readlines } from "../_utils"; + +const solution = require("./solution"); + +describe("day %%DAY%%: %%PUZZLE_NAME%%, pt 1", () => { + test("sample input", async () => { + const sample = await readlines("./day_%%DAY_LONG%%/sample.txt"); + expect(solution.part1_solver(sample)).toBe(0); + }); + + test("submission input", async () => { + const input = await readlines("./day_%%DAY_LONG%%/input.txt"); + expect(solution.part1_solver(input)).toBe(0); + }); +}); + +describe("day %%DAY%%: %%PUZZLE_NAME%%, pt 2", () => { + test("sample input", async () => { + const sample = await readlines("./day_%%DAY_LONG%%/sample.txt"); + expect(solution.part2_solver(sample)).toBe(0); + }); + + test("submission input", async () => { + const input = await readlines("./day_%%DAY_LONG%%/input.txt"); + expect(solution.part2_solver(input)).toBe(0); + }); +}); diff --git a/solution.ts.template b/solution.ts.template new file mode 100644 index 0000000..3d5ef97 --- /dev/null +++ b/solution.ts.template @@ -0,0 +1,14 @@ +/* + +*/ +export function part1_solver(lines: string[]): number { + return 1; +} + + +/* + +*/ +export function part2_solver(lines: string[]): number { + return 1; +}