AjErl.Tests.Forms.MultiFunctionFormTests.EvaluateWithThreeForm C# (CSharp) Method

EvaluateWithThreeForm() private method

private EvaluateWithThreeForm ( ) : void
return void
        public void EvaluateWithThreeForm()
        {
            Context context = new Context();
            FunctionForm form1 = this.MakeForm("f(0) -> 1.");
            FunctionForm form2 = this.MakeForm("f(1) -> 1.");
            FunctionForm form3 = this.MakeForm("f(X) -> f(X-1) + f(X-2).");
            MultiFunctionForm mform = new MultiFunctionForm(new FunctionForm[] { form1, form2, form3 });

            var result = mform.Evaluate(context);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(MultiFunction));

            var mfunc = (MultiFunction)result;

            Assert.IsNotNull(mfunc.Functions);
            Assert.AreEqual(3, mfunc.Functions.Count);

            var defined = context.GetValue("f/1");

            Assert.IsNotNull(defined);
            Assert.IsInstanceOfType(defined, typeof(MultiFunction));
            Assert.AreSame(mfunc, defined);
        }