예제 #1
0
        public async Task Part1_IntMachine_Quine()
        {
            var input      = @"109,1,204,-1,1001,100,1,100,1008,100,16,101,1006,101,0,99";
            var intMachine = new Day09.IntMachine(input);
            await intMachine.RunProgramAsync();

            var outputs = new List <long>();

            await foreach (var output in intMachine.OutputChannel.ReadAllAsync())
            {
                outputs.Add(output);
            }
            Assert.That(outputs, Is.EqualTo(input.Split(',').Select(x => Convert.ToInt64(x)).ToList()));
        }
예제 #2
0
        public async Task Part1_IntMachine_LargeNumbers()
        {
            var input      = @"1102,34915192,34915192,7,4,7,99,0";
            var outputs    = new List <long>();
            var intMachine = new Day09.IntMachine(input);
            await intMachine.RunProgramAsync();

            await foreach (var output in intMachine.OutputChannel.ReadAllAsync())
            {
                outputs.Add(output);
            }
            Assert.That(outputs.Single().ToString().Length, Is.EqualTo(16));

            input      = @"104,1125899906842624,99";
            outputs    = new List <long>();
            intMachine = new Day09.IntMachine(input);
            await intMachine.RunProgramAsync();

            await foreach (var output in intMachine.OutputChannel.ReadAllAsync())
            {
                outputs.Add(output);
            }
            Assert.That(outputs.Single(), Is.EqualTo(1125899906842624));
        }