|  | 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); | 
|  | } | 
|  | } | 
|  | } |