Example #1
0
        public void SechInSechdDoublesAsInputs()
        {
            var function = new Sech();

            var input1 = 20;
            var input2 = 100;
            var input3 = 1;
            var input4 = 1.0;
            var input5 = 1.5;
            var input6 = 1000;

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);
            var result3 = function.Execute(FunctionsHelper.CreateArgs(input3), this.ParsingContext);
            var result4 = function.Execute(FunctionsHelper.CreateArgs(input4), this.ParsingContext);
            var result5 = function.Execute(FunctionsHelper.CreateArgs(input5), this.ParsingContext);
            var result6 = function.Execute(FunctionsHelper.CreateArgs(input6), this.ParsingContext);

            Assert.AreEqual(4E-09, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(0, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(0.648054274, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(0.648054274, System.Math.Round(result4.ResultNumeric, 9));
            Assert.AreEqual(0.425096035, System.Math.Round(result5.ResultNumeric, 9));
            Assert.AreEqual(0, System.Math.Round(result6.ResultNumeric, 9));
        }
Example #2
0
        public void SechArsech()
        {
            var exp      = new Sech(new Arsech(new Variable("x")));
            var expected = new Variable("x");

            SimpleTest(exp, expected);
        }
Example #3
0
        public void SechArsech()
        {
            var exp      = new Sech(new Arsech(Variable.X));
            var expected = Variable.X;

            SimpleTest(exp, expected);
        }
Example #4
0
        public void CloneTest()
        {
            var exp   = new Sech(new Number(1));
            var clone = exp.Clone();

            Assert.Equal(exp, clone);
        }
Example #5
0
        public void SechHandlesNormal12HourClockInputs()
        {
            var function = new Sech();

            var input1 = "00:00:00 AM";
            var input2 = "00:01:32 AM";
            var input3 = "12:00 PM";
            var input4 = "12:00 AM";
            var input5 = "1:00 PM";
            var input6 = "1:10:32 am";
            var input7 = "3:42:32 pm";

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);
            var result3 = function.Execute(FunctionsHelper.CreateArgs(input3), this.ParsingContext);
            var result4 = function.Execute(FunctionsHelper.CreateArgs(input4), this.ParsingContext);
            var result5 = function.Execute(FunctionsHelper.CreateArgs(input5), this.ParsingContext);
            var result6 = function.Execute(FunctionsHelper.CreateArgs(input6), this.ParsingContext);
            var result7 = function.Execute(FunctionsHelper.CreateArgs(input7), this.ParsingContext);

            Assert.AreEqual(1, System.Math.Round(result1.ResultNumeric, 8));
            Assert.AreEqual(0.999999433, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(0.886818884, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(1, System.Math.Round(result4.ResultNumeric, 8));
            Assert.AreEqual(0.869320646, System.Math.Round(result5.ResultNumeric, 9));
            Assert.AreEqual(0.998801605, System.Math.Round(result6.ResultNumeric, 9));
            Assert.AreEqual(0.818352687, System.Math.Round(result7.ResultNumeric, 9));
        }
Example #6
0
        public void SechTestInputsWithDatesThatHaveSlashesInThem()
        {
            var function = new Sech();

            var input1 = "1/17/2011 2:00 am";
            var input2 = "17/01/2011 2:00 AM";
            var input3 = "17/Jan/2011 2:00 AM";
            var input4 = "17/January/2011 2:00 am";
            var input5 = "1/17/2011 2:00:00 am";
            var input6 = "17/01/2011 2:00:00 AM";
            var input7 = "17/Jan/2011 2:00:00 AM";
            var input8 = "17/January/2011 2:00:00 am";

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);
            var result3 = function.Execute(FunctionsHelper.CreateArgs(input3), this.ParsingContext);
            var result4 = function.Execute(FunctionsHelper.CreateArgs(input4), this.ParsingContext);
            var result5 = function.Execute(FunctionsHelper.CreateArgs(input5), this.ParsingContext);
            var result6 = function.Execute(FunctionsHelper.CreateArgs(input6), this.ParsingContext);
            var result7 = function.Execute(FunctionsHelper.CreateArgs(input7), this.ParsingContext);
            var result8 = function.Execute(FunctionsHelper.CreateArgs(input8), this.ParsingContext);

            Assert.AreEqual(0, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result2.Result).Type);
            Assert.AreEqual(0, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(0, System.Math.Round(result4.ResultNumeric, 9));
            Assert.AreEqual(0, System.Math.Round(result5.ResultNumeric, 9));
            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result6.Result).Type);
            Assert.AreEqual(0, System.Math.Round(result7.ResultNumeric, 9));
            Assert.AreEqual(0, System.Math.Round(result8.ResultNumeric, 9));
        }
