| using System; | 
 | using Microsoft.VisualStudio.TestTools.UnitTesting; | 
 | using OfficeOpenXml; | 
 |  | 
 | namespace EPPlusTest | 
 | { | 
 |     [TestClass] | 
 |     public class CellStoreTest : TestBase | 
 |     { | 
 |          | 
 |         [TestMethod] | 
 |         public void Insert1() | 
 |         { | 
 |             var ws=_pck.Workbook.Worksheets.Add("Insert1"); | 
 |             LoadData(ws); | 
 |  | 
 |             ws.InsertRow(2, 1000); | 
 |             Assert.AreEqual(ws.GetValue(1002,1),"1,0"); | 
 |             ws.InsertRow(1003, 1000); | 
 |             Assert.AreEqual(ws.GetValue(2003, 1), "2,0"); | 
 |             ws.InsertRow(2004, 1000); | 
 |             Assert.AreEqual(ws.GetValue(3004, 1), "3,0"); | 
 |             ws.InsertRow(2006, 1000); | 
 |             Assert.AreEqual(ws.GetValue(4005, 1), "4,0"); | 
 |             ws.InsertRow(4500, 500); | 
 |             Assert.AreEqual(ws.GetValue(5000, 1), "499,0"); | 
 |  | 
 |             ws.InsertRow(1, 1); | 
 |             Assert.AreEqual(ws.GetValue(1003, 1), "1,0"); | 
 |             Assert.AreEqual(ws.GetValue(5001, 1), "499,0"); | 
 |  | 
 |             ws.InsertRow(1, 15); | 
 |             Assert.AreEqual(ws.GetValue(4020, 1), "3,0"); | 
 |             Assert.AreEqual(ws.GetValue(5016, 1), "499,0"); | 
 |     | 
 |         } | 
 |         [TestMethod] | 
 |         public void Insert2() | 
 |         { | 
 |             var ws = _pck.Workbook.Worksheets.Add("Insert2-1"); | 
 |             LoadData(ws); | 
 |  | 
 |             for (int i = 0; i < 32; i++) | 
 |             { | 
 |                 ws.InsertRow(1, 1); | 
 |             } | 
 |             Assert.AreEqual(ws.GetValue(33,1),"0,0"); | 
 |  | 
 |             ws = _pck.Workbook.Worksheets.Add("Insert2-2"); | 
 |             LoadData(ws); | 
 |  | 
 |             for (int i = 0; i < 32; i++) | 
 |             { | 
 |                 ws.InsertRow(15, 1); | 
 |             } | 
 |             Assert.AreEqual(ws.GetValue(1, 1), "0,0"); | 
 |             Assert.AreEqual(ws.GetValue(47, 1), "14,0"); | 
 |         } | 
 |         [TestMethod] | 
 |         public void Insert3() | 
 |         { | 
 |             var ws = _pck.Workbook.Worksheets.Add("Insert3"); | 
 |             LoadData(ws); | 
 |  | 
 |             for (int i = 0; i < 500; i+=4) | 
 |             { | 
 |                 ws.InsertRow(i+1, 2); | 
 |             } | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void InsertRandomTest() | 
 |         { | 
 |             var ws = _pck.Workbook.Worksheets.Add("Insert4-1"); | 
 |              | 
 |             LoadData(ws, 5000); | 
 |  | 
 |             for (int i = 5000; i > 0; i-=2) | 
 |             { | 
 |                 ws.InsertRow(i, 1); | 
 |             } | 
 |         } | 
 |         [TestMethod] | 
 |         public void EnumCellstore() | 
 |         { | 
 |             var ws = _pck.Workbook.Worksheets.Add("enum"); | 
 |  | 
 |             LoadData(ws, 5000); | 
 |  | 
 |             var o = new CellsStoreEnumerator<object>(ws._values, 2, 1, 5, 3); | 
 |             foreach (var i in o) | 
 |             { | 
 |                 Console.WriteLine(i); | 
 |             } | 
 |         } | 
 |         [TestMethod] | 
 |         public void DeleteCells() | 
 |         { | 
 |             var ws = _pck.Workbook.Worksheets.Add("Delete"); | 
 |             LoadData(ws, 5000); | 
 |  | 
 |             ws.DeleteRow(2, 2); | 
 |             Assert.AreEqual("3,0",ws.GetValue(2,1)); | 
 |             ws.DeleteRow(10, 10); | 
 |             Assert.AreEqual("21,0", ws.GetValue(10, 1)); | 
 |             ws.DeleteRow(50, 40); | 
 |             Assert.AreEqual("101,0", ws.GetValue(50, 1)); | 
 |             ws.DeleteRow(100, 100); | 
 |             Assert.AreEqual("251,0", ws.GetValue(100, 1)); | 
 |             ws.DeleteRow(1, 31); | 
 |             Assert.AreEqual("43,0", ws.GetValue(1, 1)); | 
 |         } | 
 |         [TestMethod] | 
 |         public void DeleteCellsFirst() | 
 |         { | 
 |             var ws = _pck.Workbook.Worksheets.Add("DeleteFirst"); | 
 |             LoadData(ws, 5000); | 
 |  | 
 |             ws.DeleteRow(32, 30); | 
 |             for (int i = 1; i < 50; i++) | 
 |             { | 
 |                 ws.DeleteRow(1,1); | 
 |             } | 
 |         } | 
 |         [TestMethod] | 
 |         public void DeleteInsert() | 
 |         { | 
 |             var ws = _pck.Workbook.Worksheets.Add("DeleteInsert"); | 
 |             LoadData(ws, 5000); | 
 |  | 
 |             ws.DeleteRow(2, 33); | 
 |             ws.InsertRow(2, 38); | 
 |  | 
 |             for (int i = 0; i < 33; i++) | 
 |             { | 
 |                 ws.SetValue(i + 2,1, i + 2); | 
 |             } | 
 |         } | 
 |         private void LoadData(ExcelWorksheet ws) | 
 |         { | 
 |             LoadData(ws, 1000); | 
 |         } | 
 |         private void LoadData(ExcelWorksheet ws, int rows, int cols=1) | 
 |         { | 
 |             for (int r = 0; r < rows; r++) | 
 |             { | 
 |                 for (int c = 0; c < cols; c++) | 
 |                 { | 
 |                     ws.SetValue(r+1, c+1, r.ToString()+","+c.ToString()); | 
 |                 } | 
 |             } | 
 |         } | 
 |         [TestMethod] | 
 |         public void FillInsertTest() | 
 |         { | 
 |             var ws = _pck.Workbook.Worksheets.Add("FillInsert"); | 
 |  | 
 |             LoadData(ws, 500); | 
 |  | 
 |             var r=1; | 
 |             for(int i=1;i<=500;i++) | 
 |             { | 
 |                 ws.InsertRow(r,i); | 
 |                 Assert.AreEqual((i-1).ToString()+",0", ws.GetValue(r+i,1).ToString()); | 
 |                 r+=i+1; | 
 |             } | 
 |         } | 
 |     } | 
 | } |