Files
MarkBaker a91dd60a98 Refactor unit tests to ensure that assertions are in the actual test, and not in an abstract class; and that setup/teardown are in the test and not an abstract. This means that assertions and setup/teardown are always in the file when reviewing PRs.
Also enforce more rigorous Excel Function implementation by testing the underlying implementation, call via the Calc Engine, and execution from in a worksheet.
Separate out unhappy path (exception) checks into a separate test, so that a single test isn't made overcomplex checking for every potentiality.

Scrutinizer may dislike variadics, for variable number of arguments of mixed type; but tough. It's 100% valid PHP, accepted by phpstan, and makes life a lot easier.

Initial work here covers all the database and datetime unit tests for Excel function implementations.
2023-03-10 04:15:12 +01:00

43 lines
1.6 KiB
PHP

<?php
use PhpOffice\PhpSpreadsheet\Calculation\Information\ExcelError;
return [
[ExcelError::VALUE(), 'ABC', '2007-1-10', false],
[ExcelError::VALUE(), '2007-1-1', 'DEF', true],
[ExcelError::VALUE(), '2007-1-1', '2007-1-10', 'XYZ'],
[ExcelError::VALUE(), '2007-1-10', '2007-1-1', 1],
[9, '2007-1-1', '2007-1-10', false],
[9, '2007-1-1', '2007-1-10', true],
[360, '2007-1-1', '2007-12-31'],
[360, '2007-1-1', '2007-12-31', false],
[359, '2007-1-1', '2007-12-31', true],
[540, '2007-1-1', '2008-7-1', false],
[540, '2007-1-1', '2008-7-1', true],
[30, '2007-1-1', '2007-1-31', false],
[29, '2007-1-1', '2007-1-31', true],
[30, '2007-1-1', '2007-2-1', false],
[30, '2007-1-1', '2007-2-1', true],
[57, '2007-1-1', '2007-2-28', false],
[57, '2007-1-1', '2007-2-28', true],
[1, '2007-1-31', '2007-2-1', false],
[1, '2007-1-31', '2007-2-1', true],
[31, '2007-1-31', '2007-3-1', false],
[31, '2007-1-31', '2007-3-1', true],
[60, '2007-1-31', '2007-3-31', false],
[60, '2007-1-31', '2007-3-31', true],
[240, '2008-1-1', '2008-9-1', false],
[240, '2008-1-1', '2008-9-1', true],
[420, '2007-2-1', '2008-4-1', false],
[420, '2007-2-1', '2008-4-1', true],
[17109, '1960-12-19', '2008-6-28', false],
[17109, '1960-12-19', '2008-6-28', true],
[9201, '1982-12-7', '2008-6-28', false],
[9201, '1982-12-7', '2008-6-28', true],
[33, '2000-2-28', '2000-3-31', false],
[32, '2000-2-28', '2000-3-31', true],
[30, '2000-2-29', '2000-3-31', false],
[31, '2000-2-29', '2000-3-31', true],
[30, '2000-2-29', '2000-3-31'],
];