public void FindGuardMostFrequentlyAsleepAtSameMinute() { var day4 = new Day4.Day4(); var data = day4.MapDataToShifts(GetExampleData()); var guardsMinutes = day4.ComputeGuardsSleepyTime(data); var actual = day4.FindMostFrequentlyAsleepAtSameMinute(guardsMinutes); var expected = 99 * 45; Assert.AreEqual(expected, actual); }
public void GuardAndMostMinutesAsleepMultiplied() { var day4 = new Day4.Day4(); var data = day4.MapDataToShifts(GetExampleData()); var guardsMinutes = day4.ComputeGuardsSleepyTime(data); var actual = day4.FindGuardMostAsleepAtMinute(guardsMinutes); var expected = 10 * 24; Assert.AreEqual(expected, actual); }
public void MappingPuzzleInputToShift() { var data = GetExampleData(); var day4 = new Day4.Day4(); var result = day4.MapDataToShifts(data); Assert.IsTrue(result[0].Action == Day4.Action.BeginShift); Assert.IsTrue(result[0].DateTime == new DateTime(1518, 11, 1, 0, 0, 0)); Assert.IsTrue(result[0].GuardId == 10); }
public void ShiftDataIsComputedGuardSleepyTime() { var day4 = new Day4.Day4(); var data = new List <Shift> { new Shift { Action = Day4.Action.BeginShift, GuardId = 1, DateTime = new DateTime(2018, 12, 05, 0, 0, 0) }, new Shift { Action = Day4.Action.FallsAsleep, DateTime = new DateTime(2018, 12, 5, 0, 5, 0) }, new Shift { Action = Day4.Action.WakesUp, DateTime = new DateTime(2018, 12, 5, 0, 10, 0) } }; var actual = day4.ComputeGuardsSleepyTime(data); var expected = new List <GuardSleepyTime> { new GuardSleepyTime { GuardId = 1, MinuteAmount = new Dictionary <int, int>(), TotalMinutes = 5 } }; var expectedDict = expected.Single().MinuteAmount; expectedDict.Add(5, 1); expectedDict.Add(6, 1); expectedDict.Add(7, 1); expectedDict.Add(8, 1); expectedDict.Add(9, 1); expectedDict.Add(10, 1); Assert.IsTrue(actual.Single().GuardId == expected.Single().GuardId); Assert.IsTrue(actual.Single().TotalMinutes == expected.Single().TotalMinutes); CollectionAssert.AreEqual(expectedDict, actual.Single().MinuteAmount); }