public void SaveRegisters()
{
AbstractMachineState state = new AbstractMachineState(new AMFactory());
ArrayList prog = new ArrayList();
prog.Add(new HaltInstruction());
state.Initialize(prog);
AbstractTerm X0 = (AbstractTerm)state["X0"];
AbstractTerm X1 = (AbstractTerm)state["X1"];
AbstractTerm X2 = (AbstractTerm)state["X2"];
X0.Assign(new ConstantTerm("ali"));
X1.Assign(new ConstantTerm("samir"));
X2.Assign(new ConstantTerm("moe"));
Choicepoint c = new Choicepoint();
c.SaveRegisters(state, 3);
Assert.AreEqual("ali", c["X0"].Data());
Assert.AreEqual("samir", c["X1"].Data());
Assert.AreEqual("moe", c["X2"].Data());
}