public void AssertFirst_2()
{
ArrayList p = new ArrayList();
HaltInstruction hi = new HaltInstruction();
p.Add(hi);
AMProgram program = new AMProgram();
program.Initialize(p);
program.AssertFirst("male", 1, p);
ProgramClause oldFirst = program["male/1"];
program.AssertFirst("male", 1, p);
ProgramClause newFirst = program["male/1"];
Assert.AreEqual(newFirst.Name, "male");
Assert.AreEqual(newFirst.Arity, 1);
Assert.AreEqual(newFirst.Instruction.Name(), "try_me_else");
Assert.AreEqual(oldFirst.Name, "male%1/1");
Assert.AreEqual(oldFirst.Arity, 1);
Assert.AreEqual(oldFirst.Instruction.Name(), "trust_me");
}