Beispiel #1
0
        public int Returns_output_defined_by_program(int location)
        {
            IOutputReceiver outputReceiver = new QueuedOutputReceiverBuilder().Build();
            var             computer       = new IntcodeComputerBuilder().WithOutputReceiver(outputReceiver).Build();

            computer.Run(new[] { 4, location, 99, 50, 60 });

            var result = outputReceiver.Dequeue();

            Assert.IsTrue(outputReceiver.IsEmpty());

            return(result);
        }
Beispiel #2
0
        public int Outputs_whatever_was_input(int[] instructions, int input)
        {
            var inputSender = new QueuedInputSenderBuilder().Build();

            inputSender.Enqueue(input);
            var outputReceiver = new QueuedOutputReceiverBuilder().Build();
            var computer       =
                new IntcodeComputerBuilder()
                .WithInputSender(inputSender)
                .WithOutputReceiver(outputReceiver)
                .Build();

            computer.Run(instructions);

            var result = outputReceiver.Dequeue();

            Assert.IsTrue(outputReceiver.IsEmpty());

            return(result);
        }