public void Should_find_correct_column()
        {
            var input          = "RLR";
            var binaryBoarding = new BinaryBoarding();
            var column         = binaryBoarding.getNumber(input);

            Assert.Equal(5, column);
        }
        public void Should_find_correct_row()
        {
            var input          = "FBFBBFF";
            var binaryBoarding = new BinaryBoarding();
            var row            = binaryBoarding.getNumber(input);

            Assert.Equal(44, row);
        }
        public void Should_be_same_number_of_tickets_and_seats()
        {
            var inputReaders   = new InputReaders();
            var binaryBoarding = new BinaryBoarding();
            var path           = @"C:\Users\emollett\Documents\sites\AdventOfCode2020\AdventOfCode2020\Inputs\05_BinaryBoarding.txt";
            var tickets        = inputReaders.readLines(path);

            var seats = binaryBoarding.getMultipleSeatInfo(tickets);

            Assert.Equal(tickets.Length, seats.Count);
        }
Exemple #4
0
        public void ExamplePartOne(string input, int expected)
        {
            // Arrange
            var scanner = new BinaryBoarding(new[] { input });

            // Act
            var max = scanner.SearchMax();

            // Assert
            Assert.AreEqual(expected, max);
        }
        public void Should_find_correct_seat_info()
        {
            var input = "FBFBBFFRLR";

            var binaryBoarding = new BinaryBoarding();

            var seatInfo = binaryBoarding.getSeatInfo(input);

            Assert.Equal(44, seatInfo.Row);
            Assert.Equal(5, seatInfo.Column);
            Assert.Equal(357, seatInfo.Seat);
        }
Exemple #6
0
 public void ShouldFindEmptySeat(int emptySeatId, params int[] filledSeats)
 {
     BinaryBoarding.FindEmptySeat(filledSeats)
     .Should().Be(emptySeatId);
 }
Exemple #7
0
 public void ShouldReturnSeatId(string seat, int seatId)
 {
     BinaryBoarding.GetSeatId(seat)
     .Should().Be(seatId);
 }
 public void Setup()
 => _scanner = new BinaryBoarding(File.ReadLines(Path.Combine(AppContext.BaseDirectory, $"App_Data/{5.ToString("D2")}.txt")));
Exemple #9
0
        static void Main(string[] args)
        {
            // Day 1
            var    sum          = 2020;
            string day1FilePath = @"C:\Users\musomanu\source\advent-of-code-2020\2020-Day-1\ReportRepairInput.txt";

            ReportRepair reportRepair        = new ReportRepair(day1FilePath);
            var          twoEntriesProduct   = reportRepair.Find2EntriesProduct(sum);
            var          threeEntriesProduct = reportRepair.Find3EntriesProduct(sum);

            Console.WriteLine($"Day 1: Product of 2 entries that add upto {sum}: {twoEntriesProduct}");
            Console.WriteLine($"Day 1: Product of 3 entries that add upto {sum}: {threeEntriesProduct}");
            Console.WriteLine();

            // Day 2
            string day2FilePath = @"C:\Users\musomanu\source\advent-of-code-2020\2020-Day-2\PasswordPhilosophyInput.txt";

            PasswordPhilosophy passwordPhilosophy = new PasswordPhilosophy(day2FilePath);
            var numberOfValidPasswords            = passwordPhilosophy.GetValidPasswordsCount();
            var numberOfValidPasswordsRevised     = passwordPhilosophy.GetValidPasswordsCountRevised();

            Console.WriteLine($"Day 2: Number of valid passwords: {numberOfValidPasswords}");
            Console.WriteLine($"Day 2: Number of valid passwords (revised policy): {numberOfValidPasswordsRevised}");
            Console.WriteLine();

            // Day 3
            string day3FilePath = @"C:\Users\musomanu\source\advent-of-code-2020\2020-Day-3\TobogganTrajectoryInput.txt";

            TobogganTrajectory tobogganTrajectory = new TobogganTrajectory(day3FilePath);
            var numberOfTreesEncountered          = tobogganTrajectory.TreesEncountered(0, 0, 3, 1);
            var numberofTreesEncountered_1        = tobogganTrajectory.TreesEncountered(0, 0, 1, 1);
            var numberofTreesEncountered_2        = tobogganTrajectory.TreesEncountered(0, 0, 3, 1);
            var numberofTreesEncountered_3        = tobogganTrajectory.TreesEncountered(0, 0, 5, 1);
            var numberofTreesEncountered_4        = tobogganTrajectory.TreesEncountered(0, 0, 7, 1);
            var numberofTreesEncountered_5        = tobogganTrajectory.TreesEncountered(0, 0, 1, 2);
            var numberofTreesEncounteredProduct   = numberofTreesEncountered_1 * numberofTreesEncountered_2 * numberofTreesEncountered_3 * numberofTreesEncountered_4 * numberofTreesEncountered_5;

            Console.WriteLine($"Day 3: Number of trees encountered: {numberOfTreesEncountered}");
            Console.WriteLine($"Day 3: Number of trees encountered (all slopes product): {numberofTreesEncounteredProduct}");
            Console.WriteLine();

            // Day 4
            string day4FilePath = @"C:\Users\musomanu\source\advent-of-code-2020\2020-Day-4\PassportProcessingInput.txt";

            PassportProcessing passportProcessing = new PassportProcessing(day4FilePath);
            var numberOfValidPassports            = passportProcessing.GetValidPassportsCount();
            var numberOfValidPassportsRevised     = passportProcessing.GetValidPassportsCountRevised();

            Console.WriteLine($"Day 4: Number of valid passports: {numberOfValidPassports}");
            Console.WriteLine($"Day 4: Number of valid passports (revised validation): {numberOfValidPassportsRevised}");
            Console.WriteLine();

            // Day 5
            string day5FilePath = @"C:\Users\musomanu\source\advent-of-code-2020\2020-Day-5\BinaryBoardingInput.txt";

            BinaryBoarding binaryBoarding = new BinaryBoarding(day5FilePath);
            var            highestSeatId  = binaryBoarding.GetHighestSeatId();
            var            mySeatId       = binaryBoarding.GetMySeatId();

            Console.WriteLine($"Day 5: Highest seat id: {highestSeatId}");
            Console.WriteLine($"Day 5: My seat id: {mySeatId}");
            Console.WriteLine();
        }