Example #7
0
        public void ExecuteComplexNumberTest()
        {
            var complex = new Complex(3, 2);
            var exp     = new Sech(new ComplexNumber(complex));
            var result  = (Complex)exp.Execute();

            Assert.Equal(ComplexExtensions.Sech(complex), result);
            Assert.Equal(-0.0416749644111442700483, result.Real, 15);
            Assert.Equal(-0.090611137196237596, result.Imaginary, 15);
        }
Example #8
0
        public void SechHandlesTrueOrFalse()
        {
            var function = new Sech();

            var input1 = true;
            var input2 = false;

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);

            Assert.AreEqual(0.648054274, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(1, System.Math.Round(result2.ResultNumeric, 8));
        }
Example #9
0
        public void SechHandlesInputDatesAreSeperatedByDashes()
        {
            var function = new Sech();

            var input1 = "1-17-2017 2:00";
            var input2 = "1-17-2017 2:00 am";

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);

            Assert.AreEqual(0, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(0, System.Math.Round(result2.ResultNumeric, 9));
        }
Example #10
0
        public void SechHandlesMilitaryTimesPast2400()
        {
            var function = new Sech();

            var input1 = "01:00";
            var input2 = "02:00";

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);

            Assert.AreEqual(0.999132572, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(0.996537796, System.Math.Round(result2.ResultNumeric, 9));
        }
Example #11
0
        /// <summary>
        /// Analyzes the specified expression.
        /// </summary>
        /// <param name="exp">The expression.</param>
        /// <returns>
        /// The result of analysis.
        /// </returns>
        public override IExpression Analyze(Sech exp)
        {
            if (!Helpers.HasVariable(exp, Variable))
            {
                return(new Number(0));
            }

            var tanh    = new Tanh(exp.Argument.Clone());
            var mul1    = new Mul(tanh, exp.Clone());
            var mul2    = new Mul(exp.Argument.Clone().Analyze(this), mul1);
            var unMinus = new UnaryMinus(mul2);

            return(unMinus);
        }
Example #12
0
        public void SechHandlesMilitaryTime()
        {
            var function = new Sech();

            var input1 = "00:00";
            var input2 = "00:01";
            var input3 = "23:59:59";

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);
            var result3 = function.Execute(FunctionsHelper.CreateArgs(input3), this.ParsingContext);

            Assert.AreEqual(1, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(0.999999759, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(0.648059986, System.Math.Round(result3.ResultNumeric, 9));
        }
Example #13
0
        public void SechIsGivenAStringAsInput()
        {
            var function = new Sech();

            var input1 = "string";
            var input2 = "0";
            var input3 = "1";
            var input4 = "1.5";

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);
            var result3 = function.Execute(FunctionsHelper.CreateArgs(input3), this.ParsingContext);
            var result4 = function.Execute(FunctionsHelper.CreateArgs(input4), this.ParsingContext);

            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result1.Result).Type);
            Assert.AreEqual(1, result2.ResultNumeric, .00001);
            Assert.AreEqual(0.648054274, result3.ResultNumeric, .00001);
            Assert.AreEqual(0.425096035, result4.ResultNumeric, .00001);
        }
