public void CompileSimpleSum()
{
ModelParser parser = new ModelParser("1 + 2");
IExpression expr = parser.ParseExpression();
this.compiler.CompileExpression(expr);
Assert.IsNotNull(this.block);
Assert.AreEqual(3, this.block.NoConstants);
Assert.AreEqual(0, this.block.NoLocals);
Assert.IsNotNull(this.block.ByteCodes);
Assert.AreEqual(7, this.block.ByteCodes.Length);
Assert.AreEqual(0, this.block.Arity);
BlockDecompiler decompiler = new BlockDecompiler(this.block);
var program = decompiler.Decompile();
Assert.IsNotNull(program);
Assert.AreEqual(3, program.Count);
Assert.AreEqual("GetConstant 1", program[0]);
Assert.AreEqual("GetConstant 2", program[1]);
Assert.AreEqual("Send + 1", program[2]);
}