public void GenerateCodeSegment() { var input = "1,9,10,3,2,3,11,0,99,30,40,50"; var expected = new CodeSegment { Index = 0, OpCode = OpCodes.Addition, Arguments = (30, 40), UpdatePosition = 3 }; var intProcessor = new IntCodeProcessor(input); CodeSegment actual = intProcessor.GenerateCodeSegment(0); actual.Index.ShouldBe(expected.Index); actual.OpCode.ShouldBe(expected.OpCode); actual.Arguments.ShouldBe(expected.Arguments); actual.UpdatePosition.ShouldBe(expected.UpdatePosition); }
public void GeneratePartialCodeSegmentIfStop() { var input = "1,9,10,3,2,3,11,0,99,30,40,50"; var expected = new CodeSegment { Index = 8, OpCode = OpCodes.Stop, Arguments = (-1, -1), UpdatePosition = -1 }; var intProcessor = new IntCodeProcessor(input); CodeSegment actual = intProcessor.GenerateCodeSegment(8); actual.Index.ShouldBe(expected.Index); actual.OpCode.ShouldBe(expected.OpCode); actual.Arguments.ShouldBe(expected.Arguments); actual.UpdatePosition.ShouldBe(expected.UpdatePosition); }