tests/testthat/test-day04.R

test_that("day 4", {
  x <- (
    "
    ecl:gry pid:860033327 eyr:2020 hcl:#fffffd
    byr:1937 iyr:2017 cid:147 hgt:183cm

    iyr:2013 ecl:amb cid:350 eyr:2023 pid:028048884
    hcl:#cfa07d byr:1929

    hcl:#ae17e1 iyr:2013
    eyr:2024
    ecl:brn pid:760753108 byr:1931
    hgt:179cm

    hcl:#cfa07d eyr:2025 pid:166559648
    iyr:2011 ecl:brn hgt:59in
    "
  )
  x <- read_text_lines(x, drop_empty = "head/tail")
  results <- check_for_valid_passports(x)

  expect_equal(results, c(TRUE, FALSE, TRUE, FALSE))

  x_bad <-
    "
    eyr:1972 cid:100
    hcl:#18171d ecl:amb hgt:170 pid:186cm iyr:2018 byr:1926

      iyr:2019
    hcl:#602927 eyr:1967 hgt:170cm
      ecl:grn pid:012533040 byr:1946

    hcl:dab227 iyr:2012
    ecl:brn hgt:182cm pid:021572410 eyr:2020 byr:1992 cid:277

    hgt:59cm ecl:zzz
    eyr:2038 hcl:74454a iyr:2023
    pid:3556412378 byr:2007
    "

  x_good <-
    "
    pid:087499704 hgt:74in ecl:grn iyr:2012 eyr:2030 byr:1980
    hcl:#623a2f

    eyr:2029 ecl:blu cid:129 byr:1989
    iyr:2014 pid:896056539 hcl:#a97842 hgt:165cm

    hcl:#888785
    hgt:164cm byr:2001 iyr:2015 cid:88
    pid:545766238 ecl:hzl
    eyr:2022

    iyr:2010 hgt:158cm hcl:#b6652a ecl:blu byr:1944 eyr:2021 pid:093154719
    "

  x_good <- read_text_lines(x_good, drop_empty = "head/tail")
  x_bad <- read_text_lines(x_bad, drop_empty = "head/tail")

  expect_equal(check_for_valider_passports(x_good), 4)
  expect_equal(check_for_valider_passports(x_bad), 0)
})
tjmahr/adventofcode20 documentation built on Dec. 31, 2020, 8:39 a.m.