22
33from advent_of_code .year_2025 .day_02 import (
44 check_id_valid ,
5+ check_id_valid_v2 ,
56 convert_range_string_to_pair ,
67 find_invalid_ids_in_range_string ,
78 parse_input ,
1718 [
1819 "11-22,95-115,998-1012,1188511880-1188511890,222220-222224,1698522-1698528,446443-446449,38593856-38593862,565653-565659,824824821-824824827,2121212118-2121212124" # noqa: E501
1920 ],
20- (1227775554 , None ),
21+ (1227775554 , 4174379265 ),
2122 ],
2223 ],
2324)
@@ -28,6 +29,36 @@ def test_solver(input, expected_output):
2829 result = solve (input_parsed )
2930 assert result == expected_output
3031
32+ # 11-22 still has two invalid IDs, 11 and 22.
33+ # 95-115 now has two invalid IDs, 99 and 111.
34+ # 998-1012 now has two invalid IDs, 999 and 1010.
35+ # 1188511880-1188511890 still has one invalid ID, 1188511885.
36+ # 222220-222224 still has one invalid ID, 222222.
37+ # 1698522-1698528 still contains no invalid IDs.
38+ # 446443-446449 still has one invalid ID, 446446.
39+ # 38593856-38593862 still has one invalid ID, 38593859.
40+ # 565653-565659 now has one invalid ID, 565656.
41+ # 824824821-824824827 now has one invalid ID, 824824824.
42+ # 2121212118-2121212124 now has one invalid ID, 2121212121.
43+
44+ @pytest .mark .parametrize (
45+ "input, expected_invalid_ids" ,
46+ [
47+ ["11-22" , [11 , 22 ]],
48+ ["95-115" , [99 , 111 ]],
49+ ["998-1012" , [999 , 1010 ]],
50+ ["1188511880-1188511890" , [1188511885 ]],
51+ ["222220-222224" , [222222 ]],
52+ ["1698522-1698528" , []],
53+ ["446443-446449" , [446446 ]],
54+ ["38593856-38593862" , [38593859 ]],
55+ ["565653-565659" , [565656 ]],
56+ ["824824821-824824827" , [824824824 ]],
57+ ["2121212118-2121212124" , [2121212121 ]],
58+ ],
59+ )
60+ def test_find_invalid_ids_in_range_string_part_2 (input , expected_invalid_ids ):
61+ assert expected_invalid_ids == find_invalid_ids_in_range_string (input , part = 2 )
3162
3263@pytest .mark .parametrize (
3364 "input, expected_invalid_ids" ,
@@ -46,7 +77,7 @@ def test_solver(input, expected_output):
4677 ],
4778)
4879def test_find_invalid_ids_in_range_string (input , expected_invalid_ids ):
49- assert expected_invalid_ids == find_invalid_ids_in_range_string (input )
80+ assert expected_invalid_ids == find_invalid_ids_in_range_string (input , part = 1 )
5081
5182
5283@pytest .mark .parametrize (
@@ -74,7 +105,22 @@ def test_convert_range_string_to_pair(input, expected_pair):
74105
75106@pytest .mark .parametrize (
76107 "input, is_valid" ,
77- [("11" , False ), ("12" , True ), ("22" , False ), ("998" , True ), ("1010" , False )],
108+ [("11" , False ), ("12" , True ), ("22" , False ), ("998" , True ), ("999" , True ), ( " 1010" , False ), ( "565656" , True )],
78109)
79110def test_check_id_valid (input , is_valid ):
80111 assert is_valid == check_id_valid (input )
112+
113+ @pytest .mark .parametrize (
114+ "input, is_valid" ,
115+ [
116+ ("11" , False ),
117+ ("12" , True ),
118+ ("22" , False ),
119+ ("998" , True ),
120+ ("999" , False ),
121+ ("1010" , False ),
122+ ("565656" , False ),
123+ ],
124+ )
125+ def test_check_id_valid_v2 (input , is_valid ):
126+ assert is_valid == check_id_valid_v2 (input )
0 commit comments