Пример #1
0
 public void Day05_PartOneTest()
 {
     Assert.AreEqual(357, BoardingPassScanner.CalculateSeatNumber("FBFBBFFRLR"));
     Assert.AreEqual(567, BoardingPassScanner.CalculateSeatNumber("BFFFBBFRRR"));
     Assert.AreEqual(119, BoardingPassScanner.CalculateSeatNumber("FFFBBBFRRR"));
     Assert.AreEqual(820, BoardingPassScanner.CalculateSeatNumber("BBFFBBFRLL"));
 }
Пример #2
0
        public void Scan(string seat, int expected)
        {
            var sut    = new BoardingPassScanner();
            var actual = sut.Scan(seat);

            Assert.Equal(expected, actual.SeatId());
        }
Пример #3
0
    public static void Part2()
    {
        BoardingPassScanner scanner = new BoardingPassScanner();

        scanner.ProcessBoardingPasses();
        int uniqueMissingSeatId = scanner.GetUniqueMissingSeatId();

        Console.WriteLine("MissingSeatId : " + uniqueMissingSeatId);
    }
Пример #4
0
    public static void Part1()
    {
        BoardingPassScanner scanner = new BoardingPassScanner();

        scanner.ProcessBoardingPasses();
        int passId = scanner.GetLargestBoardingPassId();

        Console.WriteLine("Largest Pass Id = " + passId.ToString());
    }
Пример #5
0
        public void Part1()
        {
            var parser = new Parser("Day05/Input.txt");
            var lines  = parser.Parse(new BoardingPassFactory());
            var sut    = new BoardingPassScanner();
            var actual = lines.Aggregate(0, (acc, next) =>
            {
                var seat = sut.Scan(next);
                return(Math.Max(acc, seat.SeatId()));
            });

            Assert.Equal(880, actual);
        }
Пример #6
0
        public void Part2()
        {
            var parser = new Parser("Day05/Input.txt");
            var lines  = parser.Parse(new BoardingPassFactory());
            var sut    = new BoardingPassScanner();
            var seats  = new HashSet <int>();

            foreach (var line in lines)
            {
                seats.Add(sut.Scan(line).SeatId());
            }
            var actual = Enumerable.Range(seats.Min(), seats.Max())
                         .SkipWhile(s => seats.Contains(s))
                         .First();

            Assert.Equal(731, actual);
        }