Exemple #1
0
        public void EomonthWithZerosForInput()
        {
            var function = new Eomonth();
            var result   = function.Execute(FunctionsHelper.CreateArgs(0, 0), this.ParsingContext);

            Assert.AreEqual(31d, result.Result);
        }
Exemple #2
0
        public void EomonthWithGarbageStringAsOffsetArgumentReturnsPoundValue()
        {
            var function = new Eomonth();
            var result   = function.Execute(FunctionsHelper.CreateArgs(0, "garbage"), this.ParsingContext);

            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result.Result).Type);
        }
Exemple #3
0
        public void EomonthOffsetPlusOADateGeneratesInvalidDateReturnsPoundNum()
        {
            var function = new Eomonth();
            var result   = function.Execute(FunctionsHelper.CreateArgs(1, -1), this.ParsingContext);

            Assert.AreEqual(eErrorType.Num, ((ExcelErrorValue)result.Result).Type);
        }
Exemple #4
0
        public void EomonthNullSecondArgumentReturnsPoundNA()
        {
            var function = new Eomonth();
            var result   = function.Execute(FunctionsHelper.CreateArgs(0, null), this.ParsingContext);

            Assert.AreEqual(eErrorType.NA, ((ExcelErrorValue)result.Result).Type);
        }
Exemple #5
0
        public void EomonthDateWithFractionInputReturnsCorrectValue()
        {
            var function = new Eomonth();
            var result   = function.Execute(FunctionsHelper.CreateArgs(0.3, 1), this.ParsingContext);

            Assert.AreEqual(59d, result.Result);
        }
Exemple #6
0
        public void EomonthOnFebruary291900ReturnsFebruary28()
        {
            var function = new Eomonth();
            // OADate 60 in Excel represents 2/29/1900, a day that never actually happened but existed in Lotus 1-2-3.
            var result = function.Execute(FunctionsHelper.CreateArgs(60, 0), this.ParsingContext);

            Assert.AreEqual(59d, result.Result);
        }
Exemple #7
0
        public void EomonthWithDateNotAsStringReturnsCorrectValue()
        {
            var function  = new Eomonth();
            var arguments = FunctionsHelper.CreateArgs(5 / 15 / 2017, 1);
            var result    = function.Execute(arguments, this.ParsingContext);

            Assert.AreEqual(59d, result.Result);
        }
Exemple #8
0
        public void EomonthReturnsEndOfMonthWitZeroOffsetFromDateTime()
        {
            var function = new Eomonth();
            var date     = new DateTime(2013, 2, 4);
            var result   = function.Execute(FunctionsHelper.CreateArgs(date, 0.0), this.ParsingContext);

            Assert.AreEqual(new DateTime(2013, 2, 28).ToOADate(), result.Result);
        }
Exemple #9
0
        public void EomonthWithMonthArgumentAsDoubleReturnsCorrectValue()
        {
            var function  = new Eomonth();
            var arguments = FunctionsHelper.CreateArgs("5/15/2017", 20.6);
            var result    = function.Execute(arguments, this.ParsingContext);

            Assert.AreEqual(43496d, result.Result);
        }
Exemple #10
0
        public void EomonthWithMonthArgumentAsDateNotAsStringReturnsCorretValue()
        {
            var function  = new Eomonth();
            var arguments = FunctionsHelper.CreateArgs("5/15/2017", 6 / 25 / 2017);
            var result    = function.Execute(arguments, this.ParsingContext);

            Assert.AreEqual(42886d, result.Result);
        }
Exemple #11
0
        public void EomonthWithMonthArgumentAsDateWrittenOutReturnsCorrectValue()
        {
            var function  = new Eomonth();
            var arguments = FunctionsHelper.CreateArgs("5/15/2017", "25 JUN 2017");
            var result    = function.Execute(arguments, this.ParsingContext);

            Assert.AreEqual(1348962d, result.Result);
        }
Exemple #12
0
        public void EomonthWithDateWithPeriodsInsteadOfSlashesReturnsCorrectValue()
        {
            var function  = new Eomonth();
            var arguments = FunctionsHelper.CreateArgs("5.15.2017", 1);
            var result    = function.Execute(arguments, this.ParsingContext);

            Assert.AreEqual(42916d, result.Result);
        }
Exemple #13
0
        public void EomonthWithZeroInputReturnsCorrectValue()
        {
            var function  = new Eomonth();
            var arguments = FunctionsHelper.CreateArgs(0.0, 1);
            var result    = function.Execute(arguments, this.ParsingContext);

            Assert.AreEqual(59d, result.Result);
        }
Exemple #14
0
        public void EomonthWithoutArgumentsReturnsPoundValue()
        {
            var function  = new Eomonth();
            var arguments = FunctionsHelper.CreateArgs();
            var result    = function.Execute(arguments, this.ParsingContext);

            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result.Result).Type);
        }
        public void EomonthShouldReturnCorrectResultWithNegativeArg()
        {
            var func = new Eomonth();
            var arg  = new DateTime(2013, 2, 2).ToOADate();

            var result = func.Execute(FunctionsHelper.CreateArgs(arg, -3), _parsingContext);

            Assert.AreEqual(41243d, result.Result);
        }
Exemple #16
0
        public void EomonthWithMonthArgumentAsDateFunctionReturnsCorretValue()
        {
            var function  = new Eomonth();
            var endDate   = new DateTime(2017, 6, 25);
            var arguments = FunctionsHelper.CreateArgs("5/15/2017", endDate);
            var result    = function.Execute(arguments, this.ParsingContext);

            Assert.AreEqual(1348962d, result.Result);
        }
