public void VarPrimitiveAcceptsVariable() { StructureObject so = new StructureObject("var", "X"); PrologMachine pm = new PrologMachine(); Assert.IsTrue(pm.Resolve(so)); }
public void VarPrimitiveRejectsInteger() { StructureObject so = new StructureObject("var", 1); PrologMachine pm = new PrologMachine(); Assert.IsFalse(pm.Resolve(so)); }
public void VarPrimitiveRejectsStructure() { StructureObject so = new StructureObject("var", new StructureObject("foo", "bar")); PrologMachine pm = new PrologMachine(); Assert.IsFalse(pm.Resolve(so)); }
public void IntegerPrimitiveRejectsAtom() { StructureObject so = new StructureObject("integer", "a"); PrologMachine pm = new PrologMachine(); Assert.IsFalse(pm.Resolve(so)); }
public void IntegerPrimitiveAcceptsInteger() { StructureObject so = new StructureObject("integer", 1); PrologMachine pm = new PrologMachine(); Assert.IsTrue(pm.Resolve(so)); }
public void EqualPrimitiveDontUnifyDifferentAtoms() { StructureObject so = new StructureObject("=", "a", "b"); PrologMachine pm = new PrologMachine(); Assert.IsFalse(pm.Resolve(so)); }
public void AtomicPrimitiveAcceptsAtom() { StructureObject so = new StructureObject("atomic", "a"); PrologMachine pm = new PrologMachine(); Assert.IsTrue(pm.Resolve(so)); }
public void EqualPrimitiveUnifyVariables() { StructureObject so = new StructureObject("=", "Y", "X"); PrologMachine pm = new PrologMachine(); Assert.IsTrue(pm.Resolve(so)); }
public void NonVarPrimitiveRejectsVariable() { StructureObject so = new StructureObject("nonvar", "X"); PrologMachine pm = new PrologMachine(); Assert.IsFalse(pm.Resolve(so)); }
public void NonVarPrimitiveAcceptsStructure() { StructureObject so = new StructureObject("nonvar", new StructureObject("foo", "bar")); PrologMachine pm = new PrologMachine(); Assert.IsTrue(pm.Resolve(so)); }
public void EqualPrimitiveUnifyInternalAtomVariable() { StructureObject so = new StructureObject("=", new StructureObject("f", "a"), new StructureObject("f", "X")); PrologMachine pm = new PrologMachine(); Assert.IsTrue(pm.Resolve(so)); Assert.AreEqual("a", pm.GetVariable(0).Dereference().ToString()); }
public void EqualPrimitiveUnifyAtomWithVariable() { StructureObject so = new StructureObject("=", "a", "X"); PrologMachine pm = new PrologMachine(); Assert.IsTrue(pm.Resolve(so)); Assert.AreEqual(so.Parameters[0], pm.GetVariable(0).Dereference()); }