public void TaskSolves_GuardMostAsleepMinutes(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 minute = scrubber.MostAsleepGuardMinute(10); Assert.Equal(24, minute); }
public override string Solve() { var solver = new ScheduleScrubber(new GuardMinuteFactory(InputReader)); var guardId = solver.MostAsleepGuard(); var minute = solver.MostAsleepGuardMinute(guardId); return((guardId * minute).ToString()); }