import pytest from main import check_valid_id, check_extended_id, part1, part2 @pytest.mark.parametrize('given, expected', [ ('1', True), ('11', False), ('12', True), ('22', False), ('1010', False), ('1012', True), ('1188511885', False), ('222222', False), ('446446', False), ('565656', True), ('446447', True), ('38593859', False), ('385385385', True) ]) def test_check_valid_id(given, expected): assert check_valid_id(given) == expected @pytest.mark.parametrize('given, expected', [ ('1', True), ('12', True), ('1012', True), ('446447', True), ('11', False), ('22', False), ('99', False), ('111', False), ('999', False), ('1010', False), ('1188511885', False), ('222222', False), ('446446', False), ('565656', False), ('38593859', False), ('385385385', False), ('824824824', False), ('2121212121', False) ]) def test_extended_valid_id(given, expected): assert check_extended_id(given) == expected @pytest.mark.parametrize('given, expected', [ ( [ ('11', '22'), ('95', '115'), ('998', '1012'), ('1188511880', '1188511890'), ('222220', '222224'), ('1698522', '1698528'), ('446443', '446449'), ('38593856', '38593862') ], 1227775554 ) ]) def test_part1_examples(given, expected): assert part1(given) == expected @pytest.mark.parametrize('given, expected', [ ( [ ('11', '22'), ('95', '115'), ('998', '1012'), ('1188511880', '1188511890'), ('222220', '222224'), ('1698522', '1698528'), ('446443', '446449'), ('38593856', '38593862'), ('565653', '565659'), ('824824821', '824824827'), ('2121212118', '2121212124') ], 4174379265 ) ]) def test_part2_examples(given, expected): assert part2(given) == expected