Exemplo n.º 1
0
        public async Task ComputerDay7Test(string input, int expectedOutput, int amp1input, int amp2input, int amp3input, int amp4input, int amp5input)
        {
            var      program = input.Split(',').Select(long.Parse).ToArray();
            var      io      = new BlockingCollectionInputOutput();
            var      io1     = new BlockingCollectionInputOutput();
            var      io2     = new BlockingCollectionInputOutput();
            var      io3     = new BlockingCollectionInputOutput();
            var      io4     = new BlockingCollectionInputOutput();
            var      io5     = new BlockingCollectionInputOutput();
            Computer amp1    = new Computer(program.ToArray(), io, io1);
            Computer amp2    = new Computer(program.ToArray(), io1, io2);
            Computer amp3    = new Computer(program.ToArray(), io2, io3);
            Computer amp4    = new Computer(program.ToArray(), io3, io4);
            Computer amp5    = new Computer(program.ToArray(), io4, io5);


            io.WriteOutput(amp1input);
            io.WriteOutput(0);
            io1.WriteOutput(amp2input);
            io2.WriteOutput(amp3input);
            io3.WriteOutput(amp4input);
            io4.WriteOutput(amp5input);
            await Task.WhenAll(amp1.Wait(), amp2.Wait(), amp3.Wait(), amp4.Wait(), amp5.Wait());

            var firstOutput = io5.ReadInput();

            Assert.That(firstOutput, Is.EqualTo(expectedOutput));
        }
Exemplo n.º 2
0
        public async Task ComputerDay5Test(string input, int firstInput, int expectedOutput)
        {
            var program = input.Split(',').Select(long.Parse).ToArray();
            var io      = new BlockingCollectionInputOutput();
            var c       = new Computer(program.ToArray(), io, io);

            io.WriteOutput(firstInput);
            await c.Wait();

            var firstOutput = io.ReadInput();

            Assert.That(firstOutput, Is.EqualTo(expectedOutput));
        }