public void CreateEmptyTuple() { var expr = new TupleExpression(new IExpression[] { }); Assert.IsFalse(expr.HasVariable()); var result = expr.Evaluate(null); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(Tuple)); var tuple = (Tuple)result; Assert.AreEqual(0, tuple.Arity); }
public void CreateSimpleTuple() { Context context = new Context(); context.SetValue("X", 2); var expr = new TupleExpression(new IExpression[] { new ConstantExpression(1), new VariableExpression(new Variable("X")), new AtomExpression(new Atom("y")) }); Assert.IsTrue(expr.HasVariable()); var result = expr.Evaluate(context); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(Tuple)); var tuple = (Tuple)result; Assert.AreEqual(3, tuple.Arity); Assert.AreEqual(1, tuple.ElementAt(0)); Assert.AreEqual(2, tuple.ElementAt(1)); Assert.IsInstanceOfType(tuple.ElementAt(2), typeof(Atom)); Assert.AreEqual("y", ((Atom)tuple.ElementAt(2)).Name); }