コード例 #1
0
        public void Accepts_parameter_mode_immediate(string program, string expected)
        {
            var LessThanProgram = new LessThanProgram(new IntCodeValidator());
            var output          = LessThanProgram.Process(program);

            Assert.That(output, Is.EqualTo(expected));
        }
コード例 #2
0
        public void Should_validate_op_code_7(string program)
        {
            var jumpIfTrueProgram = new LessThanProgram(new IntCodeValidator());
            var ex = Assert.Throws <InvalidOpCodeException>(() => jumpIfTrueProgram.Process(program));

            Assert.That(ex.Message, Does.Contain("Invalid input: op code (first integer)"));
        }
コード例 #3
0
        public void Stores_one_in_pointer_position_when_parameter_2_less_than_parameter_1(string program, string expected)
        {
            var LessThanProgram = new LessThanProgram(new IntCodeValidator());

            Assert.That(LessThanProgram.Process(program), Is.EqualTo(expected), "Program should store 0");
            Assert.That(LessThanProgram.InstructionLength, Is.EqualTo(4));
        }
コード例 #4
0
        public void Supports_start_index()
        {
            var program  = "3,9,7,9,10,9,4,9,99,-1,8";
            var expected = "3,9,7,9,10,9,4,9,99,1,8";

            var LessThanProgram = new LessThanProgram(new IntCodeValidator());

            Assert.That(LessThanProgram.Process(program, 2), Is.EqualTo(expected), "Program should store 1");
        }
コード例 #5
0
        public void Should_validate_input_is_a_valid_program()
        {
            var validatorSpy = A.Fake <IIntCodeValidator>();
            var jumpIfTrue   = new LessThanProgram(validatorSpy);
            var program      = "a,0,99,0";

            A.CallTo(() => validatorSpy.SplitString(program)).Returns(new IntCodeValidator().SplitString(program));
            Assert.Throws <Exception>(() => jumpIfTrue.Process(program));
            A.CallTo(() => validatorSpy.Validate(program)).MustHaveHappened();
        }