| using System; | |
| using System.IO; | |
| using EPPlusTest.FormulaParsing.TestHelpers; | |
| using Microsoft.VisualStudio.TestTools.UnitTesting; | |
| using OfficeOpenXml; | |
| using OfficeOpenXml.FormulaParsing; | |
| using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; | |
| using OfficeOpenXml.FormulaParsing.Exceptions; | |
| namespace EPPlusTest.FormulaParsing.Excel.Functions.RefAndLookup | |
| { | |
| [TestClass] | |
| public class IndexTests | |
| { | |
| private ParsingContext _parsingContext; | |
| private ExcelPackage _package; | |
| private ExcelWorksheet _worksheet; | |
| [TestInitialize] | |
| public void Initialize() | |
| { | |
| _parsingContext = ParsingContext.Create(); | |
| _package = new ExcelPackage(new MemoryStream()); | |
| _worksheet = _package.Workbook.Worksheets.Add("test"); | |
| } | |
| [TestCleanup] | |
| public void Cleanup() | |
| { | |
| _package.Dispose(); | |
| } | |
| [TestMethod] | |
| public void Index_Should_Return_Value_By_Index() | |
| { | |
| var func = new Index(); | |
| var result = func.Execute( | |
| FunctionsHelper.CreateArgs( | |
| FunctionsHelper.CreateArgs(1, 2, 5), | |
| 3 | |
| ),_parsingContext); | |
| Assert.AreEqual(5, result.Result); | |
| } | |
| [TestMethod] | |
| public void Index_Should_Handle_SingleRange() | |
| { | |
| _worksheet.Cells["A1"].Value = 1d; | |
| _worksheet.Cells["A2"].Value = 3d; | |
| _worksheet.Cells["A3"].Value = 5d; | |
| _worksheet.Cells["A4"].Formula = "INDEX(A1:A3;3)"; | |
| _worksheet.Calculate(); | |
| Assert.AreEqual(5d, _worksheet.Cells["A4"].Value); | |
| } | |
| } | |
| } |