コード例 #1
0
        public void MostAsleepGuardOnSameMinute(Mock <IInputReader> inputReaderMock)
        {
            inputReaderMock.Setup(x => x.ReadLines()).Returns(new List <string>
            {
                "[1518-11-01 00:00] Guard #10 begins shift",
                "[1518-11-01 00:05] falls asleep",
                "[1518-11-01 00:25] wakes up",
                "[1518-11-01 00:30] falls asleep",
                "[1518-11-01 00:55] wakes up",
                "[1518-11-01 23:58] Guard #99 begins shift",
                "[1518-11-02 00:40] falls asleep",
                "[1518-11-02 00:50] wakes up",
                "[1518-11-03 00:05] Guard #10 begins shift",
                "[1518-11-03 00:24] falls asleep",
                "[1518-11-03 00:29] wakes up",
                "[1518-11-04 00:02] Guard #99 begins shift",
                "[1518-11-04 00:36] falls asleep",
                "[1518-11-04 00:46] wakes up",
                "[1518-11-05 00:03] Guard #99 begins shift",
                "[1518-11-05 00:45] falls asleep",
                "[1518-11-05 00:55] wakes up",
            });

            var scrubber = new ScheduleScrubber(new GuardMinuteFactory(inputReaderMock.Object));

            var(guard, minute) = scrubber.MostAsleepGuardOnSameMinute();

            Assert.Equal(99, guard);
            Assert.Equal(45, minute);
        }
コード例 #2
0
        public void TaskSolves_GuardWithMostAsleepMinutesTimesId(Mock <IInputReader> inputReaderMock)
        {
            inputReaderMock.Setup(x => x.ReadLines()).Returns(new List <string>
            {
                "[1518-11-01 00:00] Guard #10 begins shift",
                "[1518-11-01 00:05] falls asleep",
                "[1518-11-01 00:25] wakes up",
                "[1518-11-01 00:30] falls asleep",
                "[1518-11-01 00:55] wakes up",
                "[1518-11-01 23:58] Guard #99 begins shift",
                "[1518-11-02 00:40] falls asleep",
                "[1518-11-02 00:50] wakes up",
                "[1518-11-03 00:05] Guard #10 begins shift",
                "[1518-11-03 00:24] falls asleep",
                "[1518-11-03 00:29] wakes up",
                "[1518-11-04 00:02] Guard #99 begins shift",
                "[1518-11-04 00:36] falls asleep",
                "[1518-11-04 00:46] wakes up",
                "[1518-11-05 00:03] Guard #99 begins shift",
                "[1518-11-05 00:45] falls asleep",
                "[1518-11-05 00:55] wakes up",
            });

            var scrubber = new ScheduleScrubber(new GuardMinuteFactory(inputReaderMock.Object));

            var guardId = scrubber.MostAsleepGuard();

            Assert.Equal(10, guardId);
        }
コード例 #3
0
        public override string Solve()
        {
            var solver = new ScheduleScrubber(new GuardMinuteFactory(InputReader));

            var(guardId, minute) = solver.MostAsleepGuardOnSameMinute();

            return((guardId * minute).ToString());
        }