示例#1
0
        public void EvaluateIncrementFunctionApply()
        {
            IFunction incr   = new IncrementFunction();
            IFunction result = incr.Apply(new ConstantFunction(1));

            Assert.IsNotNull(result);
            Assert.AreEqual(0, result.Arity);
            Assert.IsInstanceOfType(result, typeof(ConstantFunction));

            Assert.AreEqual(2, result.Value);
        }
示例#2
0
        public void ComposeFunctions()
        {
            IFunction incr    = new IncrementFunction();
            IFunction compose = new ComposeFunction(incr, incr);

            Assert.AreEqual(1, compose.Arity);
            Assert.AreEqual(compose, compose.Value);

            IFunction result = compose.Apply(new ConstantFunction(1));

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(ConstantFunction));
            Assert.AreEqual(3, result.Value);
        }