public void MatchWithAnotherAtom() { Atom atom = new Atom("one"); Atom atom2 = new Atom("two"); Assert.IsFalse(atom.Match(atom2)); }
public void EvaluateAtomExpression() { Atom atom = new Atom("ok"); Context context = new Context(); AtomExpression expression = new AtomExpression(atom); Assert.AreEqual(atom, expression.Evaluate(context)); }
public void CreateSimpleAtomExpression() { Atom atom = new Atom("ok"); AtomExpression expression = new AtomExpression(atom); Assert.AreEqual(atom, expression.Atom); Assert.IsFalse(expression.HasVariable()); }
public IoModule(Machine machine) : base(machine.RootContext) { this.machine = machine; this.ok = new Atom("ok"); this.SetName("io"); this.Context.SetValue("write/1", new FuncFunction(this.Write)); this.AddExportNames(new string[] { "write/1" }); this.Context.SetValue("nl/0", new FuncFunction(this.Nl)); this.AddExportNames(new string[] { "nl/0" }); }
public void Equals() { Atom atom1 = new Atom("a"); Atom atom2 = new Atom("b"); Atom atom3 = new Atom("a"); Assert.IsTrue(atom1.Equals(atom3)); Assert.IsTrue(atom3.Equals(atom1)); Assert.AreEqual(atom1.GetHashCode(), atom3.GetHashCode()); Assert.IsFalse(atom1.Equals(null)); Assert.IsFalse(atom1.Equals(123)); Assert.IsFalse(atom1.Equals("foo")); Assert.IsFalse(atom1.Equals(atom2)); Assert.IsFalse(atom2.Equals(atom1)); }
public void MatchOneAtomAndTwoVariablesInTupleWithConcreteTuple() { Context context = new Context(); Atom p = new Atom("point"); Variable x = new Variable("X"); Variable y = new Variable("Y"); MatchExpression expr = new MatchExpression(new TupleExpression(new IExpression[] { new AtomExpression(p), new VariableExpression(x), new VariableExpression(y) }), new TupleExpression(new IExpression[] { new AtomExpression(new Atom("point")), new ConstantExpression(1), new ConstantExpression(2) })); expr.Evaluate(context); var result1 = context.GetValue("X"); var result2 = context.GetValue("Y"); Assert.IsNotNull(result1); Assert.AreEqual(1, result1); Assert.IsNotNull(result2); Assert.AreEqual(2, result2); }
public bool Match(Atom atom) { return atom != null && this.name == atom.Name; }
public void MatchWithNull() { Atom atom = new Atom("one"); Assert.IsFalse(atom.Match(null)); }
public void CreateSimpleAtom() { Atom atom = new Atom("one"); Assert.AreEqual("one", atom.Name); }
public void AtomToString() { Atom atom = new Atom("one"); Assert.AreEqual("one", atom.ToString()); }