ConfidenceTest.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Calculation\Functions\Statistical;
  3. use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
  4. use PhpOffice\PhpSpreadsheet\Calculation\Functions;
  5. use PhpOffice\PhpSpreadsheet\Calculation\Statistical;
  6. use PHPUnit\Framework\TestCase;
  7. class ConfidenceTest extends TestCase
  8. {
  9. protected function setUp(): void
  10. {
  11. Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
  12. }
  13. /**
  14. * @dataProvider providerCONFIDENCE
  15. *
  16. * @param mixed $expectedResult
  17. */
  18. public function testCONFIDENCE($expectedResult, ...$args): void
  19. {
  20. $result = Statistical::CONFIDENCE(...$args);
  21. self::assertEqualsWithDelta($expectedResult, $result, 1E-12);
  22. }
  23. public function providerCONFIDENCE(): array
  24. {
  25. return require 'tests/data/Calculation/Statistical/CONFIDENCE.php';
  26. }
  27. /**
  28. * @dataProvider providerConfidenceArray
  29. */
  30. public function testConfidenceArray(array $expectedResult, string $alpha, string $stdDev, string $size): void
  31. {
  32. $calculation = Calculation::getInstance();
  33. $formula = "=CONFIDENCE({$alpha}, {$stdDev}, {$size})";
  34. $result = $calculation->_calculateFormulaValue($formula);
  35. self::assertEqualsWithDelta($expectedResult, $result, 1.0e-14);
  36. }
  37. public function providerConfidenceArray(): array
  38. {
  39. return [
  40. 'row/column vectors' => [
  41. [
  42. [0.33261691811208144, 0.6929519127335031, 1.3859038254670062],
  43. [0.2351956783344234, 0.48999099653004874, 0.9799819930600975],
  44. ],
  45. '0.05',
  46. '{1.2, 2.5, 5}',
  47. '{50; 100}',
  48. ],
  49. ];
  50. }
  51. }