Ejemplo n.º 1
0
        public void FindValidPassports_WithDefaultInput_ShouldReturn2()
        {
            string testInput = @"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";

            string[] passportsData = new List <string>(
                testInput.Split(Environment.NewLine)
                )
                                     .Select(s => s.Trim())
                                     .ToArray();

            int             validPassports  = 0;
            PassportBuilder passportBuilder = new PassportBuilder();

            for (int i = 0; i <= passportsData.Length; i++)
            {
                if (i == passportsData.Length || IsAnEmptyLine(passportsData[i]))
                {
                    Passport passport = passportBuilder.CreatePassport();
                    passport.HackRequirements(new string[] { "byr", "iyr", "eyr", "hgt", "hcl", "ecl", "pid" });

                    if (passport.AreAllRequiredDataSet())
                    {
                        validPassports++;
                    }

                    passportBuilder = new PassportBuilder();
                }
                else
                {
                    passportBuilder.AddData(passportsData[i]);
                }
            }

            Assert.Equal(2, validPassports);
        }