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)); }
public void SechArsech() { var exp = new Sech(new Arsech(new Variable("x"))); var expected = new Variable("x"); SimpleTest(exp, expected); }
public void SechArsech() { var exp = new Sech(new Arsech(Variable.X)); var expected = Variable.X; SimpleTest(exp, expected); }
public void CloneTest() { var exp = new Sech(new Number(1)); var clone = exp.Clone(); Assert.Equal(exp, clone); }
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)); }
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)); }
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); }
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)); }
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)); }
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)); }
/// <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); }
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)); }
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); }
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)); }
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)); }
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)); }
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)); }
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); }
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)); }
/// <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(); }
/// <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})")); }
/// <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); }
public void SechToStringTest() { var exp = new Sech(new Number(5)); Assert.Equal("sech(5)", exp.ToString(commoonFormatter)); }
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) + ""); } }
public void ExecuteTest() { var exp = new Sech(new Number(1)); Assert.Equal(MathExtensions.Sech(1), exp.Execute()); }
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 + ""); }
public void ExecuteTestException() { var exp = new Sech(new Bool(false)); Assert.Throws <ResultIsNotSupportedException>(() => exp.Execute()); }
public void ExecuteGradianTest() { var exp = new Sech(new Number(1)); Assert.Equal(MathExtensions.Sech(1 * Math.PI / 200), exp.Execute(AngleMeasurement.Gradian)); }
public void ExecuteDegreeTest() { var exp = new Sech(new Number(1)); Assert.Equal(MathExtensions.Sech(1 * Math.PI / 180), exp.Execute(AngleMeasurement.Degree)); }
public void TestSechException() { var exp = new Sech(new Bool(false)); TestException(exp); }