public void TestLogarithm()
        {
            //Arrange
            VariableNode      variableNode  = new VariableNode();
            LogarithmFunction logarithmNode = new LogarithmFunction(variableNode);

            //Act
            double result1 = logarithmNode.Calculate(1);
            double result2 = logarithmNode.Calculate(2);
            double result4 = logarithmNode.Calculate(4);

            //Assert
            Assert.AreEqual(0, result1);
            Assert.AreEqual(0.6931, Math.Round(result2, 4));
            Assert.AreEqual(1.3863, Math.Round(result4, 4));
        }
        public void SuccessfullyCalculateALogarithmWithOnlyLogarithmSpecified()
        {
            var function = new LogarithmFunction();

            var inputs = function.GetInputs();

            Assert.Equal(2, inputs.Length);

            inputs[0].Value = 8;

            var result = function.Calculate(inputs);

            Assert.Collection(result,
                              i =>
            {
                Assert.Equal(typeof(double), i.Value.GetType());
                Assert.Equal(Math.Log(8, 10), TypeConverter.ToObject <double>(i.Value));
            });
        }