import pytest from dataset.problem_22.buggy import parse_and_validate_emails def test_parse_and_validate_emails(): emails = [ "user1@example.com", "user2@test.org", "invalid_email@example.com ", # Trailing space "bad-format.com", # No @ symbol "user@notallowed.com", # Not in allowed domains "user_3@example.com" ] allowed_domains = {"example.com", "test.org"} result = parse_and_validate_emails(emails, allowed_domains) # valid_emails: "user1@example.com", "user2@test.org", "user_3@example.com" # "invalid_email@example.com " should be valid after trimming space assert len(result['valid_emails']) == 4 assert "invalid_email@example.com" in result['valid_emails'] # invalid_emails: "bad-format.com", "user@notallowed.com" assert len(result['invalid_emails']) == 2 assert "bad-format.com" in result['invalid_emails'] assert "user@notallowed.com" in result['invalid_emails'] # domain_counts assert isinstance(result['domain_counts'], dict) assert result['domain_counts']['example.com'] == 3 assert result['domain_counts']['test.org'] == 1 def test_empty_list(): result = parse_and_validate_emails([], {"example.com"}) assert result['valid_emails'] == [] assert result['invalid_emails'] == [] assert isinstance(result['domain_counts'], dict) assert len(result['domain_counts']) == 0