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)); }
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)); }