NPerTest.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Calculation\Functions\Financial;
  3. use PhpOffice\PhpSpreadsheet\Calculation\Financial;
  4. use PHPUnit\Framework\TestCase;
  5. class NPerTest extends TestCase
  6. {
  7. /**
  8. * @dataProvider providerNPER
  9. *
  10. * @param mixed $expectedResult
  11. */
  12. public function testNPER($expectedResult, array $args): void
  13. {
  14. if (count($args) === 0) {
  15. $result = Financial::NPER();
  16. } elseif (count($args) === 1) {
  17. $result = Financial::NPER($args[0]);
  18. } elseif (count($args) === 2) {
  19. $result = Financial::NPER($args[0], $args[1]);
  20. } elseif (count($args) === 3) {
  21. $result = Financial::NPER($args[0], $args[1], $args[2]);
  22. } elseif (count($args) === 4) {
  23. $result = Financial::NPER($args[0], $args[1], $args[2], $args[3]);
  24. } else {
  25. $result = Financial::NPER($args[0], $args[1], $args[2], $args[3], $args[4]);
  26. }
  27. self::assertEqualsWithDelta($expectedResult, $result, 1E-8);
  28. }
  29. public function providerNPER(): array
  30. {
  31. return require 'tests/data/Calculation/Financial/NPER.php';
  32. }
  33. }