public void RaiseIfArityIsWrong()
{
Context context = new Context();
FunctionForm form1 = this.MakeForm("f(0) -> 1.");
FunctionForm form2 = this.MakeForm("f(1) -> 1.");
FunctionForm form3 = this.MakeForm("f(X, Y) -> f(X-1) + f(X-2).");
MultiFunctionForm mform = new MultiFunctionForm(new FunctionForm[] { form1, form2, form3 });
try
{
mform.Evaluate(context);
Assert.Fail();
}
catch (Exception ex)
{
Assert.AreEqual("head mismatch", ex.Message);
}
}