advent-of-code/tests/aoc_2024/day2/test-part2.py
2024-12-03 15:31:18 +01:00

68 lines
2 KiB
Python

from pathlib import Path
from aoc_2024.day2 import part2
def test_report_with_tolerance_with_decreasing_levels_less_than_3_is_safe():
report = [7, 6, 4, 2, 1]
assert part2.is_report_safe_with_tolerance(report)
def test_report_with_tolerance_with_decreasing_levels_more_than_3_is_not_safe():
report = [9, 7, 6, 2, 1]
assert not part2.is_report_safe_with_tolerance(report)
def test_report_with_tolerance_without_increasing_or_decreasing_levels_is_not_safe():
report = [8, 6, 4, 4, 1]
assert part2.is_report_safe_with_tolerance(report)
def test_report_with_tolerance_with_increasing_and_decreasing_levels_is_not_safe():
report = [1, 3, 2, 4, 5]
assert part2.is_report_safe_with_tolerance(report)
def test_report_with_tolerance_with_increasing_levels_less_than_3_is_safe():
report = [1, 3, 6, 7, 9]
assert part2.is_report_safe_with_tolerance(report)
def test_report_with_tolerance_with_increasing_levels_more_than_3_is_not_safe():
report = [1, 2, 7, 8, 9]
assert not part2.is_report_safe_with_tolerance(report)
def test_report_with_decreasing_levels_less_than_3_is_safe():
report = [7, 6, 4, 2, 1]
assert part2.is_report_safe(report)
def test_report_with_decreasing_levels_more_than_3_is_not_safe():
report = [9, 7, 6, 2, 1]
assert not part2.is_report_safe(report)
def test_report_without_increasing_or_decreasing_levels_is_not_safe():
report = [8, 6, 4, 4, 1]
assert not part2.is_report_safe(report)
def test_report_with_increasing_and_decreasing_levels_is_not_safe():
report = [1, 3, 2, 4, 5]
assert not part2.is_report_safe(report)
def test_report_with_increasing_levels_less_than_3_is_safe():
report = [1, 3, 6, 7, 9]
assert part2.is_report_safe(report)
def test_report_with_increasing_levels_more_than_3_is_not_safe():
report = [1, 2, 7, 8, 9]
assert not part2.is_report_safe(report)
def test_read_records_file():
test_file = Path(__file__).parent / "test-data"
assert part2.main(test_file) == 4