diff --git a/2024/tests/__init__.py b/2024/tests/__init__.py index e69de29..3fb68d9 100644 --- a/2024/tests/__init__.py +++ b/2024/tests/__init__.py @@ -0,0 +1,8 @@ +import os + + +def get_data(day: int, sub: int | None = None) -> str: + basename = f"{day:02d}" if sub is None else f"{day:02d}.{sub}" + sample = os.path.dirname(__file__) + f"/samples/{basename}.txt" + with open(sample, mode="rt", encoding="utf-8") as f: + return f.read() diff --git a/2024/tests/test_day01.py b/2024/tests/test_day01.py new file mode 100644 index 0000000..6039e97 --- /dev/null +++ b/2024/tests/test_day01.py @@ -0,0 +1,11 @@ +from aoc.days.day1 import DayRunner + +from . import get_data + + +def test_sample_part1() -> None: + assert DayRunner.part1(get_data(1)) == 11 + + +def test_sample_part2() -> None: + assert DayRunner.part2(get_data(1)) == 31 diff --git a/2024/tests/test_day2.py b/2024/tests/test_day02.py similarity index 58% rename from 2024/tests/test_day2.py rename to 2024/tests/test_day02.py index f9843b1..671fa2a 100644 --- a/2024/tests/test_day2.py +++ b/2024/tests/test_day02.py @@ -1,12 +1,6 @@ -import os - from aoc.days.day2 import DayRunner, is_savable - -def get_data() -> str: - sample = os.path.dirname(__file__) + "/samples/02.txt" - with open(sample, mode="rt", encoding="utf-8") as f: - return f.read() +from . import get_data def test_individual_samples() -> None: @@ -19,8 +13,8 @@ def test_individual_samples() -> None: def test_sample_part1() -> None: - assert DayRunner.part1(get_data()) == 2 + assert DayRunner.part1(get_data(2)) == 2 def test_sample_part2() -> None: - assert DayRunner.part2(get_data()) == 4 + assert DayRunner.part2(get_data(2)) == 4 diff --git a/2024/tests/test_day3.py b/2024/tests/test_day03.py similarity index 100% rename from 2024/tests/test_day3.py rename to 2024/tests/test_day03.py diff --git a/2024/tests/test_day04.py b/2024/tests/test_day04.py new file mode 100644 index 0000000..3645f9e --- /dev/null +++ b/2024/tests/test_day04.py @@ -0,0 +1,20 @@ +import pytest + +from aoc.days.day4 import DayRunner + +from . import get_data + + +@pytest.mark.parametrize( + "input,answer", + [ + (get_data(4, 1), 4), + (get_data(4, 2), 18), + ], +) +def test_sample_part1(input: str, answer: int) -> None: + assert DayRunner.part1(input) == answer + + +def test_sample_part2() -> None: + assert DayRunner.part2(get_data(4, 2)) == 9 diff --git a/2024/tests/test_day05.py b/2024/tests/test_day05.py new file mode 100644 index 0000000..7f72076 --- /dev/null +++ b/2024/tests/test_day05.py @@ -0,0 +1,15 @@ +from aoc.days.day5 import DayRunner + +from . import get_data + + +def test_sample_part1() -> None: + data = get_data(5) + + assert DayRunner.part1(data) == 143 + + +def test_sample_part2() -> None: + data = get_data(5) + + assert DayRunner.part2(data) == 123 diff --git a/2024/tests/test_day6.py b/2024/tests/test_day06.py similarity index 100% rename from 2024/tests/test_day6.py rename to 2024/tests/test_day06.py diff --git a/2024/tests/test_day07.py b/2024/tests/test_day07.py index b80ba94..3ea1590 100644 --- a/2024/tests/test_day07.py +++ b/2024/tests/test_day07.py @@ -1,17 +1,11 @@ -import os - from aoc.days.day7 import DayRunner - -def get_data() -> str: - sample = os.path.dirname(__file__) + "/samples/07.txt" - with open(sample, mode="rt", encoding="utf-8") as f: - return f.read() +from . import get_data def test_sample_part1() -> None: - assert DayRunner.part1(get_data()) == 3749 + assert DayRunner.part1(get_data(7)) == 3749 def test_sample_part2() -> None: - assert DayRunner.part2(get_data()) == 11387 + assert DayRunner.part2(get_data(7)) == 11387 diff --git a/2024/tests/test_day08.py b/2024/tests/test_day08.py index 66467c3..985b43e 100644 --- a/2024/tests/test_day08.py +++ b/2024/tests/test_day08.py @@ -1,17 +1,11 @@ -import os - from aoc.days.day8 import DayRunner - -def get_data() -> str: - sample = os.path.dirname(__file__) + "/samples/08.txt" - with open(sample, mode="rt", encoding="utf-8") as f: - return f.read() +from . import get_data def test_sample_part1() -> None: - assert DayRunner.part1(get_data()) == 14 + assert DayRunner.part1(get_data(8)) == 14 def test_sample_part2() -> None: - assert DayRunner.part2(get_data()) == 34 + assert DayRunner.part2(get_data(8)) == 34 diff --git a/2024/tests/test_day1.py b/2024/tests/test_day1.py deleted file mode 100644 index 6ef1fde..0000000 --- a/2024/tests/test_day1.py +++ /dev/null @@ -1,17 +0,0 @@ -import os - -from aoc.days.day1 import DayRunner - - -def get_data() -> str: - sample = os.path.dirname(__file__) + "/samples/01.txt" - with open(sample, mode="rt", encoding="utf-8") as f: - return f.read() - - -def test_sample_part1() -> None: - assert DayRunner.part1(get_data()) == 11 - - -def test_sample_part2() -> None: - assert DayRunner.part2(get_data()) == 31 diff --git a/2024/tests/test_day4.py b/2024/tests/test_day4.py deleted file mode 100644 index 7ff7887..0000000 --- a/2024/tests/test_day4.py +++ /dev/null @@ -1,26 +0,0 @@ -import os - -import pytest - -from aoc.days.day4 import DayRunner - - -def get_data(which: int) -> str: - sample = os.path.dirname(__file__) + f"/samples/04.{which}.txt" - with open(sample, mode="rt", encoding="utf-8") as f: - return f.read() - - -@pytest.mark.parametrize( - "input,answer", - [ - (get_data(1), 4), - (get_data(2), 18), - ], -) -def test_sample_part1(input: str, answer: int) -> None: - assert DayRunner.part1(input) == answer - - -def test_sample_part2() -> None: - assert DayRunner.part2(get_data(2)) == 9 diff --git a/2024/tests/test_day5.py b/2024/tests/test_day5.py deleted file mode 100644 index 0677b64..0000000 --- a/2024/tests/test_day5.py +++ /dev/null @@ -1,21 +0,0 @@ -import os - -from aoc.days.day5 import DayRunner - - -def get_data() -> str: - sample = os.path.dirname(__file__) + "/samples/05.txt" - with open(sample, mode="rt", encoding="utf-8") as f: - return f.read() - - -def test_sample_part1() -> None: - data = get_data() - - assert DayRunner.part1(data) == 143 - - -def test_sample_part2() -> None: - data = get_data() - - assert DayRunner.part2(data) == 123