Example #1
0
        public void TestParser(string input, Direction expectedDirection, int expectedNumber)
        {
            var instructions = InstructionParser.ParseInstructions(input);

            var(direction, number) = Assert.Single(instructions) !;
            Assert.Equal(expectedDirection, direction);
            Assert.Equal(expectedNumber, number);
        }
Example #2
0
        public void SolvePuzzle1()
        {
            var input = new FileReader()
                        .GetResource("AdventOfCode2020.Tests.Day12.PuzzleInput.txt");

            var instructions = InstructionParser.ParseInstructions(input);
            var ship         = new Ship(FacingDirection.East, new Position());

            ship = instructions.Aggregate(ship, (current, instruction) => current.PerformInstruction(instruction));

            _testOutputHelper.WriteLine(ship.GetManhanttanDistance().ToString());
        }
Example #3
0
        public void Example1(string input, int distance)
        {
            var instructions = InstructionParser.ParseInstructions(input.Replace("|", Environment.NewLine));
            var ship         = new Ship(FacingDirection.East, new Position());

            foreach (var instruction in instructions)
            {
                ship = ship.PerformInstruction(instruction);
            }

            Assert.Equal(distance, ship.GetManhanttanDistance());
        }
Example #4
0
        public void Example2(string input, int distance)
        {
            var instructions = InstructionParser.ParseInstructions(input.Replace("|", Environment.NewLine));
            var waypoint     = new Waypoint(FacingDirection.East, new Position {
                Horizontal = 10, Vertical = 1
            });
            var ship = new WaypointShip(FacingDirection.East, new Position(), waypoint);

            foreach (var instruction in instructions)
            {
                ship = ship.PerformInstruction(instruction);
            }

            Assert.Equal(distance, ship.GetManhanttanDistance());
        }