Restructure tests

This commit is contained in:
2024-12-08 10:32:08 +01:00
parent dfee3d4e11
commit dcb0f4514d
12 changed files with 63 additions and 91 deletions

View File

@@ -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()

11
2024/tests/test_day01.py Normal file
View File

@@ -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

View File

@@ -1,12 +1,6 @@
import os
from aoc.days.day2 import DayRunner, is_savable from aoc.days.day2 import DayRunner, is_savable
from . import get_data
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()
def test_individual_samples() -> None: def test_individual_samples() -> None:
@@ -19,8 +13,8 @@ def test_individual_samples() -> None:
def test_sample_part1() -> None: def test_sample_part1() -> None:
assert DayRunner.part1(get_data()) == 2 assert DayRunner.part1(get_data(2)) == 2
def test_sample_part2() -> None: def test_sample_part2() -> None:
assert DayRunner.part2(get_data()) == 4 assert DayRunner.part2(get_data(2)) == 4

20
2024/tests/test_day04.py Normal file
View File

@@ -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

15
2024/tests/test_day05.py Normal file
View File

@@ -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

View File

@@ -1,17 +1,11 @@
import os
from aoc.days.day7 import DayRunner from aoc.days.day7 import DayRunner
from . import get_data
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()
def test_sample_part1() -> None: def test_sample_part1() -> None:
assert DayRunner.part1(get_data()) == 3749 assert DayRunner.part1(get_data(7)) == 3749
def test_sample_part2() -> None: def test_sample_part2() -> None:
assert DayRunner.part2(get_data()) == 11387 assert DayRunner.part2(get_data(7)) == 11387

View File

@@ -1,17 +1,11 @@
import os
from aoc.days.day8 import DayRunner from aoc.days.day8 import DayRunner
from . import get_data
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()
def test_sample_part1() -> None: def test_sample_part1() -> None:
assert DayRunner.part1(get_data()) == 14 assert DayRunner.part1(get_data(8)) == 14
def test_sample_part2() -> None: def test_sample_part2() -> None:
assert DayRunner.part2(get_data()) == 34 assert DayRunner.part2(get_data(8)) == 34

View File

@@ -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

View File

@@ -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

View File

@@ -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