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");
        }
示例#4
0
        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"));
        }
示例#7
0
        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));
        }