public void RaiseIfArityIsWrong()
{
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, Y) -> f(X-1) + f(X-2) end.");
MultiFunExpression mexpr = new MultiFunExpression(new FunExpression[] { expr1, expr2, expr3 });
try
{
mexpr.Evaluate(context);
Assert.Fail();
}
catch (Exception ex)
{
Assert.AreEqual("head mismatch", ex.Message);
}
}