public void Day05CalculateSeatId(string boardingPass, int expectedRow, int expectedSeat, int expectedSeatId) { var sut = new BoardingPassChecker(); var seatId = sut.CalculateSeatID(boardingPass, out int row, out int seat); Assert.Equal(expectedRow, row); Assert.Equal(expectedSeat, seat); Assert.Equal(expectedSeatId, seatId); }
public void Day05HighestSeatId_Part1_Ok() { var boardingPasses = new List <string>(); boardingPasses.AddRange(DailyDataUtilities.ReadLinesFromFile("Day05Data.txt")); Assert.Equal(814, boardingPasses.Count); var checker = new BoardingPassChecker(); int maxSeatId = boardingPasses.Select(bp => checker.CalculateSeatID(bp, out int row, out int seat)).Max(); Assert.Equal(892, maxSeatId); }
public void Day05HighestSeatId_Part2_Ok() { var boardingPasses = new List <string>(); boardingPasses.AddRange(DailyDataUtilities.ReadLinesFromFile("Day05Data.txt")); Assert.Equal(814, boardingPasses.Count); var checker = new BoardingPassChecker(); var Seats = boardingPasses.Select(bp => checker.CalculateSeatID(bp, out int row, out int seat)).ToList(); List <int> emptySeats = new List <int>(); Seats.Sort(); for (int i = 0; i < Seats.Count - 1; i++) { if (Seats[i] + 2 == Seats[i + 1]) { emptySeats.Add(Seats[i] + 1); } } Assert.Equal(1, emptySeats.Count); Assert.Equal(625, emptySeats[0]); }