GcdTest.php 985 B

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Calculation\Functions\MathTrig;
  3. class GcdTest extends AllSetupTeardown
  4. {
  5. /**
  6. * @dataProvider providerGCD
  7. *
  8. * @param mixed $expectedResult
  9. */
  10. public function testGCD($expectedResult, ...$args): void
  11. {
  12. $this->mightHaveException($expectedResult);
  13. $sheet = $this->getSheet();
  14. $row = 0;
  15. foreach ($args as $arg) {
  16. ++$row;
  17. if ($arg !== null) {
  18. $sheet->getCell("A$row")->setValue($arg);
  19. }
  20. }
  21. if ($row < 1) {
  22. $sheet->getCell('B1')->setValue('=GCD()');
  23. } else {
  24. $sheet->getCell('B1')->setValue("=GCD(A1:A$row)");
  25. }
  26. $result = $sheet->getCell('B1')->getCalculatedValue();
  27. self::assertEqualsWithDelta($expectedResult, $result, 1E-12);
  28. }
  29. public function providerGCD(): array
  30. {
  31. return require 'tests/data/Calculation/MathTrig/GCD.php';
  32. }
  33. }