def test_passport_is_really_valid(): assert day4.Passport( """pid:087499704 hgt:74in ecl:grn iyr:2012 eyr:2030 byr:1980 hcl:#623a2f""").is_really_valid() is True assert day4.Passport("""eyr:2029 ecl:blu cid:129 byr:1989 iyr:2014 pid:896056539 hcl:#a97842 hgt:165cm""").is_really_valid() is True assert day4.Passport("""hcl:#888785 hgt:164cm byr:2001 iyr:2015 cid:88 pid:545766238 ecl:hzl eyr:2022""").is_really_valid() is True assert day4.Passport( """iyr:2010 hgt:158cm hcl:#b6652a ecl:blu byr:1944 eyr:2021 pid:093154719""" ).is_really_valid() is True
def test_passport_is_really_valid_false(): assert day4.Passport("""eyr:1972 cid:100 hcl:#18171d ecl:amb hgt:170 pid:186cm iyr:2018 byr:1926""").is_really_valid( ) is False assert day4.Passport("""iyr:2019 hcl:#602927 eyr:1967 hgt:170cm ecl:grn pid:012533040 byr:1946""").is_really_valid() is False assert day4.Passport(""" hcl:dab227 iyr:2012 ecl:brn hgt:182cm pid:021572410 eyr:2020 byr:1992 cid:277""").is_really_valid( ) is False assert day4.Passport("""hgt:59cm ecl:zzz eyr:2038 hcl:74454a iyr:2023 pid:3556412378 byr:2007""").is_really_valid() is False
def test_passport_constructor(): assert day4.Passport("""ecl:gry pid:860033327 eyr:2020 hcl:#fffffd byr:1937 iyr:2017 cid:147 hgt:183cm""").fields == { 'byr': '1937', 'cid': '147', 'ecl': 'gry', 'eyr': '2020', 'hcl': '#fffffd', 'hgt': '183cm', 'iyr': '2017', 'pid': '860033327' }
def test_parse_passport(): input = "ecl:gry pid:860033327 eyr:2020 hcl:#fffffd byr:1937 iyr:2017 cid:147 hgt:183cm" passport = day4.Passport(input) assert passport.is_valid()
def test_parse_valid_passport(): input = "byr:2010 pid:#1bb4d8 eyr:2021 hgt:186cm iyr:2020 ecl:grt" passport = day4.Passport(input) assert not passport.is_valid()
def is_not_full_valid(input): passport = day4.Passport(input) assert not passport.is_full_valid()
def test_passport_not_valid(): assert day4.Passport("""iyr:2013 ecl:amb cid:350 eyr:2023 pid:028048884 hcl:#cfa07d byr:1929""").is_valid() is False
def test_passport_valid_no_cid(): assert day4.Passport("""hcl:#ae17e1 iyr:2013 eyr:2024 ecl:brn pid:760753108 byr:1931 hgt:179cm""").is_valid() is True
def test_passport_valid(): assert day4.Passport("""ecl:gry pid:860033327 eyr:2020 hcl:#fffffd byr:1937 iyr:2017 cid:147 hgt:183cm""").is_valid() is True