public async Task Part1_SmallExample4() { // Arrange var subject = new ProgramAlarm1202(new ServiceCollection().AddTransient <IIntcodeProgram, IntcodeProgram>().BuildServiceProvider()); var input = "1,1,1,4,99,5,6,0,99"; // Act var result = await subject.SolvePart1Async(input.ToMemoryStream()); // Assert Assert.Equal("30", result); }
public async Task Part2_ConcrateExcercise() { // Arrange var subject = new ProgramAlarm1202(new ServiceCollection().AddTransient <IIntcodeProgram, IntcodeProgram>().BuildServiceProvider()); var input = "1,0,0,3,1,1,2,3,1,3,4,3,1,5,0,3,2,1,10,19,1,19,5,23,2,23,6,27,1,27,5,31,2,6,31,35,1,5,35,39,2,39,9,43,1,43,5,47,1,10,47,51,1,51,6,55,1,55,10,59,1,59,6,63,2,13,63,67,1,9,67,71,2,6,71,75,1,5,75,79,1,9,79,83,2,6,83,87,1,5,87,91,2,6,91,95,2,95,9,99,1,99,6,103,1,103,13,107,2,13,107,111,2,111,10,115,1,115,6,119,1,6,119,123,2,6,123,127,1,127,5,131,2,131,6,135,1,135,2,139,1,139,9,0,99,2,14,0,0"; // Act var result = await subject.SolvePart2Async(input.ToMemoryStream()); // Assert Assert.Equal("4259", result); }
public async Task Part1_DetailedExample() { // Arrange var subject = new ProgramAlarm1202(new ServiceCollection().AddTransient <IIntcodeProgram, IntcodeProgram>().BuildServiceProvider()); var input = "1,9,10,3,2,3,11,0,99,30,40,50"; // Act var result = await subject.SolvePart1Async(input.ToMemoryStream()); // Assert Assert.Equal("3500", result); }
public async Task SecondAndThirdShouldBe12And2() { // Arrange var subject = new ProgramAlarm1202(new ServiceCollection().AddTransient <IIntcodeProgram, IntcodeProgram>().BuildServiceProvider()); var input = "1,9,10,3,2,3,11,0,99,30,40,50"; // Act var modified = await subject.PrepareInputAsync(input.ToMemoryStream(), 1); string[] registers = null; await foreach (var line in modified.AsAsyncEnumerable()) { registers = line.Split(",").ToArray(); } // Assert Assert.Equal("12", registers[1]); Assert.Equal("2", registers[2]); }