public void Parser()
        {
            var subject = new Day4Solution();

            subject.Parse(new List <string>
            {
                "[1518-11-01 00:25] wakes up",
                "[1518-11-01 00:00] Guard #10 begins shift",
                "[1518-11-01 00:05] falls asleep",
            }).Should().BeInAscendingOrder(
                x => x.Timestamp,
                "reasons",
                new Day4Solution.GuardLog()
            {
                Id        = 10,
                Event     = Day4Solution.EventType.BeginShift,
                Timestamp = new DateTime(1518, 11, 1, 0, 0, 0)
            }, new Day4Solution.GuardLog
            {
                Event     = Day4Solution.EventType.FallsAsleep,
                Timestamp = new DateTime(1518, 11, 1, 0, 5, 0)
            }, new Day4Solution.GuardLog
            {
                Event     = Day4Solution.EventType.WakesUp,
                Timestamp = new DateTime(1518, 11, 1, 0, 25, 0)
            });
        }
Exemple #2
0
 private static void Main(string[] args)
 {
     Day1Solution.Run();
     Day2Solution.Run();
     Day3Solution.Run();
     Day4Solution.Run();
 }
        public void What()
        {
            var subject = new Day4Solution();

            subject.SolvePart1(new List <Day4Solution.GuardLog>
            {
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.BeginShift, Timestamp = new DateTime(1518, 11, 1, 0, 0, 0), Id = 10
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.FallsAsleep, Timestamp = new DateTime(1518, 11, 1, 0, 5, 0)
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.WakesUp, Timestamp = new DateTime(1518, 11, 1, 0, 25, 0)
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.FallsAsleep, Timestamp = new DateTime(1518, 11, 1, 0, 30, 0)
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.WakesUp, Timestamp = new DateTime(1518, 11, 1, 0, 55, 0)
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.BeginShift, Timestamp = new DateTime(1518, 11, 1, 23, 58, 0), Id = 99
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.FallsAsleep, Timestamp = new DateTime(1518, 11, 2, 0, 40, 0)
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.WakesUp, Timestamp = new DateTime(1518, 11, 2, 0, 50, 0)
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.BeginShift, Timestamp = new DateTime(1518, 11, 3, 0, 5, 0), Id = 10
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.FallsAsleep, Timestamp = new DateTime(1518, 11, 3, 0, 24, 0)
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.WakesUp, Timestamp = new DateTime(1518, 11, 3, 0, 29, 0)
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.BeginShift, Timestamp = new DateTime(1518, 11, 4, 0, 2, 0), Id = 99
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.FallsAsleep, Timestamp = new DateTime(1518, 11, 4, 0, 36, 0)
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.WakesUp, Timestamp = new DateTime(1518, 11, 4, 0, 46, 0)
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.BeginShift, Timestamp = new DateTime(1518, 11, 5, 0, 3, 0), Id = 99
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.FallsAsleep, Timestamp = new DateTime(1518, 11, 5, 0, 45, 0)
                },
                new Day4Solution.GuardLog {
                    Event = Day4Solution.EventType.WakesUp, Timestamp = new DateTime(1518, 11, 5, 0, 55, 0)
                },
            }).Should().Be(240);
        }
Exemple #4
0
        public void InIt()
        {
            _mockData = new List <string>()
            {
                "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",
            };
            var autoMocker = new AutoMoqer();

            _fileReaderMock = autoMocker.GetMock <IFileReader>();
            _fileReaderMock.Setup(f => f.ReadFileToStringArray(It.IsAny <string>())).Returns(_mockData);

            _solution = new Day4Solution(_fileReaderMock.Object);
        }
Exemple #5
0
        public void ShouldFindValidPasswordsWithValidData()
        {
            var validInput = new List <string>()
            {
                "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",
            };

            _fileReaderMock.Setup(f => f.ReadFileToStringArray(It.IsAny <string>())).Returns(validInput);
            _solution = new Day4Solution(_fileReaderMock.Object);

            var validPassports = _solution.GetPasspoortsWithRequiredFields();
            var validData      = _solution.GetPassportsWithValidData(validPassports);

            Assert.AreEqual(validData.Count, 4);
        }
Exemple #6
0
        public void ShouldNotFindValidPasswordsWithInvalidData()
        {
            var validInput = new List <string>()
            {
                "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",
            };

            _fileReaderMock.Setup(f => f.ReadFileToStringArray(It.IsAny <string>())).Returns(validInput);
            _solution = new Day4Solution(_fileReaderMock.Object);

            var validPassports = _solution.GetPasspoortsWithRequiredFields();
            var validData      = _solution.GetPassportsWithValidData(validPassports);

            Assert.AreEqual(validData.Count, 0);
        }
Exemple #7
0
 public void TestSetup()
 {
     _itemUnderTest = new Day4Solution();
 }