Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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]);
        }