diff --git a/.gitattributes b/.gitattributes index 3b6f31a5..a3f012b5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -49,3 +49,6 @@ *.fsproj -text merge=union *.dbproj -text merge=union *.sln -text merge=union +*.slnx -text merge=union + +tests/data/** binary diff --git a/benchmarks/MiniExcel.Benchmarks/BenchmarkBase.cs b/benchmarks/MiniExcel.Benchmarks/BenchmarkBase.cs index 943ca502..f52b7c65 100644 --- a/benchmarks/MiniExcel.Benchmarks/BenchmarkBase.cs +++ b/benchmarks/MiniExcel.Benchmarks/BenchmarkBase.cs @@ -2,7 +2,7 @@ public abstract class BenchmarkBase { - protected const string FilePath = "Test100,000x10.xlsx"; + protected const string FilePath = "data/Test100,000x10.xlsx"; protected const int RowCount = 100_000; protected IEnumerable GetValue() => Enumerable.Range(1, RowCount).Select(_ => new DemoDto()); diff --git a/benchmarks/MiniExcel.Benchmarks/BenchmarkSections/CreateExcelBenchmark.cs b/benchmarks/MiniExcel.Benchmarks/BenchmarkSections/CreateExcelBenchmark.cs index 7dcd50d0..9c424472 100644 --- a/benchmarks/MiniExcel.Benchmarks/BenchmarkSections/CreateExcelBenchmark.cs +++ b/benchmarks/MiniExcel.Benchmarks/BenchmarkSections/CreateExcelBenchmark.cs @@ -126,8 +126,7 @@ public void OpenXmlSdkCreateByDomModeTest() sheets.Append(new Sheet { - Id = spreadsheetDocument.WorkbookPart. - GetIdOfPart(worksheetPart), + Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Sheet1" }); diff --git a/benchmarks/MiniExcel.Benchmarks/BenchmarkSections/TemplateExcelBenchmark.cs b/benchmarks/MiniExcel.Benchmarks/BenchmarkSections/TemplateExcelBenchmark.cs index d70775b0..71cdd025 100644 --- a/benchmarks/MiniExcel.Benchmarks/BenchmarkSections/TemplateExcelBenchmark.cs +++ b/benchmarks/MiniExcel.Benchmarks/BenchmarkSections/TemplateExcelBenchmark.cs @@ -37,7 +37,7 @@ public void Setup() [Benchmark(Description = "MiniExcel Fill Template")] public void MiniExcel_Template_Generate_Test() { - const string templatePath = "TestTemplateBasicIEmumerableFill.xlsx"; + const string templatePath = "data/TestTemplateBasicIEmumerableFill.xlsx"; using var path = AutoDeletingPath.Create(); var value = new @@ -56,7 +56,7 @@ public void MiniExcel_Template_Generate_Test() [Benchmark(Description = "ClosedXml.Report Generate Template")] public void ClosedXml_Report_Template_Generate_Test() { - const string templatePath = "TestTemplateBasicIEmumerableFill_ClosedXML_Report.xlsx"; + const string templatePath = "data/TestTemplateBasicIEmumerableFill_ClosedXML_Report.xlsx"; using var path = AutoDeletingPath.Create(); var value = new @@ -97,4 +97,4 @@ public void MiniExcel_Mapping_Template_Generate_Test() _mappingTemplater.FillTemplate(outputPath.FilePath, templatePath.FilePath, employees); } -} \ No newline at end of file +} diff --git a/benchmarks/MiniExcel.Benchmarks/MiniExcel.Benchmarks.csproj b/benchmarks/MiniExcel.Benchmarks/MiniExcel.Benchmarks.csproj index c4be3c22..246a2f8e 100644 --- a/benchmarks/MiniExcel.Benchmarks/MiniExcel.Benchmarks.csproj +++ b/benchmarks/MiniExcel.Benchmarks/MiniExcel.Benchmarks.csproj @@ -23,17 +23,12 @@ - - - - - - - - - - - + + + + + + diff --git a/benchmarks/MiniExcel.Benchmarks/Test1,000,000x10.xlsx b/benchmarks/MiniExcel.Benchmarks/Test1,000,000x10.xlsx deleted file mode 100644 index 732d9f34..00000000 Binary files a/benchmarks/MiniExcel.Benchmarks/Test1,000,000x10.xlsx and /dev/null differ diff --git a/benchmarks/MiniExcel.Benchmarks/Test1,000,000x10_SharingStrings.xlsx b/benchmarks/MiniExcel.Benchmarks/Test1,000,000x10_SharingStrings.xlsx deleted file mode 100644 index 1675417f..00000000 Binary files a/benchmarks/MiniExcel.Benchmarks/Test1,000,000x10_SharingStrings.xlsx and /dev/null differ diff --git a/benchmarks/MiniExcel.Benchmarks/Test10,000x10.xlsx b/benchmarks/MiniExcel.Benchmarks/data/Test10,000x10.xlsx similarity index 100% rename from benchmarks/MiniExcel.Benchmarks/Test10,000x10.xlsx rename to benchmarks/MiniExcel.Benchmarks/data/Test10,000x10.xlsx diff --git a/benchmarks/MiniExcel.Benchmarks/Test100,000x10.xlsx b/benchmarks/MiniExcel.Benchmarks/data/Test100,000x10.xlsx similarity index 100% rename from benchmarks/MiniExcel.Benchmarks/Test100,000x10.xlsx rename to benchmarks/MiniExcel.Benchmarks/data/Test100,000x10.xlsx diff --git a/benchmarks/MiniExcel.Benchmarks/Test100x10.xlsx b/benchmarks/MiniExcel.Benchmarks/data/Test100x10.xlsx similarity index 100% rename from benchmarks/MiniExcel.Benchmarks/Test100x10.xlsx rename to benchmarks/MiniExcel.Benchmarks/data/Test100x10.xlsx diff --git a/benchmarks/MiniExcel.Benchmarks/Test10x10.xlsx b/benchmarks/MiniExcel.Benchmarks/data/Test10x10.xlsx similarity index 100% rename from benchmarks/MiniExcel.Benchmarks/Test10x10.xlsx rename to benchmarks/MiniExcel.Benchmarks/data/Test10x10.xlsx diff --git a/benchmarks/MiniExcel.Benchmarks/TestTemplateBasicIEmumerableFill.xlsx b/benchmarks/MiniExcel.Benchmarks/data/TestTemplateBasicIEmumerableFill.xlsx similarity index 100% rename from benchmarks/MiniExcel.Benchmarks/TestTemplateBasicIEmumerableFill.xlsx rename to benchmarks/MiniExcel.Benchmarks/data/TestTemplateBasicIEmumerableFill.xlsx diff --git a/benchmarks/MiniExcel.Benchmarks/TestTemplateBasicIEmumerableFill_ClosedXML_Report.xlsx b/benchmarks/MiniExcel.Benchmarks/data/TestTemplateBasicIEmumerableFill_ClosedXML_Report.xlsx similarity index 100% rename from benchmarks/MiniExcel.Benchmarks/TestTemplateBasicIEmumerableFill_ClosedXML_Report.xlsx rename to benchmarks/MiniExcel.Benchmarks/data/TestTemplateBasicIEmumerableFill_ClosedXML_Report.xlsx diff --git a/tests/MiniExcel.OpenXml.Tests/Main/MiniExcelOpenXmlImporterAsyncTests.cs b/tests/MiniExcel.OpenXml.Tests/Main/MiniExcelOpenXmlImporterAsyncTests.cs index 9ca62da0..5b6f5f5a 100644 --- a/tests/MiniExcel.OpenXml.Tests/Main/MiniExcelOpenXmlImporterAsyncTests.cs +++ b/tests/MiniExcel.OpenXml.Tests/Main/MiniExcelOpenXmlImporterAsyncTests.cs @@ -220,23 +220,6 @@ public async Task TestDatetimeSpanFormat_ClosedXml() Assert.Equal(TimeSpan.FromHours(10), (TimeSpan)b); } - [Fact] - public async Task LargeFileQueryStrongTypeMapping_Test() - { - const string path = "../../../../../benchmarks/MiniExcel.Benchmarks/Test1,000,000x10.xlsx"; - await using (var stream = File.OpenRead(path)) - { - var rows = await _excelImporter.QueryAsync(stream).Take(2).ToListAsync(); - Assert.Equal("HelloWorld2", rows[0].HelloWorld1); - Assert.Equal("HelloWorld3", rows[1].HelloWorld1); - } - { - var rows = await _excelImporter.QueryAsync(path).Take(2).ToListAsync(); - Assert.Equal("HelloWorld2", rows[0].HelloWorld1); - Assert.Equal("HelloWorld3", rows[1].HelloWorld1); - } - } - [Theory] [InlineData("../../../../data/xlsx/ExcelDataReaderCollections/TestChess.xlsx")] [InlineData("../../../../data/xlsx/TestCenterEmptyRow/TestCenterEmptyRow.xlsx")] @@ -300,32 +283,6 @@ public async Task FixDimensionJustOneColumnParsingError_Test() Assert.Equal(2, rows.Count); } - [Fact] - public async Task QueryByLINQExtensionsVoidTaskLargeFileOOMTest() - { - const string path = "../../../../../benchmarks/MiniExcel.Benchmarks/Test1,000,000x10.xlsx"; - - { - var row = await _excelImporter.QueryAsync(path).FirstAsync(); - Assert.Equal("HelloWorld1", row.A); - } - - await using (var stream = File.OpenRead(path)) - { - var row = await _excelImporter.QueryAsync(stream).Cast>().FirstAsync(); - Assert.Equal("HelloWorld1", row["A"]); - } - - { - var count = await _excelImporter.QueryAsync(path) - .Cast>() - .Take(10) - .CountAsync(); - - Assert.Equal(10, count); - } - } - [Fact] public async Task QueryByStrongTypeParameterTest() { diff --git a/tests/MiniExcel.OpenXml.Tests/Main/MiniExcelOpenXmlImporterTests.cs b/tests/MiniExcel.OpenXml.Tests/Main/MiniExcelOpenXmlImporterTests.cs index 4ed65265..c0771f76 100644 --- a/tests/MiniExcel.OpenXml.Tests/Main/MiniExcelOpenXmlImporterTests.cs +++ b/tests/MiniExcel.OpenXml.Tests/Main/MiniExcelOpenXmlImporterTests.cs @@ -382,25 +382,6 @@ public void TestDatetimeSpanFormat_ClosedXml() Assert.Equal(TimeSpan.FromHours(10), (TimeSpan)b); } - [Fact] - public void LargeFileQueryStrongTypeMapping_Test() - { - const string path = "../../../../../benchmarks/MiniExcel.Benchmarks/Test1,000,000x10.xlsx"; - using (var stream = File.OpenRead(path)) - { - var rows = _excelImporter.Query(stream).Take(2).ToList(); - - Assert.Equal("HelloWorld2", rows[0].HelloWorld1); - Assert.Equal("HelloWorld3", rows[1].HelloWorld1); - } - { - var rows = _excelImporter.Query(path).Take(2).ToList(); - - Assert.Equal("HelloWorld2", rows[0].HelloWorld1); - Assert.Equal("HelloWorld3", rows[1].HelloWorld1); - } - } - [Theory] [InlineData("../../../../data/xlsx/ExcelDataReaderCollections/TestChess.xlsx")] [InlineData("../../../../data/xlsx/TestCenterEmptyRow/TestCenterEmptyRow.xlsx")] @@ -461,24 +442,6 @@ public void FixDimensionJustOneColumnParsingError_Test() Assert.Equal(2, rows.Count); } - [Fact] - public void QueryByLINQExtensionsAvoidLargeFileOOMTest() - { - const string path = "../../../../../benchmarks/MiniExcel.Benchmarks/Test1,000,000x10.xlsx"; - - var query1 = _excelImporter.Query(path).First(); - Assert.Equal("HelloWorld1", query1.A); - - using (var stream = File.OpenRead(path)) - { - var query2 = _excelImporter.Query(stream).First(); - Assert.Equal("HelloWorld1", query2.A); - } - - var query3 = _excelImporter.Query(path).Take(10); - Assert.Equal(10, query3.Count()); - } - [Fact] public void QueryByStrongTypeParameterTest() { @@ -535,33 +498,6 @@ public void TestStirctOpenXml() Assert.Equal(rows[1].C, "value3"); } - [Fact] - public void SharedStringCacheTest() - { - const string path = "../../../../../benchmarks/MiniExcel.Benchmarks/Test1,000,000x10_SharingStrings.xlsx"; - - var ts = Stopwatch.GetTimestamp(); - _ = _excelImporter.Query(path, configuration: new OpenXmlConfiguration { EnableSharedStringCache = true }).First(); - using var currentProcess = Process.GetCurrentProcess(); - var totalBytesOfMemoryUsed = currentProcess.WorkingSet64; - - _output.WriteLine("totalBytesOfMemoryUsed: " + totalBytesOfMemoryUsed); - _output.WriteLine("elapsedMilliseconds: " + Stopwatch.GetElapsedTime(ts).TotalMilliseconds); - } - - [Fact] - public void SharedStringNoCacheTest() - { - const string path = "../../../../../benchmarks/MiniExcel.Benchmarks/Test1,000,000x10_SharingStrings.xlsx"; - - var ts = Stopwatch.GetTimestamp(); - _ = _excelImporter.Query(path).First(); - using var currentProcess = Process.GetCurrentProcess(); - var totalBytesOfMemoryUsed = currentProcess.WorkingSet64; - _output.WriteLine("totalBytesOfMemoryUsed: " + totalBytesOfMemoryUsed); - _output.WriteLine("elapsedMilliseconds: " + Stopwatch.GetElapsedTime(ts).TotalMilliseconds); - } - [Fact] public void DateOnlySupportTest() { diff --git a/tests/MiniExcel.OpenXml.Tests/Main/Models.cs b/tests/MiniExcel.OpenXml.Tests/Main/Models.cs index f2456e08..61871460 100644 --- a/tests/MiniExcel.OpenXml.Tests/Main/Models.cs +++ b/tests/MiniExcel.OpenXml.Tests/Main/Models.cs @@ -24,11 +24,6 @@ internal class Demo public decimal Column2 { get; set; } } -internal class DemoPocoHelloWorld -{ - public string? HelloWorld1 { get; set; } -} - internal class ExcelUriDemo { public string? Name { get; set; } diff --git a/tests/MiniExcel.OpenXml.Tests/MiniExcel.OpenXml.Tests.csproj b/tests/MiniExcel.OpenXml.Tests/MiniExcel.OpenXml.Tests.csproj index 0622d62d..0480ed72 100644 --- a/tests/MiniExcel.OpenXml.Tests/MiniExcel.OpenXml.Tests.csproj +++ b/tests/MiniExcel.OpenXml.Tests/MiniExcel.OpenXml.Tests.csproj @@ -24,7 +24,6 @@ - runtime; build; native; contentfiles; analyzers; buildtransitive