Example #14
0
        public void SechHandlesInputsWithDatesInTheFormMonthDateCommaYearTime()
        {
            var function = new Sech();

            var input1 = "Jan 17, 2011 2:00 am";
            var input2 = "June 5, 2017 11:00 pm";
            var input3 = "Jan 17, 2011 2:00:00 am";
            var input4 = "June 5, 2017 11:00:00 pm";

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);
            var result3 = function.Execute(FunctionsHelper.CreateArgs(input3), this.ParsingContext);
            var result4 = function.Execute(FunctionsHelper.CreateArgs(input4), this.ParsingContext);

            Assert.AreEqual(0, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(0, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(0, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(0, System.Math.Round(result4.ResultNumeric, 9));
        }
Example #15
0
        public void SechTestMilitaryTimeAndNormalTimeComparisions()
        {
            var function = new Sech();

            var input1 = "16:30";
            var input2 = "04:30 pm";
            var input3 = "02:30";
            var input4 = "2:30 am";

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);
            var result3 = function.Execute(FunctionsHelper.CreateArgs(input3), this.ParsingContext);
            var result4 = function.Execute(FunctionsHelper.CreateArgs(input4), this.ParsingContext);

            Assert.AreEqual(0.802707034, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(0.802707034, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(0.994599074, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(0.994599074, System.Math.Round(result4.ResultNumeric, 9));
        }
Example #16
0
        public void SechHandlesDateTimeInputs()
        {
            var function = new Sech();

            var input1 = "1/17/2011 2:00";
            var input2 = "1/17/2011 2:00 AM";
            var input3 = "17/1/2011 2:00 AM";
            var input4 = "17/Jan/2011 2:00 AM";

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);
            var result3 = function.Execute(FunctionsHelper.CreateArgs(input3), this.ParsingContext);
            var result4 = function.Execute(FunctionsHelper.CreateArgs(input4), this.ParsingContext);

            Assert.AreEqual(0, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(0, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result3.Result).Type);
            Assert.AreEqual(0, System.Math.Round(result1.ResultNumeric, 9));
        }
Example #17
0
        public void SechHandlesPi()
        {
            var function = new Sech();
            var Pi       = System.Math.PI;

            var input1 = Pi;
            var input2 = Pi / 2;
            var input3 = 2 * Pi;
            var input4 = 60 * Pi / 180;

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);
            var result3 = function.Execute(FunctionsHelper.CreateArgs(input3), this.ParsingContext);
            var result4 = function.Execute(FunctionsHelper.CreateArgs(input4), this.ParsingContext);

            //Note: Neither Excel or EPPlus handle Pi perfectly. Both seem to have a small rounding issue that is not a problem if you are aware of it.
            Assert.AreEqual(0.086266738, System.Math.Round(result1.ResultNumeric, 9), .00001);
            Assert.AreEqual(0.398536815, System.Math.Round(result2.ResultNumeric, 9), 1.0E+16);
            Assert.AreEqual(0.003734872, System.Math.Round(result3.ResultNumeric, 9), .00001);
            Assert.AreEqual(0.624887966, System.Math.Round(result4.ResultNumeric, 9));
        }
Example #18
0
        public void SechIsGivenValuesRanginFromNegative10to10()
        {
            var function = new Sech();

            var input1 = -10;
            var input2 = -1;
            var input3 = 0;
            var input4 = 1;
            var input5 = 10;

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);
            var result3 = function.Execute(FunctionsHelper.CreateArgs(input3), this.ParsingContext);
            var result4 = function.Execute(FunctionsHelper.CreateArgs(input4), this.ParsingContext);
            var result5 = function.Execute(FunctionsHelper.CreateArgs(input5), this.ParsingContext);

            Assert.AreEqual(9.08E-05, System.Math.Round(result1.ResultNumeric, 9), 1.0E-5);
            Assert.AreEqual(0.648054274, result2.ResultNumeric, .00001);
            Assert.AreEqual(1, result3.ResultNumeric, .00001);
            Assert.AreEqual(0.648054274, result4.ResultNumeric, .00001);
            Assert.AreEqual(9.08E-05, System.Math.Round(result5.ResultNumeric, 9), 1.0E-5);
        }
Example #19
0
        public void SechHandlesDoublesCorrectly()
        {
            var function = new Sech();

            var input1 = 0.5;
            var input2 = 0.25;
            var input3 = 0.9;
            var input4 = -0.9;
            var input5 = ".5";

            var result1 = function.Execute(FunctionsHelper.CreateArgs(input1), this.ParsingContext);
            var result2 = function.Execute(FunctionsHelper.CreateArgs(input2), this.ParsingContext);
            var result3 = function.Execute(FunctionsHelper.CreateArgs(input3), this.ParsingContext);
            var result4 = function.Execute(FunctionsHelper.CreateArgs(input4), this.ParsingContext);
            var result5 = function.Execute(FunctionsHelper.CreateArgs(input5), this.ParsingContext);

            Assert.AreEqual(0.886818884, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(0.969543629, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(0.697794641, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(0.697794641, System.Math.Round(result4.ResultNumeric, 9));
            Assert.AreEqual(0.886818884, System.Math.Round(result5.ResultNumeric, 9));
        }
Example #20
0
 /// <summary>
 /// Analyzes the specified expression.
 /// </summary>
 /// <param name="exp">The expression.</param>
 /// <returns>
 /// The result of analysis.
 /// </returns>
 /// <exception cref="System.NotSupportedException">Always.</exception>
 public virtual TResult Analyze(Sech exp)
 {
     throw new NotSupportedException();
 }
Example #21
0
 /// <summary>
 /// Analyzes the specified expression.
 /// </summary>
 /// <param name="exp">The expression.</param>
 /// <returns>The result of analysis.</returns>
 public string Analyze(Sech exp)
 {
     return(ToString(exp, "sech({0})"));
 }
Example #22
0
        /// <summary>
        /// Creates an expression object from <see cref="FunctionToken"/>.
        /// </summary>
        /// <param name="token">The function token.</param>
        /// <returns>An expression.</returns>
        protected virtual IExpression CreateFunction(FunctionToken token)
        {
            IExpression exp;

            switch (token.Function)
            {
            case Functions.Add:
                exp = new Add(); break;

            case Functions.Sub:
                exp = new Sub(); break;

            case Functions.Mul:
                exp = new Mul(); break;

            case Functions.Div:
                exp = new Div(); break;

            case Functions.Pow:
                exp = new Pow(); break;

            case Functions.Absolute:
                exp = new Abs(); break;

            case Functions.Sine:
                exp = new Sin(); break;

            case Functions.Cosine:
                exp = new Cos(); break;

            case Functions.Tangent:
                exp = new Tan(); break;

            case Functions.Cotangent:
                exp = new Cot(); break;

            case Functions.Secant:
                exp = new Sec(); break;

            case Functions.Cosecant:
                exp = new Csc(); break;

            case Functions.Arcsine:
                exp = new Arcsin(); break;

            case Functions.Arccosine:
                exp = new Arccos(); break;

            case Functions.Arctangent:
                exp = new Arctan(); break;

            case Functions.Arccotangent:
                exp = new Arccot(); break;

            case Functions.Arcsecant:
                exp = new Arcsec(); break;

            case Functions.Arccosecant:
                exp = new Arccsc(); break;

            case Functions.Sqrt:
                exp = new Sqrt(); break;

            case Functions.Root:
                exp = new Root(); break;

            case Functions.Ln:
                exp = new Ln(); break;

            case Functions.Lg:
                exp = new Lg(); break;

            case Functions.Lb:
                exp = new Lb(); break;

            case Functions.Log:
                exp = new Log(); break;

            case Functions.Sineh:
                exp = new Sinh(); break;

            case Functions.Cosineh:
                exp = new Cosh(); break;

            case Functions.Tangenth:
                exp = new Tanh(); break;

            case Functions.Cotangenth:
                exp = new Coth(); break;

            case Functions.Secanth:
                exp = new Sech(); break;

            case Functions.Cosecanth:
                exp = new Csch(); break;

            case Functions.Arsineh:
                exp = new Arsinh(); break;

            case Functions.Arcosineh:
                exp = new Arcosh(); break;

            case Functions.Artangenth:
                exp = new Artanh(); break;

            case Functions.Arcotangenth:
                exp = new Arcoth(); break;

            case Functions.Arsecanth:
                exp = new Arsech(); break;

            case Functions.Arcosecanth:
                exp = new Arcsch(); break;

            case Functions.Exp:
                exp = new Exp(); break;

            case Functions.GCD:
                exp = new GCD(); break;

            case Functions.LCM:
                exp = new LCM(); break;

            case Functions.Factorial:
                exp = new Fact(); break;

            case Functions.Sum:
                exp = new Sum(); break;

            case Functions.Product:
                exp = new Product(); break;

            case Functions.Round:
                exp = new Round(); break;

            case Functions.Floor:
                exp = new Floor(); break;

            case Functions.Ceil:
                exp = new Ceil(); break;

            case Functions.Derivative:
                exp = new Derivative(); break;

            case Functions.Simplify:
                exp = new Simplify(); break;

            case Functions.Del:
                exp = new Del(); break;

            case Functions.Define:
                exp = new Define(); break;

            case Functions.Vector:
                exp = new Vector(); break;

            case Functions.Matrix:
                exp = new Matrix(); break;

            case Functions.Transpose:
                exp = new Transpose(); break;

            case Functions.Determinant:
                exp = new Determinant(); break;

            case Functions.Inverse:
                exp = new Inverse(); break;

            case Functions.If:
                exp = new If(); break;

            case Functions.For:
                exp = new For(); break;

            case Functions.While:
                exp = new While(); break;

            case Functions.Undefine:
                exp = new Undefine(); break;

            case Functions.Im:
                exp = new Im(); break;

            case Functions.Re:
                exp = new Re(); break;

            case Functions.Phase:
                exp = new Phase(); break;

            case Functions.Conjugate:
                exp = new Conjugate(); break;

            case Functions.Reciprocal:
                exp = new Reciprocal(); break;

            case Functions.Min:
                exp = new Min(); break;

            case Functions.Max:
                exp = new Max(); break;

            case Functions.Avg:
                exp = new Avg(); break;

            case Functions.Count:
                exp = new Count(); break;

            case Functions.Var:
                exp = new Var(); break;

            case Functions.Varp:
                exp = new Varp(); break;

            case Functions.Stdev:
                exp = new Stdev(); break;

            case Functions.Stdevp:
                exp = new Stdevp(); break;

            default:
                exp = null; break;
            }

            if (exp is DifferentParametersExpression diff)
            {
                diff.ParametersCount = token.CountOfParams;
            }

            return(exp);
        }
Example #23
0
        public void SechToStringTest()
        {
            var exp = new Sech(new Number(5));

            Assert.Equal("sech(5)", exp.ToString(commoonFormatter));
        }
Example #24
0
    private static void sech_cdf_test()

//****************************************************************************80
//
//  Purpose:
//
//    SECH_CDF_TEST tests SECH_CDF.
//
//  Licensing:
//
//    This code is distributed under the GNU LGPL license.
//
//  Modified:
//
//    24 January 2007
//
//  Author:
//
//    John Burkardt
//
    {
        int i;
        int seed = 123456789;

        Console.WriteLine("");
        Console.WriteLine("SECH_CDF_TEST");
        Console.WriteLine("  SECH_CDF evaluates the Sech CDF;");
        Console.WriteLine("  SECH_CDF_INV inverts the Sech CDF.");
        Console.WriteLine("  SECH_PDF evaluates the Sech PDF;");

        const double a = 3.0;
        const double b = 2.0;

        Console.WriteLine("");
        Console.WriteLine("  PDF parameter A =      " + a + "");
        Console.WriteLine("  PDF parameter B =      " + b + "");

        if (!Sech.sech_check(a, b))
        {
            Console.WriteLine("");
            Console.WriteLine("SECH_CDF_TEST - Fatal error!");
            Console.WriteLine("  The parameters are not legal.");
            return;
        }

        Console.WriteLine("");
        Console.WriteLine("       X            PDF           CDF            CDF_INV");
        Console.WriteLine("");

        for (i = 1; i <= 10; i++)
        {
            double x   = Sech.sech_sample(a, b, ref seed);
            double pdf = Sech.sech_pdf(x, a, b);
            double cdf = Sech.sech_cdf(x, a, b);
            double x2  = Sech.sech_cdf_inv(cdf, a, b);

            Console.WriteLine("  "
                              + x.ToString(CultureInfo.InvariantCulture).PadLeft(12) + "  "
                              + pdf.ToString(CultureInfo.InvariantCulture).PadLeft(12) + "  "
                              + cdf.ToString(CultureInfo.InvariantCulture).PadLeft(12) + "  "
                              + x2.ToString(CultureInfo.InvariantCulture).PadLeft(12) + "");
        }
    }
Example #25
0
        public void ExecuteTest()
        {
            var exp = new Sech(new Number(1));

            Assert.Equal(MathExtensions.Sech(1), exp.Execute());
        }
Example #26
0
    private static void sech_sample_test()

//****************************************************************************80
//
//  Purpose:
//
//    SECH_SAMPLE_TEST tests SECH_SAMPLE.
//
//  Licensing:
//
//    This code is distributed under the GNU LGPL license.
//
//  Modified:
//
//    24 January 2007
//
//  Author:
//
//    John Burkardt
//
    {
        const int SAMPLE_NUM = 1000;

        int i;
        int seed = 123456789;

        double[] x = new double [SAMPLE_NUM];

        Console.WriteLine("");
        Console.WriteLine("SECH_SAMPLE_TEST");
        Console.WriteLine("  SECH_MEAN computes the Sech mean;");
        Console.WriteLine("  SECH_SAMPLE samples the Sech distribution;");
        Console.WriteLine("  SECH_VARIANCE computes the Sech variance;");

        const double a = 3.0;
        const double b = 2.0;

        Console.WriteLine("");
        Console.WriteLine("  PDF parameter A =      " + a + "");
        Console.WriteLine("  PDF parameter B =      " + b + "");

        if (!Sech.sech_check(a, b))
        {
            Console.WriteLine("");
            Console.WriteLine("SECH_SAMPLE_TEST - Fatal error!");
            Console.WriteLine("  The parameters are not legal.");
            return;
        }

        double mean     = Sech.sech_mean(a, b);
        double variance = Sech.sech_variance(a, b);

        Console.WriteLine("");
        Console.WriteLine("  PDF mean =     " + mean + "");
        Console.WriteLine("  PDF variance = " + variance + "");

        for (i = 0; i < SAMPLE_NUM; i++)
        {
            x[i] = Sech.sech_sample(a, b, ref seed);
        }

        mean     = typeMethods.r8vec_mean(SAMPLE_NUM, x);
        variance = typeMethods.r8vec_variance(SAMPLE_NUM, x);
        double xmax = typeMethods.r8vec_max(SAMPLE_NUM, x);
        double xmin = typeMethods.r8vec_min(SAMPLE_NUM, x);

        Console.WriteLine("");
        Console.WriteLine("  Sample size =     " + SAMPLE_NUM + "");
        Console.WriteLine("  Sample mean =     " + mean + "");
        Console.WriteLine("  Sample variance = " + variance + "");
        Console.WriteLine("  Sample maximum =  " + xmax + "");
        Console.WriteLine("  Sample minimum =  " + xmin + "");
    }
Example #27
0
        public void ExecuteTestException()
        {
            var exp = new Sech(new Bool(false));

            Assert.Throws <ResultIsNotSupportedException>(() => exp.Execute());
        }
Example #28
0
        public void ExecuteGradianTest()
        {
            var exp = new Sech(new Number(1));

            Assert.Equal(MathExtensions.Sech(1 * Math.PI / 200), exp.Execute(AngleMeasurement.Gradian));
        }
Example #29
0
        public void ExecuteDegreeTest()
        {
            var exp = new Sech(new Number(1));

            Assert.Equal(MathExtensions.Sech(1 * Math.PI / 180), exp.Execute(AngleMeasurement.Degree));
        }
Example #30
0
        public void TestSechException()
        {
            var exp = new Sech(new Bool(false));

            TestException(exp);
        }