import pytest from main import check_contains_no_bad_chars, check_doubled_char, check_vowel_count, check_if_nice, check_nonoverlapping_repeats, check_repeat_everyother, check_if_nice_part2 @pytest.mark.parametrize('given, expected', [ ('aei', True), ('xazegov', True), ('aeiouaeiouaeiou', True), ('mnqpcbt', False) ]) def test_vowel_counting(given, expected): assert check_vowel_count(given) == expected @pytest.mark.parametrize('given, expected', [ ('aabbccdd', True), ('whythisword', False), ('hegwjzuvuyypxyu', True) ]) def test_double_counting(given, expected): assert check_doubled_char(given) == expected @pytest.mark.parametrize('given, expected', [ ('aabbccdd', False), ('whythisword', True) ]) def test_bad_chars(given, expected): assert check_contains_no_bad_chars(given) == expected @pytest.mark.parametrize('given, expected', [ ('ugknbfddgicrmopn', True), ('aaa', True), ('jchzalrnumimnmhp', False), ('haegwjzuvuyypxyu', False), ('dvszwmarrgswjxmb', False) ]) def test_examples(given, expected): assert check_if_nice(given) == expected @pytest.mark.parametrize('given, expected', [ ('xyxy', True), ('xxyxx', True), ('aaa', False) ]) def test_nonopverlapping(given, expected): assert check_nonoverlapping_repeats(given) == expected @pytest.mark.parametrize('given, expected', [ ('xyx', True), ('xxyxx', True), ('abcdefeghi', True), ('aaa', True), ('blargh', False) ]) def test_repeat_everyother(given, expected): assert check_repeat_everyother(given) == expected @pytest.mark.parametrize('given, expected', [ ('qjhvhtzxzqqjkmpb', True), ('xxyxx', True), ('uurcxstgmygtbstg', False), ('ieodomkazucvgmuy', False) ]) def test_part2_examples(given, expected): assert check_if_nice_part2(given) == expected