Files
PhpSpreadsheet/tests/data/Calculation/Statistical/COUNTIFS.php
T
oleibman 057572ee90 Change Additional Statistical Tests to Use Spreadsheet Context (#3217)
* Change Additional Statistical Tests to Use Spreadsheet Context

With an earlier change, I made all but 18 Statistical tests run in spreadsheet context. This PR changes 12 of those 18. The remaining 6 usually return array results, so it is a tougher task to handle them. I will continue to think on it.

AVERAGEIF, AVERAGEIFS, and COUNTBLANK are changed to throw an Exception when a range is specified as a literal. They previously accepted array (enclosed in braces) literals, and bumbled along till they threw an error for non-array literals. Throwing an exception appears to be analogous to how Excel operates, rather than something more friendly like a VALUE error. There may be other functions which require similar treatment.

There also remains a TODO for COUNTIFS, and possibly other functions. It appears that PhpSpreadsheet counts booleans for both integer and string compares and probably shouldn't. Again, this is a problem for another day.

* Scrutinizer

Fix one problem.

* Scrutinizer Ignores Its Own Suggested Remedy

Try another approach.
2022-12-02 14:14:43 -08:00

48 lines
1.1 KiB
PHP

<?php
return [
'no argument' => [
'exception',
],
[
2,
['Y', 'Y', 'N'],
'=Y',
],
[
3,
['A', 'B', 'C', 'B', 'B'],
'=B',
],
[
3,
['C', 'B', 'A', 'B', 'B'],
'=B',
],
// TODO I believe that PhpSpreadsheet counts false and shouldn't.
// [
// 2,
// [1, 2, 3, 'B', null, '', false],
// '<=2',
// ],
// [
// 2,
// [1, 2, 3, 'B', null, '', false],
// '<=B',
// ],
[
4,
['Female', 'Female', 'Female', 'Male', 'Male', 'Male', 'Female', 'Female', 'Female', 'Male', 'Male', 'Male'],
'Female',
[0.63, 0.78, 0.39, 0.55, 0.71, 0.51, 0.78, 0.81, 0.49, 0.35, 0.69, 0.65],
'>60%',
],
[
2,
['Maths', 'English', 'Science', 'Maths', 'English', 'Science', 'Maths', 'English', 'Science', 'Maths', 'English', 'Science'],
'Science',
[0.63, 0.78, 0.39, 0.55, 0.71, 0.51, 0.78, 0.81, 0.49, 0.35, 0.69, 0.65],
'<50%',
],
];