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

44 lines
1.0 KiB
PHP

<?php
use PhpOffice\PhpSpreadsheet\Calculation\Information\ExcelError;
return [
[5, '24-Oct-1968'],
[5, '24-Oct-1968', 1],
[4, '24-Oct-1968', 2],
[3, '24-Oct-1968', 3],
[ExcelError::NAN(), '24-Oct-1968', 4],
[ExcelError::NAN(), '24-Oct-1968', 0],
[ExcelError::NAN(), '24-Oct-1968', -1],
[4, '2000-06-14'],
[3, '2000-06-14', 2],
[2, '2000-06-14', 3],
[4, '1996-07-24'],
[3, '1996-07-24', 2],
[2, '1996-07-24', 3],
[7, '1996-07-27'],
[6, '1996-07-27', 2],
[5, '1996-07-27', 3],
[1, '1977-7-31'],
[7, '1977-7-31', 2],
[6, '1977-7-31', 3],
[2, '1977-8-1'],
[1, '1977-8-1', 2],
[0, '1977-8-1', 3],
[7, '1900-2-5', 2],
[4, '1900-2-1'],
[6, 38093],
[6, 38093, 1],
[5, 38093, 2],
[4, 38093, 3],
[ExcelError::VALUE(), '3/7/1977', 'A'],
[ExcelError::NAN(), '3/7/1977', 0],
[ExcelError::VALUE(), 'Invalid', 1],
[ExcelError::NAN(), -1],
[1, false],
[2, true],
[1, '1900-01-01'],
[7, '1900-01-01', 2],
[7, '1900-02-05', 2],
];