Beispiel #1
0
        public void SuccessfullyCalculateHyperbolicTangentOfPositiveAngle()
        {
            var value    = 60;
            var function = new HyperbolicTangentFunction();

            var phase = function.Calculate();

            Assert.NotNull(phase);
            Assert.Equal("Specify Argument", phase.Name);
            Assert.Equal("Specify angle to find the hyperbolic tangent of.", phase.Description);
            Assert.Collection(phase.Inputs,
                              i =>
            {
                Assert.Equal("Angle", i.Info.Name);
                Assert.Null(i.Info.Description);
                Assert.Equal(new RadianUnit(), i.Info.Unit);
            });

            phase.Inputs[0].Value = value;

            Assert.Null(function.Calculate(phase));

            Assert.Collection(function.CurrentResult,
                              i =>
            {
                Assert.Equal(typeof(double), i.ValueType);
                Assert.Equal(Math.Tanh(value), TypeConverter.ToObject <double>(i.Value));
            });
        }
        public void SuccessfullySetFunctionInfo()
        {
            var function = new HyperbolicTangentFunction();

            Assert.NotNull(function.FunctionInfo);
            Assert.Equal("Hyperbolic Tangent", function.FunctionInfo.Name);
            Assert.Equal(new Version("1.0.0"), function.FunctionInfo.Version);
            Assert.Equal("Find the hyperbolic tangent of an angle.", function.FunctionInfo.Description);
            Assert.Collection(function.FunctionInfo.Tags,
                              i => Assert.Equal("hyperbolic", i),
                              i => Assert.Equal("tangent", i),
                              i => Assert.Equal("tanh", i));
        }
Beispiel #3
0
        public void SuccessfullyCalculateHyperbolicTangentWithNoAngleSpecified()
        {
            var function = new HyperbolicTangentFunction();

            var phase = function.Calculate();

            Assert.NotNull(phase);

            Assert.Null(function.Calculate(phase));

            Assert.Collection(function.CurrentResult,
                              i =>
            {
                Assert.Equal(typeof(double), function.CurrentResult[0].ValueType);
                Assert.Equal(Math.Tanh(0.0), TypeConverter.ToObject <double>(function.CurrentResult[0].Value));
            });
        }
        public void Invoke_ReturnsHyperbolicTangent()
        {
            const double Input1 = -1.234d;
            const double Input2 = 0.0d;
            const double Input3 = 12.34d;

            var expected1 = Math.Tanh(Input1);
            var expected2 = Math.Tanh(Input2);
            var expected3 = Math.Tanh(Input3);

            var function = new HyperbolicTangentFunction();

            var actual1 = function.Invoke(Input1);
            var actual2 = function.Invoke(Input2);
            var actual3 = function.Invoke(Input3);

            Assert.AreEqual(expected1, actual1, 0.0000001);
            Assert.AreEqual(expected2, actual2, 0.0000001);
            Assert.AreEqual(expected3, actual3, 0.0000001);
        }
        public void InvokeDerivative_ReturnsHyperbolicDerivative()
        {
            const double Input1 = -1.234d;
            const double Input2 = 0.0d;
            const double Input3 = 12.34d;

            var expected1 = 1 / Math.Pow(Math.Cosh(Input1), 2);
            var expected2 = 1 / Math.Pow(Math.Cosh(Input2), 2);
            var expected3 = 1 / Math.Pow(Math.Cosh(Input3), 2);

            var function = new HyperbolicTangentFunction();

            var actual1 = function.InvokeDerivative(Input1);
            var actual2 = function.InvokeDerivative(Input2);
            var actual3 = function.InvokeDerivative(Input3);

            Assert.AreEqual(expected1, actual1, 0.0000001);
            Assert.AreEqual(expected2, actual2, 0.0000001);
            Assert.AreEqual(expected3, actual3, 0.0000001);
        }
Beispiel #6
0
        public void SuccessfullyCalculateHyperbolicTangentOfNegativeAngle()
        {
            var value    = -54;
            var function = new HyperbolicTangentFunction();

            var phase = function.Calculate();

            Assert.NotNull(phase);

            phase.Inputs[0].Value = value;

            Assert.Null(function.Calculate(phase));

            Assert.Collection(function.CurrentResult,
                              i =>
            {
                Assert.Equal(typeof(double), i.ValueType);
                Assert.Equal(Math.Tanh(value), TypeConverter.ToObject <double>(i.Value));
            });
        }