コード例 #1
0
ファイル: Day04Tests.cs プロジェクト: Jaxwood/aoc2020
        public void Part2(string filepath, int expected)
        {
            var parser    = new Parser(filepath);
            var factory   = new PassportFactory();
            var passports = parser.Parse(factory).Where(p => p != null);
            var sut       = new PassportValidator(passports, new Rule[] {
                new InRangeRule(p => p.BirthYear, 1920, 2020),
                new InRangeRule(p => p.ExperationYear, 2020, 2030),
                new ContainsRule(p => p.EyeColor, new [] { "amb", "blu", "brn", "gry", "grn", "hzl", "oth" }),
                new RegexRule(p => p.HairColor, "^#[0-9a-f]{6}$"),
                new PredicateRule(
                    p => p.Unit == Unit.Metric,
                    new InRangeRule(p => p.Height, 150, 193),
                    new InRangeRule(p => p.Height, 59, 76)
                    ),
                new InRangeRule(p => p.IssueYear, 2010, 2020),
                new RegexRule(p => p.PassportId, "^[0-9]{9}$"),
            });
            var actual = sut.Validate();

            Assert.Equal(expected, actual);
        }