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