ColumnsTest.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Calculation\Functions\LookupRef;
  3. use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
  4. use PhpOffice\PhpSpreadsheet\Calculation\LookupRef;
  5. use PHPUnit\Framework\TestCase;
  6. class ColumnsTest extends TestCase
  7. {
  8. /**
  9. * @dataProvider providerCOLUMNS
  10. *
  11. * @param mixed $expectedResult
  12. */
  13. public function testCOLUMNS($expectedResult, ...$args): void
  14. {
  15. $result = LookupRef::COLUMNS(/** @scrutinizer ignore-type */ ...$args);
  16. self::assertEquals($expectedResult, $result);
  17. }
  18. public function providerCOLUMNS(): array
  19. {
  20. return require 'tests/data/Calculation/LookupRef/COLUMNS.php';
  21. }
  22. /**
  23. * @dataProvider providerColumnsArray
  24. */
  25. public function testColumnsArray(int $expectedResult, string $argument): void
  26. {
  27. $calculation = Calculation::getInstance();
  28. $formula = "=COLUMNS({$argument})";
  29. $result = $calculation->_calculateFormulaValue($formula);
  30. self::assertEquals($expectedResult, $result);
  31. }
  32. public function providerColumnsArray(): array
  33. {
  34. return [
  35. [
  36. 3,
  37. '{1,2,3;4,5,6}',
  38. ],
  39. [
  40. 5,
  41. '{1,2,3,4,5}',
  42. ],
  43. [
  44. 1,
  45. '{1;2;3;4;5}',
  46. ],
  47. ];
  48. }
  49. }