diff --git a/tests/Performance/ReferenceHelper/AbstractInsertDelete.php b/tests/Performance/ReferenceHelper/AbstractInsertDelete.php new file mode 100644 index 000000000..4f6cdb3b5 --- /dev/null +++ b/tests/Performance/ReferenceHelper/AbstractInsertDelete.php @@ -0,0 +1,44 @@ +spreadsheet = new Spreadsheet(); + + $worksheet = $this->spreadsheet->getActiveSheet(); + + $this->buildWorksheet($worksheet, $rows, $columns); + } + + private function buildWorksheet(Worksheet $worksheet, int $rows, int $columns): void + { + $sampleData = [range(1, $columns)]; + + for ($row = 1; $row <= $rows; ++$row) { + $worksheet->fromArray($sampleData, null, "A{$row}", true); + } + } + + public function tearDown(): void + { + if (file_exists($this->fileName)) { + unlink($this->fileName); + } + } +} diff --git a/tests/Performance/ReferenceHelper/InsertColumnBenchmark.php b/tests/Performance/ReferenceHelper/InsertColumnBenchmark.php new file mode 100644 index 000000000..2e01070f6 --- /dev/null +++ b/tests/Performance/ReferenceHelper/InsertColumnBenchmark.php @@ -0,0 +1,47 @@ +spreadsheet->getActiveSheet()->insertNewColumnBefore('C', 2); + } + + /** + * @Groups({"slow"}) + * @revs(4) + * @Iterations(5) + * @OutputTimeUnit("seconds") + * @AfterMethods("tearDown") + */ + public function benchmarkInsertColumnsMid(): void + { + $this->spreadsheet->getActiveSheet()->insertNewColumnBefore('AB', 2); + } + + /** + * @Groups({"slow"}) + * @revs(4) + * @Iterations(7) + * @OutputTimeUnit("seconds") + * @AfterMethods("tearDown") + */ + public function benchmarkInsertColumnsLate(): void + { + $this->spreadsheet->getActiveSheet()->insertNewColumnBefore('BX', 2); + } +} diff --git a/tests/Performance/ReferenceHelper/InsertRowBenchmark.php b/tests/Performance/ReferenceHelper/InsertRowBenchmark.php new file mode 100644 index 000000000..d47885a8c --- /dev/null +++ b/tests/Performance/ReferenceHelper/InsertRowBenchmark.php @@ -0,0 +1,47 @@ +spreadsheet->getActiveSheet()->insertNewRowBefore(2, 4); + } + + /** + * @Groups({"slow"}) + * @revs(4) + * @Iterations(7) + * @OutputTimeUnit("seconds") + * @AfterMethods("tearDown") + */ + public function benchmarkInsertRowsMid(): void + { + $this->spreadsheet->getActiveSheet()->insertNewRowBefore(255, 4); + } + + /** + * @Groups({"slow"}) + * @revs(4) + * @Iterations(11) + * @OutputTimeUnit("seconds") + * @AfterMethods("tearDown") + */ + public function benchmarkInsertRowsLate(): void + { + $this->spreadsheet->getActiveSheet()->insertNewRowBefore(510, 4); + } +} diff --git a/tests/Performance/ReferenceHelper/RemoveColumnBenchmark.php b/tests/Performance/ReferenceHelper/RemoveColumnBenchmark.php new file mode 100644 index 000000000..ebbe14587 --- /dev/null +++ b/tests/Performance/ReferenceHelper/RemoveColumnBenchmark.php @@ -0,0 +1,47 @@ +spreadsheet->getActiveSheet()->removeColumn('C', 2); + } + + /** + * @Groups({"slow"}) + * @revs(4) + * @Iterations(5) + * @OutputTimeUnit("seconds") + * @AfterMethods("tearDown") + */ + public function benchmarkRemoveColumnsMid(): void + { + $this->spreadsheet->getActiveSheet()->removeColumn('AB', 2); + } + + /** + * @Groups({"slow"}) + * @revs(4) + * @Iterations(7) + * @OutputTimeUnit("seconds") + * @AfterMethods("tearDown") + */ + public function benchmarkRemoveColumnsLate(): void + { + $this->spreadsheet->getActiveSheet()->removeColumn('BX', 2); + } +} diff --git a/tests/Performance/ReferenceHelper/RemoveRowBenchmark.php b/tests/Performance/ReferenceHelper/RemoveRowBenchmark.php new file mode 100644 index 000000000..292f23c28 --- /dev/null +++ b/tests/Performance/ReferenceHelper/RemoveRowBenchmark.php @@ -0,0 +1,47 @@ +spreadsheet->getActiveSheet()->removeRow(2, 4); + } + + /** + * @Groups({"slow"}) + * @revs(4) + * @Iterations(7) + * @OutputTimeUnit("seconds") + * @AfterMethods("tearDown") + */ + public function benchmarkRemoveRowsMid(): void + { + $this->spreadsheet->getActiveSheet()->removeRow(255, 4); + } + + /** + * @Groups({"slow"}) + * @revs(4) + * @Iterations(11) + * @OutputTimeUnit("seconds") + * @AfterMethods("tearDown") + */ + public function benchmarkRemoveRowsLate(): void + { + $this->spreadsheet->getActiveSheet()->removeRow(510, 4); + } +}