protected void TestInstruction(SourceLine line, ILineAssembler asm, int pc, int expectedsize, IEnumerable <byte> expected, bool positive)
        {
            var size = asm.GetInstructionSize(line);

            asm.AssembleLine(line);
            if (positive)
            {
                Assert.IsFalse(Controller.Log.HasErrors);
                Assert.AreEqual(pc, Controller.Output.LogicalPC);

                if (expected != null)
                {
                    Assert.IsTrue(Controller.Output.GetCompilation().SequenceEqual(expected));
                }
                else
                {
                    Assert.IsTrue(Controller.Output.GetCompilation().Count == 0);
                }
                Assert.AreEqual(expectedsize, size);
            }
            else
            {
                Assert.IsTrue(Controller.Log.HasErrors);
            }
            ResetController();
        }
 protected void TestInstruction(SourceLine line, ILineAssembler asm, int pc, byte[] expected, string disasm, bool positive)
 {
     asm.AssembleLine(line);
     if (positive)
     {
         Assert.IsFalse(Controller.Log.HasErrors);
         Assert.AreEqual(pc, Controller.Output.LogicalPC);
         Assert.IsTrue(Controller.Output.GetCompilation().SequenceEqual(expected));
         Assert.AreEqual(disasm, line.Disassembly);
         Assert.AreEqual(expected.Count(), LineAssembler.GetInstructionSize(line));
     }
     else
     {
         Assert.IsTrue(Controller.Log.HasErrors);
     }
     Controller.Output.Reset();
     Controller.Log.ClearErrors();
 }
Exemplo n.º 3
0
 public void AddAssembler(ILineAssembler lineAssembler) => _assemblers.Push(lineAssembler);
 public void AddAssembler(ILineAssembler asm)
 {
     throw new NotImplementedException();
 }
 protected void TestInstruction(SourceLine line, ILineAssembler assembler, int pc, int expectedsize, byte[] expected)
 {
     TestInstruction(line, assembler, pc, expectedsize, expected, true);
 }
 protected void TestInstruction(SourceLine line, ILineAssembler assembler, int pc, byte[] expected, string disasm)
 {
     TestInstruction(line, assembler, pc, expected, disasm, true);
 }