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); }
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); }