Exemplo n.º 1
0
        public override async Task TestPart1()
        {
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "21", PuzzleString = "109,1,204,-1,1001,100,1,100,1008,100,16,101,1006,101,0,99", OutputValue = "21"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "33", PuzzleString = "109,1,204,-1,1001,100,1,100,1008,100,16,101,1006,101,0,99", OutputValue = "33"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "4", PuzzleString = "1102,34915192,34915192,7,4,7,99,0", OutputValue = "0"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "4", PuzzleString = "104,1125899906842624,99", OutputValue = "1125899906842624"
            });

            foreach (var tito in TestInputOutput)
            {
                var puzzleinput = tito.PuzzleString.Split(',').Select(x => Convert.ToInt64(x)).ToList();
                var intComputer = new Service.IntCodeComputer(puzzleinput, Convert.ToInt32(tito.InputValue));
                intComputer.Start();
                if (tito.OutputValue == intComputer.LocalComputerMemory.ProgramValue.ToString())
                {
                    Debug.WriteLine($"INPUT:{tito.InputValue} - {tito.PuzzleString} - OUTPUT:{tito.OutputValue} = OK");
                }
                else
                {
                    Debug.WriteLine($"INPUT:{tito.InputValue} - {tito.PuzzleString} - OUTPUT:{tito.OutputValue} = NOK");
                    puzzleinput = tito.PuzzleString.Split(',').Select(x => Convert.ToInt64(x)).ToList();
                    var intComputer2 = new Service.IntCodeComputer(puzzleinput, Convert.ToInt32(tito.InputValue));
                    intComputer2.Start();
                }
                intComputer = null;
                puzzleinput = null;
            }
        }
Exemplo n.º 2
0
        public override async Task TestPart1()
        {
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "2", PuzzleString = "3,9,8,9,10,9,4,9,99,-1,8", OutputValue = "0"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "5", PuzzleString = "3,9,8,9,10,9,4,9,99,-1,8", OutputValue = "0"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "8", PuzzleString = "3,9,8,9,10,9,4,9,99,-1,8", OutputValue = "1"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "3", PuzzleString = "3,9,7,9,10,9,4,9,99,-1,8", OutputValue = "1"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "18", PuzzleString = "3,9,7,9,10,9,4,9,99,-1,8", OutputValue = "0"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "10", PuzzleString = "3,3,1108,-1,8,3,4,3,99", OutputValue = "0"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "8", PuzzleString = "3,3,1108,-1,8,3,4,3,99", OutputValue = "1"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "2", PuzzleString = "3,3,1107,-1,8,3,4,3,99", OutputValue = "1"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "8", PuzzleString = "3,3,1107,-1,8,3,4,3,99", OutputValue = "0"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "9", PuzzleString = "3,3,1107,-1,8,3,4,3,99", OutputValue = "0"
            });


            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "0", PuzzleString = "3,12,6,12,15,1,13,14,13,4,13,99,-1,0,1,9", OutputValue = "0"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "9", PuzzleString = "3,12,6,12,15,1,13,14,13,4,13,99,-1,0,1,9", OutputValue = "1"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "33", PuzzleString = "3,12,6,12,15,1,13,14,13,4,13,99,-1,0,1,9", OutputValue = "1"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "0", PuzzleString = "3,3,1105,-1,9,1101,0,0,12,4,12,99,1", OutputValue = "0"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "9", PuzzleString = "3,3,1105,-1,9,1101,0,0,12,4,12,99,1", OutputValue = "1"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "33", PuzzleString = "3,3,1105,-1,9,1101,0,0,12,4,12,99,1", OutputValue = "1"
            });


            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "2", PuzzleString = @"3,21,1008,21,8,20,1005,20,22,107,8,21,20,1006,20,31,
1106,0,36,98,0,0,1002,21,125,20,4,20,1105,1,46,104,
999,1105,1,46,1101,1000,1,20,4,20,1105,1,46,98,99", OutputValue = "999"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "8", PuzzleString = @"3,21,1008,21,8,20,1005,20,22,107,8,21,20,1006,20,31,
1106,0,36,98,0,0,1002,21,125,20,4,20,1105,1,46,104,
999,1105,1,46,1101,1000,1,20,4,20,1105,1,46,98,99", OutputValue = "1000"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "9", PuzzleString = @"3,21,1008,21,8,20,1005,20,22,107,8,21,20,1006,20,31,
1106,0,36,98,0,0,1002,21,125,20,4,20,1105,1,46,104,
999,1105,1,46,1101,1000,1,20,4,20,1105,1,46,98,99", OutputValue = "1001"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "33", PuzzleString = @"3,21,1008,21,8,20,1005,20,22,107,8,21,20,1006,20,31,
1106,0,36,98,0,0,1002,21,125,20,4,20,1105,1,46,104,
999,1105,1,46,1101,1000,1,20,4,20,1105,1,46,98,99", OutputValue = "1001"
            });
            TestInputOutput.Add(new InputOutput()
            {
                InputValue = "0", PuzzleString = @"3,21,1008,21,8,20,1005,20,22,107,8,21,20,1006,20,31,
1106,0,36,98,0,0,1002,21,125,20,4,20,1105,1,46,104,
999,1105,1,46,1101,1000,1,20,4,20,1105,1,46,98,99", OutputValue = "999"
            });

            foreach (var tito in TestInputOutput)
            {
                var puzzleinput = tito.PuzzleString.Split(',').Select(x => Convert.ToInt64(x)).ToList();
                var intComputer = new Service.IntCodeComputer(puzzleinput, Convert.ToInt32(tito.InputValue));
                intComputer.Start();
                if (tito.OutputValue == intComputer.LocalComputerMemory.ProgramValue.ToString())
                {
                    Debug.WriteLine($"INPUT:{tito.InputValue} - {tito.PuzzleString} - OUTPUT:{tito.OutputValue} = OK");
                }
                else
                {
                    Debug.WriteLine($"INPUT:{tito.InputValue} - {tito.PuzzleString} - OUTPUT:{tito.OutputValue} = NOK");
                    puzzleinput = tito.PuzzleString.Split(',').Select(x => Convert.ToInt64(x)).ToList();
                    var intComputer2 = new Service.IntCodeComputer(puzzleinput, Convert.ToInt32(tito.InputValue));
                    intComputer2.Start();
                }
                intComputer = null;
                puzzleinput = null;
            }
        }