Ejemplo n.º 1
0
        public void SecHandlesMilitaryTimesPast2400()
        {
            var function = new Sec();

            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(1.000868684, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(1.003482298, System.Math.Round(result2.ResultNumeric, 9));
        }
Ejemplo n.º 2
0
        public void SecHandlesTrueOrFalse()
        {
            var function = new Sec();

            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(1.850815718, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(1, System.Math.Round(result2.ResultNumeric, 8));
        }
Ejemplo n.º 3
0
        public void SecHandlesInputDatesAreSeperatedByDashes()
        {
            var function = new Sec();

            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(3.61484195, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(3.61484195, System.Math.Round(result2.ResultNumeric, 9));
        }
Ejemplo n.º 4
0
        public void SecTestInputsWithDatesThatHaveSlashesInThem()
        {
            var function = new Sec();

            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(-1.908897846, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result2.Result).Type);
            Assert.AreEqual(-1.908897846, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(-1.908897846, System.Math.Round(result4.ResultNumeric, 9));
            Assert.AreEqual(-1.908897846, System.Math.Round(result5.ResultNumeric, 9));
            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result6.Result).Type);
            Assert.AreEqual(-1.908897846, System.Math.Round(result7.ResultNumeric, 9));
            Assert.AreEqual(-1.908897846, System.Math.Round(result8.ResultNumeric, 9));
        }
Ejemplo n.º 5
0
        public void SecHandlesMilitaryTime()
        {
            var function = new Sec();

            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(1.000000241, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(1.850782356, System.Math.Round(result3.ResultNumeric, 9));
        }
Ejemplo n.º 6
0
        public void SecHandlesNormal12HourClockInputs()
        {
            var function = new Sec();

            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(1.000000567, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(1.139493927, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(1, System.Math.Round(result4.ResultNumeric, 8));
            Assert.AreEqual(1.167064601, System.Math.Round(result5.ResultNumeric, 9));
            Assert.AreEqual(1.001200793, System.Math.Round(result6.ResultNumeric, 9));
            Assert.AreEqual(1.260509718, System.Math.Round(result7.ResultNumeric, 9));
        }
Ejemplo n.º 7
0
        public void SecIsGivenAStringAsInput()
        {
            var function = new Sec();

            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(1.850815718, result3.ResultNumeric, .00001);
            Assert.AreEqual(14.1368329, result4.ResultNumeric, .00001);
        }
Ejemplo n.º 8
0
        public void SecHandlesInputsWithDatesInTheFormMonthDateCommaYearTime()
        {
            var function = new Sec();

            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(-1.908897846, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(-1.021635237, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(-1.908897846, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(-1.021635237, System.Math.Round(result4.ResultNumeric, 9));
        }
Ejemplo n.º 9
0
        public void SecTestMilitaryTimeAndNormalTimeComparisions()
        {
            var function = new Sec();

            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(1.293937347, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(1.293937347, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(1.005449985, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(1.005449985, System.Math.Round(result4.ResultNumeric, 9));
        }
Ejemplo n.º 10
0
        public void SecHandlesDateTimeInputs()
        {
            var function = new Sec();

            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(-1.908897846, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(-1.908897846, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result3.Result).Type);
            Assert.AreEqual(-1.908897846, System.Math.Round(result1.ResultNumeric, 9));
        }
Ejemplo n.º 11
0
        public void ExecuteComplexNumberTest()
        {
            var complex = new Complex(3, 2);
            var exp     = new Sec(new ComplexNumber(complex));
            var result  = (Complex)exp.Execute();

            Assert.Equal(ComplexExtensions.Sec(complex), result);
            Assert.Equal(-0.26351297515838928, result.Real, 15);
            Assert.Equal(0.036211636558768523, result.Imaginary, 15);
        }
Ejemplo n.º 12
0
        public void SecHandlesPi()
        {
            var function = new Sec();
            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(-1, System.Math.Round(result1.ResultNumeric, 9), .00001);
            Assert.AreEqual(1.63246E+16, System.Math.Round(result2.ResultNumeric, 9), 1.0E+16);
            Assert.AreEqual(1, System.Math.Round(result3.ResultNumeric, 9), .00001);
            Assert.AreEqual(2, System.Math.Round(result4.ResultNumeric, 9));
        }
Ejemplo n.º 13
0
        public void SecInSecdDoublesAsInputs()
        {
            var function = new Sec();

            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(2.450487521, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(1.159663823, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(1.850815718, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(1.850815718, System.Math.Round(result4.ResultNumeric, 9));
            Assert.AreEqual(14.1368329, System.Math.Round(result5.ResultNumeric, 8));
            Assert.AreEqual(1.778160039, System.Math.Round(result6.ResultNumeric, 9));
        }
Ejemplo n.º 14
0
        public void SecIsGivenValuesRanginFromNegative10to10()
        {
            var function = new Sec();

            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(-1.191793507, result1.ResultNumeric, .00001);
            Assert.AreEqual(1.850815718, result2.ResultNumeric, .00001);
            Assert.AreEqual(1, result3.ResultNumeric, .00001);
            Assert.AreEqual(1.850815718, result4.ResultNumeric, .00001);
            Assert.AreEqual(-1.191793507, result5.ResultNumeric, .00001);
        }
Ejemplo n.º 15
0
        public void SecHandlesDoublesCorrectly()
        {
            var function = new Sec();

            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(1.139493927, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(1.032085024, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(1.60872581, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(1.60872581, System.Math.Round(result4.ResultNumeric, 9));
            Assert.AreEqual(1.139493927, System.Math.Round(result5.ResultNumeric, 9));
        }
Ejemplo n.º 16
0
        public void ExecuteTestException()
        {
            var exp = new Sec(new Bool(false));

            Assert.Throws <ResultIsNotSupportedException>(() => exp.Execute());
        }
Ejemplo n.º 17
0
        public void ExecuteGradianTest()
        {
            var exp = new Sec(new Number(1));

            Assert.Equal(MathExtensions.Sec(Math.PI / 200), exp.Execute(AngleMeasurement.Gradian));
        }
Ejemplo n.º 18
0
        public void ExecuteDegreeTest()
        {
            var exp = new Sec(new Number(1));

            Assert.Equal(MathExtensions.Sec(Math.PI / 180), exp.Execute(AngleMeasurement.Degree));
        }
Ejemplo n.º 19
0
        public void ExecuteRadianTest()
        {
            var exp = new Sec(new Number(1));

            Assert.Equal(MathExtensions.Sec(1), (double)exp.Execute(AngleMeasurement.Radian), 15);
        }