public void ExecuteInstruction_AddThenMultiply() { // Arrange var program = "1,1,1,4,99,5,6,0,99"; var intcode = new Intcode.Interpreter(program); // Act & Assert intcode.ExecuteInstruction(); Assert.AreEqual("1,1,1,4,2,5,6,0,99", intcode.GenerateProgramString()); intcode.ExecuteInstruction(); Assert.AreEqual("30,1,1,4,2,5,6,0,99", intcode.GenerateProgramString()); }
public void ExecuteInstruction_InputThenOutput() { // Arrange var program = "3,0,4,0,99"; var intcode = new Intcode.Interpreter(program); var input = 13; // Act & Assert intcode.SetInput(input); intcode.ExecuteInstruction(); Assert.AreEqual("13,0,4,0,99", intcode.GenerateProgramString()); intcode.ExecuteInstruction(); Assert.AreEqual(input, intcode.GetOutput()); }
public void ExecuteInstruction_Multiply2() { // Arrange var program = "2,4,4,5,99,0"; var result = "2,4,4,5,99,9801"; var intcode = new Intcode.Interpreter(program); // Act intcode.ExecuteInstruction(); // Assert Assert.AreEqual(result, intcode.GenerateProgramString()); }
public void ExecuteInstruction_Add_ImmediateMode_NegativeNumber() { // Arrange var program = "1101,100,-1,4,0"; var result = "1101,100,-1,4,99"; var intcode = new Intcode.Interpreter(program); // Act intcode.ExecuteInstruction(); // Assert Assert.AreEqual(result, intcode.GenerateProgramString()); }
public void ExecuteInstruction_Add_ImmediateMode() { // Arrange var program = "1001,4,3,4,33"; var result = "1001,4,3,4,36"; var intcode = new Intcode.Interpreter(program); // Act intcode.ExecuteInstruction(); // Assert Assert.AreEqual(result, intcode.GenerateProgramString()); }
public void ExecuteInstruction_Add() { // Arrange var program = "1,0,0,0,99"; var result = "2,0,0,0,99"; var intcode = new Intcode.Interpreter(program); // Act intcode.ExecuteInstruction(); // Assert Assert.AreEqual(result, intcode.GenerateProgramString()); }
public void ExecuteInstruction_LessThan_ImmediateMode() { // Arrange var islessthan = "1107,66,77,5,99,-1"; var expected = "1107,66,77,5,99,1"; var intcode = new Intcode.Interpreter(islessthan); // Act & Assert intcode.ExecuteInstruction(); Assert.AreEqual(expected, intcode.GenerateProgramString()); // Arrange var notlessthan = "1107,66,66,5,99,-1"; expected = "1107,66,66,5,99,0"; intcode = new Intcode.Interpreter(notlessthan); // Act & Assert intcode.ExecuteInstruction(); Assert.AreEqual(expected, intcode.GenerateProgramString()); }
public void ExecuteInstruction_Equals_PositionMode() { // Arrange var isequal = "8,5,6,7,99,66,66,-1"; var expected = "8,5,6,7,99,66,66,1"; var intcode = new Intcode.Interpreter(isequal); // Act && Assert intcode.ExecuteInstruction(); Assert.AreEqual(expected, intcode.GenerateProgramString()); // Arrange var notequal = "8,5,6,7,99,66,77,-1"; expected = "8,5,6,7,99,66,77,0"; intcode = new Intcode.Interpreter(notequal); // Act && Assert intcode.ExecuteInstruction(); Assert.AreEqual(expected, intcode.GenerateProgramString()); }