public void ExecuteProgram_LargeNumber() { // Arrange // Should the large number in the middle. var program = "104,1125899906842624,99"; var intcode = new Intcode.Interpreter(program); // Act intcode.ExecuteProgram(); var output = intcode.GetLastOutput(); // Assert Assert.AreEqual(1125899906842624, output); }
public void ExecuteProgram_LargeNumbersMultiplication() { // Arrange // Should output a 16-digit number. var program = "1102,34915192,34915192,7,4,7,99,0"; var intcode = new Intcode.Interpreter(program); // Act intcode.ExecuteProgram(); var output = intcode.GetLastOutput(); // Assert Assert.AreEqual(1219070632396864, output); }
public void ExecuteProgram_RelativePositions() { // Arrange // Takes no input and produces a copy of itself as output. var program = "109,1,204,-1,1001,100,1,100,1008,100,16,101,1006,101,0,99"; var intcode = new Intcode.Interpreter(program, memorySize: 200); // Act intcode.ExecuteProgram(); var output = intcode.GetAllOutput(","); // Assert Assert.AreEqual($"{program},", output); }