| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- namespace PhpOffice\PhpSpreadsheetTests\Calculation\Functions\Financial;
- class XirrTest extends AllSetupTeardown
- {
- /**
- * @dataProvider providerXIRR
- *
- * @param mixed $expectedResult
- * @param string $message
- * @param mixed $values
- * @param mixed $dates
- * @param mixed $guess
- */
- public function testXIRR($expectedResult, $message, $values = null, $dates = null, $guess = null): void
- {
- $this->mightHaveException($expectedResult);
- $sheet = $this->getSheet();
- $formula = '=XIRR(';
- if ($values !== null) {
- if (is_array($values)) {
- $row = 0;
- foreach ($values as $value) {
- ++$row;
- $sheet->getCell("A$row")->setValue($value);
- }
- $formula .= "A1:A$row";
- } else {
- $sheet->getCell('A1')->setValue($values);
- $formula .= 'A1';
- }
- if ($dates !== null) {
- if (is_array($dates)) {
- $row = 0;
- foreach ($dates as $date) {
- ++$row;
- $sheet->getCell("B$row")->setValue($date);
- }
- $formula .= ",B1:B$row";
- } else {
- $sheet->getCell('B1')->setValue($dates);
- $formula .= ',B1';
- }
- if ($guess !== null) {
- if ($guess !== 'C1') {
- $sheet->getCell('C1')->setValue($guess);
- }
- $formula .= ', C1';
- }
- }
- }
- $formula .= ')';
- $sheet->getCell('D1')->setValue($formula);
- $result = $sheet->getCell('D1')->getCalculatedValue();
- $this->adjustResult($result, $expectedResult);
- self::assertEqualsWithDelta($expectedResult, $result, 0.1E-7, $message);
- }
- public function providerXIRR(): array
- {
- return require 'tests/data/Calculation/Financial/XIRR.php';
- }
- }
|