コード例 #1
0
        private static void SolvePartOne(List <string> lines)
        {
            Console.WriteLine("Part I");
            var sum = new PortComputer().ProcessInput(lines);

            Console.WriteLine($"sum: {sum}");
        }
コード例 #2
0
        public void Part2(string filepath, long expected)
        {
            var parser = new Parser(filepath);
            var masks  = parser.Parse(new BitmaskFactory())
                         .Where(m => m != null);
            var sut    = new PortComputer(masks, new AddressDecoder());
            var actual = sut.Decode(true);

            Assert.Equal(expected, actual);
        }
コード例 #3
0
        public static ulong Problem2()
        {
            List <string> instructions = File.ReadAllLines("Data/Day14.txt").ToList();
            PortComputer  pc           = new PortComputer();

            pc.ParseInstuctions2(instructions);
            ulong result = pc.Sum();

            Console.WriteLine(result);
            return(result);
        }
コード例 #4
0
        public static void ExecuteDay(string fileLocation = "PuzzleInput/Day14.txt")
        {
            string[] inputs = File.ReadAllText(fileLocation).Split(Environment.NewLine);

            PortComputer pc = new PortComputer(inputs);

            pc.Run();

            Logger.LogMessage(LogLevel.ANSWER, "13A: " + pc.GetSumOfMemory());

            Logger.LogMessage(LogLevel.ANSWER, "13B: " + 2);
        }
コード例 #5
0
        public void Example2()
        {
            List <string> instructions = new List <string>
            {
                "mask = 000000000000000000000000000000X1001X",
                "mem[42] = 100",
                "mask = 00000000000000000000000000000000X0XX",
                "mem[26] = 1"
            };

            PortComputer pc = new PortComputer();

            pc.ParseInstuctions2(instructions);

            ulong result = pc.Sum();

            Assert.AreEqual((ulong)208, result);
        }
コード例 #6
0
        public void Example1()
        {
            List <string> instructions = new List <string>
            {
                "mask = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXX0X",
                "mem[8] = 11",
                "mem[7] = 101",
                "mem[8] = 0"
            };

            PortComputer pc = new PortComputer();

            pc.ParseInstuctions(instructions);

            ulong result = pc.Sum();

            Assert.AreEqual((ulong)165, result);
        }
コード例 #7
0
        public void ShouldProcessInput()
        {
            // Arrange
            var input = new List <string>
            {
                "mask = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXX0X",
                "mem[8] = 11",
                "mem[7] = 101",
                "mem[8] = 0"
            };

            var pc = new PortComputer();

            // Act
            var res = pc.ProcessInput(input);

            // Assert
            res.Should().Be(165);
        }