public void ExecuteVar() { AbstractMachineState state = SetupMachine(); ExecuteVariableInstruction i = new ExecuteVariableInstruction(); i.Process(new string[] { "X0" }); AMProgram program = (AMProgram)state.Program; ProgramClause x = new ProgramClause("male", 1); program.AddLabel("male/1", x); AbstractTerm X0 = (AbstractTerm)state["X0"]; StructureTerm s = new StructureTerm("male", 1); s.Next = new ConstantTerm("ali"); X0.Assign(s); i.Execute(state); Assert.AreSame(program.P, x); Assert.AreEqual("executevar", i.Name()); Assert.AreEqual(1, i.NumberOfArguments()); }