示例#1
0
        public void TestPart2(string program, string input, string expectedOutput)
        {
            var day7 = new Day7Part2();
            var val  = day7.RunProgram(program, input);

            val.ToString().ShouldBe(expectedOutput);
        }
示例#2
0
        public void SupportsSslReturnsCorrectValue(string address, bool expected)
        {
            var sut = new Day7Part2(address);

            var actual = sut.SupportsSsl();

            Assert.Equal(expected, actual);
        }
示例#3
0
        public void SplitAddressReturnsCorrectCount(string address, int expected)
        {
            var sut = new Day7Part2(address);

            var actual = sut.AddressParts.Count;

            Assert.Equal(expected, actual);
        }
示例#4
0
        public async Task SamplePart2_1_looking()
        {
            long[] program =
            {
                3,  26, 1001,   26, -4, 26,  3,   27, 1002, 27,  2, 27, 1, 27, 26,
                27,  4,   27, 1001, 28, -1, 28, 1005,   28,  6, 99,  0, 0, 5
            };
            var expected = 139629729;
            var result   = await Day7Part2.AmplificationCircuitWithFeedbackLoop(program);

            Assert.Equal(expected, result);
        }
示例#5
0
        public async Task SamplePart2_1()
        {
            long[] program =
            {
                3,  26, 1001,   26, -4, 26,  3,   27, 1002, 27,  2, 27, 1, 27, 26,
                27,  4,   27, 1001, 28, -1, 28, 1005,   28,  6, 99,  0, 0, 5
            };
            var secuence = (9, 8, 7, 6, 5);
            var expected = 139629729;
            var result   = await Day7Part2.ExecuteCombinationWithFeedback(program, secuence);

            Assert.Equal(expected, result);
        }
示例#6
0
        public async Task SamplePart2_2_Looking()
        {
            long[] program =
            {
                3,    52, 1001, 52, -5,   52,  3, 53,  1,   52, 56, 54, 1007,   54,  5, 55, 1005, 55, 26, 1001, 54,
                -5,   54, 1105,  1, 12,    1, 53, 54, 53, 1008, 54,  0,   55, 1001, 55,  1,   55,  2, 53,   55, 53,4,
                53, 1001,   56, -1, 56, 1005, 56,  6, 99,    0,  0,  0,    0, 10
            };
            var expected = 18216;
            var result   = await Day7Part2.AmplificationCircuitWithFeedbackLoop(program);

            Assert.Equal(expected, result);
        }
示例#7
0
        public async Task SamplePart2_2()
        {
            long[] program =
            {
                3,    52, 1001, 52, -5,   52,  3, 53,  1,   52, 56, 54, 1007,   54,  5, 55, 1005, 55, 26, 1001, 54,
                -5,   54, 1105,  1, 12,    1, 53, 54, 53, 1008, 54,  0,   55, 1001, 55,  1,   55,  2, 53,   55, 53,4,
                53, 1001,   56, -1, 56, 1005, 56,  6, 99,    0,  0,  0,    0, 10
            };
            var secuence = (9, 7, 8, 5, 6);
            var expected = 18216;
            var result   = await Day7Part2.ExecuteCombinationWithFeedback(program, secuence);

            Assert.Equal(expected, result);
        }