blob: 1d839a558ec13928008ff0b4c2e92eda13b501db [file] [log] [blame]
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;
}
}
}
}