Пример #1
0
        public void CotInCotdDoublesAsInputs()
        {
            var function = new Cot();

            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(0.446995109, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(-1.702956919, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(0.642092616, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(0.642092616, System.Math.Round(result4.ResultNumeric, 9));
            Assert.AreEqual(0.070914844, System.Math.Round(result5.ResultNumeric, 9));
            Assert.AreEqual(0.680122132, System.Math.Round(result6.ResultNumeric, 9));
        }
Пример #2
0
        public void CotHandlesNormal12HourClockInputs()
        {
            var function = new Cot();

            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(eErrorType.Div0, ((ExcelErrorValue)result1.Result).Type);
            Assert.AreEqual(939.1300798, System.Math.Round(result2.ResultNumeric, 7));
            Assert.AreEqual(1.830487722, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(eErrorType.Div0, ((ExcelErrorValue)result1.Result).Type);
            Assert.AreEqual(1.66196492, System.Math.Round(result5.ResultNumeric, 9));
            Assert.AreEqual(20.39954924, System.Math.Round(result6.ResultNumeric, 8));
            Assert.AreEqual(1.303121308, System.Math.Round(result7.ResultNumeric, 9));
        }
Пример #3
0
        public void CotZero()
        {
            var exp      = new Cot(zero);
            var expected = new Number(MathExtensions.Cot(0));

            SimpleTest(exp, expected);
        }
Пример #4
0
        public void CloneTest()
        {
            var exp   = new Cot(new Number(1));
            var clone = exp.Clone();

            Assert.Equal(exp, clone);
        }
Пример #5
0
        public void CotArccot()
        {
            var exp      = new Cot(new Arccot(Variable.X));
            var expected = Variable.X;

            SimpleTest(exp, expected);
        }
Пример #6
0
        public void CotTestInputsWithDatesThatHaveSlashesInThem()
        {
            var function = new Cot();

            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.615004407, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result2.Result).Type);
            Assert.AreEqual(-0.615004407, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(-0.615004407, System.Math.Round(result4.ResultNumeric, 9));
            Assert.AreEqual(-0.615004407, System.Math.Round(result5.ResultNumeric, 9));
            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result6.Result).Type);
            Assert.AreEqual(-0.615004407, System.Math.Round(result7.ResultNumeric, 9));
            Assert.AreEqual(-0.615004407, System.Math.Round(result8.ResultNumeric, 9));
        }
Пример #7
0
        public void CotArccot()
        {
            var exp      = new Cot(new Arccot(new Variable("x")));
            var expected = new Variable("x");

            SimpleTest(exp, expected);
        }
Пример #8
0
        public void ExecuteComplexNumberTest()
        {
            var complex = new Complex(3, 2);
            var exp     = new Cot(new ComplexNumber(complex));
            var result  = (Complex)exp.Execute();

            Assert.Equal(ComplexExtensions.Cot(complex), result);
            Assert.Equal(-0.010604783470337083, result.Real, 14);
            Assert.Equal(-1.0357466377649953, result.Imaginary, 14);
        }
Пример #9
0
        /// <summary>
        /// Analyzes the specified expression.
        /// </summary>
        /// <param name="exp">The expression.</param>
        /// <returns>
        /// The result of analysis.
        /// </returns>
        public override IExpression Analyze(Csc exp)
        {
            var unary = new UnaryMinus(exp.Argument.Clone().Analyze(this));
            var cot   = new Cot(exp.Argument.Clone());
            var csc   = new Csc(exp.Argument.Clone());
            var mul1  = new Mul(cot, csc);
            var mul2  = new Mul(unary, mul1);

            return(mul2);
        }
Пример #10
0
        public async Task <IActionResult> Post([FromBody] Cot value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            await _cotRepository.InsertAsync(value);

            return(Created($"cot/{value.CotId}", value));
        }
Пример #11
0
    public Thap()
    {
        this.Width     = 260;
        this.Height    = 350;
        this.BackColor = Color.Black;

        this.CacDia = new Dia[0];

        this.CayCot          = new Cot(300);
        this.CayCot.Location = new Point(120, 0);
        this.Controls.Add(this.CayCot);
    }
Пример #12
0
        private void BuildCot()
        {
            // TODO: Do not create an object to just access its property.
            // Making cost static would prevent changing it between different derived types????
            var cot = new Cot();

            if (CurrentLocation.Inventory.GetItemCount <Wood>() >= cot.WoodCost)
            {
                SoundController.PlayEffect(SoundEffects.Build);
                CurrentLocation.Inventory.RemoveItem <Wood>(cot.WoodCost);
                CurrentLocation.Construction.AddBuilding <Cot>();
            }
        }
Пример #13
0
        public void CotHandlesMilitaryTimesPast2400()
        {
            var function = new Cot();

            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(23.9861095, System.Math.Round(result1.ResultNumeric, 8));
            Assert.AreEqual(11.97220935, System.Math.Round(result2.ResultNumeric, 8));
        }
Пример #14
0
        public void CotHandlesTrueOrFalse()
        {
            var function = new Cot();

            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.642092616, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(eErrorType.Div0, ((ExcelErrorValue)result2.Result).Type);
        }
Пример #15
0
        public void CotHandlesInputDatesAreSeperatedByDashes()
        {
            var function = new Cot();

            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.287871627, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(0.287871627, System.Math.Round(result2.ResultNumeric, 9));
        }
Пример #16
0
        /// <summary>
        /// Analyzes the specified expression.
        /// </summary>
        /// <param name="exp">The expression.</param>
        /// <returns>
        /// The result of analysis.
        /// </returns>
        public override IExpression Analyze(Cot exp)
        {
            if (!Helpers.HasVariable(exp, Variable))
            {
                return(new Number(0));
            }

            var sine       = new Sin(exp.Argument.Clone());
            var involution = new Pow(sine, new Number(2));
            var division   = new Div(exp.Argument.Clone().Analyze(this), involution);
            var unMinus    = new UnaryMinus(division);

            return(unMinus);
        }
Пример #17
0
        public void CotHandlesMilitaryTime()
        {
            var function = new Cot();

            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(eErrorType.Div0, ((ExcelErrorValue)result1.Result).Type);
            Assert.AreEqual(1439.999768519, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(0.642108962, System.Math.Round(result3.ResultNumeric, 9));
        }
Пример #18
0
        public async Task <IActionResult> Put([FromBody] Cot value, [FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != value.CotId)
            {
                return(BadRequest());
            }

            await _cotRepository.UpdateAsync(value);

            return(Ok(value));
        }
Пример #19
0
    public static void cot_values_test()
    //****************************************************************************80
    //
    //  Purpose:
    //
    //    COT_VALUES_TEST tests COT_VALUES.
    //
    //  Licensing:
    //
    //    This code is distributed under the GNU LGPL license.
    //
    //  Modified:
    //
    //    22 January 2015
    //
    //  Author:
    //
    //    John Burkardt
    //
    {
        double fx = 0;
        double x  = 0;

        Console.WriteLine("");
        Console.WriteLine("COT_VALUES_TEST:");
        Console.WriteLine("   COT_VALUES stores values of the cotangent function.");
        Console.WriteLine("");
        Console.WriteLine("                X                     FX");
        Console.WriteLine("");
        int n_data = 0;

        for (;;)
        {
            Cot.cot_values(ref n_data, ref x, ref fx);
            if (n_data == 0)
            {
                break;
            }

            Console.WriteLine("  "
                              + x.ToString("0.################").PadLeft(24) + "  "
                              + fx.ToString("0.################").PadLeft(24) + "");
        }
    }
Пример #20
0
        public void CotHandlesInputsWithDatesInTheFormMonthDateCommaYearTime()
        {
            var function = new Cot();

            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.615004407, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(-4.781539727, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(-0.615004407, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(-4.781539727, System.Math.Round(result4.ResultNumeric, 9));
        }
Пример #21
0
        public void CotHandlesDateTimeInputs()
        {
            var function = new Cot();

            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.615004407, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(-0.615004407, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result3.Result).Type);
            Assert.AreEqual(-0.615004407, System.Math.Round(result1.ResultNumeric, 9));
        }
Пример #22
0
        public void CotTestMilitaryTimeAndNormalTimeComparisions()
        {
            var function = new Cot();

            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.217816458, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(1.217816458, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(9.565252634, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(9.565252634, System.Math.Round(result4.ResultNumeric, 9));
        }
Пример #23
0
        public void CotIsGivenAStringAsInput()
        {
            var function = new Cot();

            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(eErrorType.Div0, ((ExcelErrorValue)result2.Result).Type);
            Assert.AreEqual(0.642092616, result3.ResultNumeric, .00001);
            Assert.AreEqual(0.070914844, result4.ResultNumeric, .00001);
        }
Пример #24
0
        public void CotHandlesPi()
        {
            var function = new Cot();
            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(-8.16228E+15, System.Math.Round(result2.ResultNumeric, 9), 1.0E+16);
            Assert.AreEqual(6.12574E-17, System.Math.Round(result2.ResultNumeric, 9), .00001);
            Assert.AreEqual(-4.08114E+15, System.Math.Round(result3.ResultNumeric, 9), 1.0E+15);
            Assert.AreEqual(0.577350269, System.Math.Round(result4.ResultNumeric, 9));
        }
Пример #25
0
        public void CotHandlesDoublesCorrectly()
        {
            var function = new Cot();

            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.830487722, System.Math.Round(result1.ResultNumeric, 9));
            Assert.AreEqual(3.916317365, System.Math.Round(result2.ResultNumeric, 9));
            Assert.AreEqual(0.793551148, System.Math.Round(result3.ResultNumeric, 9));
            Assert.AreEqual(-0.793551148, System.Math.Round(result4.ResultNumeric, 9));
            Assert.AreEqual(1.830487722, System.Math.Round(result5.ResultNumeric, 9));
        }
Пример #26
0
        public void CotIsGivenValuesRanginFromNegative10to10()
        {
            var function = new Cot();

            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.542351045, result1.ResultNumeric, .00001);
            Assert.AreEqual(-0.642092616, result2.ResultNumeric, .00001);
            Assert.AreEqual(eErrorType.Div0, ((ExcelErrorValue)result3.Result).Type);
            Assert.AreEqual(0.642092616, result4.ResultNumeric, .00001);
            Assert.AreEqual(1.542351045, result5.ResultNumeric, .00001);
        }
Пример #27
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(Cot exp)
 {
     throw new NotSupportedException();
 }
Пример #28
0
        public void ExecuteGradianTest()
        {
            var exp = new Cot(new Number(1));

            Assert.Equal(MathExtensions.Cot(1 * Math.PI / 200), exp.Execute(AngleMeasurement.Gradian));
        }
Пример #29
0
        public void ExecuteDegreeTest()
        {
            var exp = new Cot(new Number(1));

            Assert.Equal(MathExtensions.Cot(1 * Math.PI / 180), exp.Execute(AngleMeasurement.Degree));
        }
Пример #30
0
 /// <summary>
 /// Analyzes the specified expression.
 /// </summary>
 /// <param name="exp">The expression.</param>
 /// <returns>The result of analysis.</returns>
 public string Analyze(Cot exp)
 {
     return(ToString(exp, "cot({0})"));
 }