Exemple #17
0
        public void EomonthWithStringDateFirstArgument()
        {
            var function   = new Eomonth();
            var dateString = "4 FEB 2013";
            var result     = function.Execute(FunctionsHelper.CreateArgs(dateString, 0), this.ParsingContext);
            var expected   = new DateTime(2013, 2, 28);

            Assert.AreEqual(expected.ToOADate(), result.Result);
        }
Exemple #18
0
        public void EomonthWithLargeStringDateAsOffset()
        {
            var function = new Eomonth();
            var date     = new DateTime(2013, 2, 4);
            var result   = function.Execute(FunctionsHelper.CreateArgs(date, "1/12/2017"), this.ParsingContext);
            var expected = new DateTime(5575, 5, 31);

            Assert.AreEqual(expected.ToOADate(), result.Result);
        }
Exemple #19
0
        public void EomonthWithSmallDateAsSecondArgument()
        {
            var function   = new Eomonth();
            var date       = new DateTime(2013, 2, 4);
            var offsetDate = new DateTime(1900, 1, 12);
            var result     = function.Execute(FunctionsHelper.CreateArgs(date, offsetDate), this.ParsingContext);
            var expected   = new DateTime(2014, 2, 28);

            Assert.AreEqual(expected.ToOADate(), result.Result);
        }
Exemple #20
0
        public void EomonthOnFeb291900AsDateReturnsFebruary28()
        {
            // This functionality is different from that of Excel's. This date, 2/29/1900 is not a real date however
            // Excel supports using this date as and argument in the EOMONTH Function. Since it is not a real date
            // EPPlus has been written to not support it as an argument and thus returns an error of type #VALUE!
            var function = new Eomonth();
            var result   = function.Execute(FunctionsHelper.CreateArgs("2/29/1900", 1), this.ParsingContext);

            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result.Result).Type);
        }
Exemple #21
0
        public void EomonthReturnsEndOfMonthWithPositiveOffset()
        {
            var function = new Eomonth();
            var date     = new DateTime(2013, 2, 4).ToOADate();
            var result   = function.Execute(FunctionsHelper.CreateArgs(date, 3), this.ParsingContext);

            Assert.AreEqual(41425d, result.Result);
            var resultDate = DateTime.FromOADate(result.ResultNumeric);

            Assert.AreEqual(5, resultDate.Month);
        }
Exemple #22
0
        public void EomonthWithNegativeOffsetReturnsCorrectValue()
        {
            var function = new Eomonth();
            var date     = new DateTime(2013, 2, 4).ToOADate();
            var result   = function.Execute(FunctionsHelper.CreateArgs(date, -3), this.ParsingContext);

            Assert.AreEqual(41243d, result.Result);
            var resultDate = DateTime.FromOADate(result.ResultNumeric);

            Assert.AreEqual(11, resultDate.Month);
            Assert.AreEqual(30, resultDate.Day);
            Assert.AreEqual(2012, resultDate.Year);
        }
Exemple #23
0
        public void EoMonthWithGermanCultureReturnCorrectValue()
        {
            var currentCulture = Thread.CurrentThread.CurrentCulture;

            try
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de-DE");
                var function  = new Eomonth();
                var arguments = FunctionsHelper.CreateArgs("15.5.2017", 20);
                var result    = function.Execute(arguments, this.ParsingContext);
                Assert.AreEqual(43496d, result.Result);
            }
            finally
            {
                Thread.CurrentThread.CurrentCulture = currentCulture;
            }
        }
Exemple #24
0
        public void EomonthFunctionWithErrorValuesAsInputReturnsTheInputErrorValue()
        {
            var func        = new Eomonth();
            var argNA       = FunctionsHelper.CreateArgs(ExcelErrorValue.Create(eErrorType.NA), 2);
            var argNAME     = FunctionsHelper.CreateArgs(ExcelErrorValue.Create(eErrorType.Name), 2);
            var argVALUE    = FunctionsHelper.CreateArgs(ExcelErrorValue.Create(eErrorType.Value), 2);
            var argNUM      = FunctionsHelper.CreateArgs(ExcelErrorValue.Create(eErrorType.Num), 2);
            var argDIV0     = FunctionsHelper.CreateArgs(ExcelErrorValue.Create(eErrorType.Div0), 2);
            var argREF      = FunctionsHelper.CreateArgs(ExcelErrorValue.Create(eErrorType.Ref), 2);
            var resultNA    = func.Execute(argNA, this.ParsingContext);
            var resultNAME  = func.Execute(argNAME, this.ParsingContext);
            var resultVALUE = func.Execute(argVALUE, this.ParsingContext);
            var resultNUM   = func.Execute(argNUM, this.ParsingContext);
            var resultDIV0  = func.Execute(argDIV0, this.ParsingContext);
            var resultREF   = func.Execute(argREF, this.ParsingContext);

            Assert.AreEqual(eErrorType.NA, ((ExcelErrorValue)resultNA.Result).Type);
            Assert.AreEqual(eErrorType.Name, ((ExcelErrorValue)resultNAME.Result).Type);
            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)resultVALUE.Result).Type);
            Assert.AreEqual(eErrorType.Num, ((ExcelErrorValue)resultNUM.Result).Type);
            Assert.AreEqual(eErrorType.Div0, ((ExcelErrorValue)resultDIV0.Result).Type);
            Assert.AreEqual(eErrorType.Ref, ((ExcelErrorValue)resultREF.Result).Type);
        }