public void EvaluateWithThreeExpressions()
{
Context context = new Context();
FunExpression expr1 = this.MakeExpression("fun(0) -> 1 end.");
FunExpression expr2 = this.MakeExpression("fun(1) -> 1 end.");
FunExpression expr3 = this.MakeExpression("fun(X) -> f(X-1) + f(X-2) end.");
MultiFunExpression mexpr = new MultiFunExpression(new FunExpression[] { expr1, expr2, expr3 });
var result = mexpr.Evaluate(context);
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result, typeof(MultiFunction));
var mfunc = (MultiFunction)result;
Assert.IsNotNull(mfunc.Functions);
Assert.AreEqual(3, mfunc.Functions.Count);
}