public void Should_accept_immediate_mode_configuration_for_arg1() { var adderProgram = new AdderProgram(new IntCodeValidator()); var program = "101,5,1,5,99,0"; Assert.That(adderProgram.Process(program), Is.EqualTo("101,5,1,5,99,10")); }
public void Should_accept_start_position_when_running_progrma_mode() { var adderProgram = new AdderProgram(new IntCodeValidator()); var program = "101,5,1,5,99,0,1101,5,1,11,99,0"; Assert.That(adderProgram.Process(program, 6), Is.EqualTo("101,5,1,5,99,0,1101,5,1,11,99,6")); }
public void It_adds_values_from_specified_positions_and_updates_another_position(string input, string expected) { var a = new AdderProgram(new IntCodeValidator()); var answer = a.Process(input); Assert.That(answer, Is.EqualTo(expected), "Some useful error message"); }
public void Should_check_int_code_at_start_position() { var validator = new IntCodeValidator(); var adder = new AdderProgram(validator); var input = "27,0,0,0,1,0,0,0"; Assert.DoesNotThrow(() => adder.Process(input, 4)); }
public void Should_expect_opcode_at_position_0_to_be_1(string input) { var a = new AdderProgram(new IntCodeValidator()); var ex = Assert.Throws <InvalidOpCodeException>(() => a.Process(input)); Assert.That(ex.Message, Does.Contain("Invalid input: op code (first integer)")); Assert.DoesNotThrow(() => a.Process("1,1,2,3")); }
public void Should_validate_input() { var validatorSpy = new ValidatorSpy(); var a = new AdderProgram(validatorSpy); var ex = Assert.Throws <Exception>(() => a.Process("a")); Assert.That(validatorSpy.WasCalled, Is.True); Assert.That(ex.Message, Does.Contain("Invalid input: must be comma separated list of numbers")); }
public void Program_should_accepT_argument_for_positions() { var validator = new IntCodeValidator(); var input = "1,9,10,3,2,3,11,0,1,2,3,3,99,30,40,50"; var adder = new AdderProgram(validator); var multiplier = new MultiplierProgram(validator); Assert.DoesNotThrow(() => multiplier.Process(input, 4)); Assert.That(multiplier.Process(input, 4), Is.EqualTo("9,9,10,3,2,3,11,0,1,2,3,3,99,30,40,50")); Assert.DoesNotThrow(() => adder.Process(input, 8)); }
public void Should_validate_in_program_configuration(string input) { var a = new AdderProgram(new IntCodeValidator()); Assert.DoesNotThrow(() => a.Process(input)); }