package main
import (
"fmt"
"testing"
)
func TestTask1ShouldFindResult(t *testing.T) {
input := []Passport{
{
"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",
},
}
expect := 2
result := Task1(input)
if result != expect {
t.Errorf("got %d, expected %d", result, expect)
}
}
func TestTask2ShouldFindResult(t *testing.T) {
input := []Passport{
{
"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",
},
{
"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",
},
}
expect := 4
result := Task2(input)
if result != expect {
t.Errorf("got %d, expected %d", result, expect)
}
}
func TestPretty(t *testing.T) {
input := []Passport{
{
"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",
},
}
for _, i := range input {
fmt.Println(i)
if i.HasAllFields() && i.IsValid() {
fmt.Printf("***VALID***\n\n")
} else {
fmt.Printf("***INVALID***\n\n")
}
}
}