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