| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- namespace PhpOffice\PhpSpreadsheetTests\Calculation\Functions\Financial;
- use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
- use PhpOffice\PhpSpreadsheet\Calculation\Financial;
- use PHPUnit\Framework\TestCase;
- class DollarDeTest extends TestCase
- {
- /**
- * @dataProvider providerDOLLARDE
- *
- * @param mixed $expectedResult
- */
- public function testDOLLARDE($expectedResult, ...$args): void
- {
- if (count($args) === 0) {
- $result = Financial::DOLLARDE();
- } elseif (count($args) === 1) {
- $result = Financial::DOLLARDE($args[0]);
- } else {
- $result = Financial::DOLLARDE($args[0], $args[1]);
- }
- self::assertEqualsWithDelta($expectedResult, $result, 1E-8);
- }
- public function providerDOLLARDE(): array
- {
- return require 'tests/data/Calculation/Financial/DOLLARDE.php';
- }
- /**
- * @dataProvider providerDollarDeArray
- */
- public function testDollarDeArray(array $expectedResult, string $argument1, string $argument2): void
- {
- $calculation = Calculation::getInstance();
- $formula = "=DollarDe({$argument1},{$argument2})";
- $result = $calculation->_calculateFormulaValue($formula);
- self::assertEqualsWithDelta($expectedResult, $result, 1.0e-12);
- }
- public function providerDollarDeArray(): array
- {
- return [
- 'first argument row vector' => [
- [[1.125, 2.0625, -12.625, 3.5]],
- '{1.02, 2.01, -12.1, 1.4}',
- '16',
- ],
- 'first argument column vector' => [
- [[1.0625], [2.03125], [-12.3125], [2.25]],
- '{1.02; 2.01; -12.1; 1.4}',
- '32',
- ],
- 'first argument matrix' => [
- [[1.05, 2.25], [-12.5, 2.0]],
- '{1.02, 2.1; -12.2, 1.4}',
- '4',
- ],
- 'second argument row vector' => [
- [[4.25, 3.625, 6.125, 4.5625]],
- '3.5',
- '{4, 8, 16, 32}',
- ],
- 'second argument column vector' => [
- [[5.5], [4.25], [3.625], [6.125]],
- '3.5',
- '{2; 4; 8; 16}',
- ],
- 'second argument matrix' => [
- [[-4.875, -3.9375], [-9.25, -7.6875]],
- '-3.75',
- '{4, 8; 12, 16}',
- ],
- ];
- }
- }
|