PhpSpreadsheet/tests/PhpSpreadsheetTests/Calculation/FinancialTest.php

518 lines
12 KiB
PHP
Raw Normal View History

2012-07-31 20:56:11 +00:00
<?php
namespace PhpOffice\PhpSpreadsheetTests\Calculation;
2012-07-31 20:56:11 +00:00
use PhpOffice\PhpSpreadsheet\Calculation\Financial;
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
use PHPUnit_Framework_TestCase;
class FinancialTest extends PHPUnit_Framework_TestCase
2012-07-31 20:56:11 +00:00
{
public function setUp()
{
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerACCRINT
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testACCRINT($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::ACCRINT(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerACCRINT()
{
return require 'data/Calculation/Financial/ACCRINT.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerACCRINTM
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testACCRINTM($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::ACCRINTM(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerACCRINTM()
{
return require 'data/Calculation/Financial/ACCRINTM.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerAMORDEGRC
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testAMORDEGRC($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::AMORDEGRC(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerAMORDEGRC()
{
return require 'data/Calculation/Financial/AMORDEGRC.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerAMORLINC
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testAMORLINC($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::AMORLINC(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerAMORLINC()
{
return require 'data/Calculation/Financial/AMORLINC.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerCOUPDAYBS
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testCOUPDAYBS($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::COUPDAYBS(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerCOUPDAYBS()
{
return require 'data/Calculation/Financial/COUPDAYBS.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerCOUPDAYS
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testCOUPDAYS($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::COUPDAYS(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerCOUPDAYS()
{
return require 'data/Calculation/Financial/COUPDAYS.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerCOUPDAYSNC
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testCOUPDAYSNC($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::COUPDAYSNC(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerCOUPDAYSNC()
{
return require 'data/Calculation/Financial/COUPDAYSNC.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerCOUPNCD
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testCOUPNCD($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::COUPNCD(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerCOUPNCD()
{
return require 'data/Calculation/Financial/COUPNCD.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerCOUPNUM
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testCOUPNUM($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::COUPNUM(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerCOUPNUM()
{
return require 'data/Calculation/Financial/COUPNUM.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerCOUPPCD
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testCOUPPCD($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::COUPPCD(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerCOUPPCD()
{
return require 'data/Calculation/Financial/COUPPCD.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerCUMIPMT
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testCUMIPMT($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::CUMIPMT(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerCUMIPMT()
{
return require 'data/Calculation/Financial/CUMIPMT.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerCUMPRINC
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testCUMPRINC($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::CUMPRINC(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerCUMPRINC()
{
return require 'data/Calculation/Financial/CUMPRINC.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerDB
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testDB($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::DB(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerDB()
{
return require 'data/Calculation/Financial/DB.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerDDB
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testDDB($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::DDB(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerDDB()
{
return require 'data/Calculation/Financial/DDB.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerDISC
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testDISC($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::DISC(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerDISC()
{
return require 'data/Calculation/Financial/DISC.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerDOLLARDE
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testDOLLARDE($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::DOLLARDE(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerDOLLARDE()
{
return require 'data/Calculation/Financial/DOLLARDE.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerDOLLARFR
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testDOLLARFR($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::DOLLARFR(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerDOLLARFR()
{
return require 'data/Calculation/Financial/DOLLARFR.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerEFFECT
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testEFFECT($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::EFFECT(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerEFFECT()
{
return require 'data/Calculation/Financial/EFFECT.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerFV
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testFV($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::FV(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerFV()
{
return require 'data/Calculation/Financial/FV.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerFVSCHEDULE
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testFVSCHEDULE($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::FVSCHEDULE(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerFVSCHEDULE()
{
return require 'data/Calculation/Financial/FVSCHEDULE.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerINTRATE
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testINTRATE($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::INTRATE(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerINTRATE()
{
return require 'data/Calculation/Financial/INTRATE.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerIPMT
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testIPMT($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::IPMT(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerIPMT()
{
return require 'data/Calculation/Financial/IPMT.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerIRR
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testIRR($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::IRR(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerIRR()
{
return require 'data/Calculation/Financial/IRR.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerISPMT
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testISPMT($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::ISPMT(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerISPMT()
{
return require 'data/Calculation/Financial/ISPMT.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerMIRR
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testMIRR($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::MIRR(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerMIRR()
{
return require 'data/Calculation/Financial/MIRR.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerNOMINAL
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testNOMINAL($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::NOMINAL(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerNOMINAL()
{
return require 'data/Calculation/Financial/NOMINAL.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerNPER
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testNPER($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::NPER(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerNPER()
{
return require 'data/Calculation/Financial/NPER.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerNPV
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testNPV($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$result = Financial::NPV(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerNPV()
{
return require 'data/Calculation/Financial/NPV.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerPRICE
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testPRICE($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$this->markTestIncomplete('TODO: This test should be fixed');
$result = Financial::PRICE(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerPRICE()
{
return require 'data/Calculation/Financial/PRICE.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerRATE
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testRATE($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$this->markTestIncomplete('TODO: This test should be fixed');
$result = Financial::RATE(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerRATE()
{
return require 'data/Calculation/Financial/RATE.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
/**
* @dataProvider providerXIRR
*
* @param mixed $expectedResult
2012-07-31 20:56:11 +00:00
*/
public function testXIRR($expectedResult, ...$args)
2015-05-17 13:00:02 +00:00
{
$this->markTestIncomplete('TODO: This test should be fixed');
$result = Financial::XIRR(...$args);
self::assertEquals($expectedResult, $result, null, 1E-8);
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
public function providerXIRR()
{
return require 'data/Calculation/Financial/XIRR.php';
2015-05-17 13:00:02 +00:00
}
2012-07-31 20:56:11 +00:00
}