TDistTest.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Calculation\Functions\Statistical;
  3. use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
  4. use PhpOffice\PhpSpreadsheet\Calculation\Statistical;
  5. use PHPUnit\Framework\TestCase;
  6. class TDistTest extends TestCase
  7. {
  8. /**
  9. * @dataProvider providerTDIST
  10. *
  11. * @param mixed $expectedResult
  12. * @param mixed $degrees
  13. * @param mixed $value
  14. * @param mixed $tails
  15. */
  16. public function testTDIST($expectedResult, $value, $degrees, $tails): void
  17. {
  18. $result = Statistical::TDIST($value, $degrees, $tails);
  19. self::assertEqualsWithDelta($expectedResult, $result, 1E-12);
  20. }
  21. public function providerTDIST(): array
  22. {
  23. return require 'tests/data/Calculation/Statistical/TDIST.php';
  24. }
  25. /**
  26. * @dataProvider providerTDistArray
  27. */
  28. public function testTDistArray(array $expectedResult, string $values, string $degrees, string $tails): void
  29. {
  30. $calculation = Calculation::getInstance();
  31. $formula = "=TDIST({$values}, {$degrees}, {$tails})";
  32. $result = $calculation->_calculateFormulaValue($formula);
  33. self::assertEqualsWithDelta($expectedResult, $result, 1.0e-14);
  34. }
  35. public function providerTDistArray(): array
  36. {
  37. return [
  38. 'row/column vectors' => [
  39. [
  40. [0.020259663176916964, 0.06966298427942164, 0.040258118978631297],
  41. [0.04051932635383393, 0.13932596855884327, 0.08051623795726259],
  42. ],
  43. '2',
  44. '{1.5, 3.5, 8}',
  45. '{1; 2}',
  46. ],
  47. ];
  48. }
  49. }