public void ParseInstruction_Returns_Correct_Destinations(string dest, ComputeDestinationType expected)
        {
            var parser = new ComputeDestinationParser();

            // act
            ComputeDestinationType result = parser.ParseComputeDestination(dest);

            // assert
            Assert.AreEqual(expected, result);
        }
예제 #2
0
        public void ParseInstruction_Returns_Correct_Destinations(string dest, ComputeDestinationType expected)
        {
            var parser = new ComputeDestinationParser();

            // act
            ComputeDestinationType result = parser.ParseComputeDestination(dest);

            // assert
            Assert.AreEqual(expected, result);
        }
        public void AssembleInstruction_Returns_Correct_Dest_Bits(ComputeDestinationType destinationType, string expected)
        {
            // arrange
            var instruction = new ComputeInstruction(destinationType, "D&A", ComputeJumpType.None);
            var computeBitsAssembler = Substitute.For<IHackComputeBitsAssembler>();
            computeBitsAssembler.AssembleComputeBits(Arg.Any<string>()).Returns("0000000");
            var assembler = new HackComputeInstructionAssembler(computeBitsAssembler);

            // act
            string[] result = assembler.AssembleInstruction(instruction);
            string line = result[0];

            // assert
            Assert.AreEqual(expected, line);
        }
        public void AssembleInstruction_Returns_Correct_Dest_Bits(ComputeDestinationType destinationType, string expected)
        {
            // arrange
            var instruction          = new ComputeInstruction(destinationType, "D&A", ComputeJumpType.None);
            var computeBitsAssembler = Substitute.For <IHackComputeBitsAssembler>();

            computeBitsAssembler.AssembleComputeBits(Arg.Any <string>()).Returns("0000000");
            var assembler = new HackComputeInstructionAssembler(computeBitsAssembler);

            // act
            string[] result = assembler.AssembleInstruction(instruction);
            string   line   = result[0];

            // assert
            Assert.AreEqual(expected, line);
        }
예제 #5
0
 public ComputeInstruction(ComputeDestinationType destinationType, string computation, ComputeJumpType jumpType = ComputeJumpType.None)
 {
     _destinationType = destinationType;
     _computation     = computation;
     _jumpType        = jumpType;
 }