Updates to 3rd party libraries
Add Dockerfile and specific docker-php.ini
This commit is contained in:
120
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/CalculationTest.php
vendored
Normal file
120
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/CalculationTest.php
vendored
Normal file
@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheetTests\Calculation;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class CalculationTest extends TestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
$calculation = Calculation::getInstance();
|
||||
$calculation->setLocale('en_us');
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerBinaryComparisonOperation
|
||||
*
|
||||
* @param mixed $formula
|
||||
* @param mixed $expectedResultExcel
|
||||
* @param mixed $expectedResultOpenOffice
|
||||
*/
|
||||
public function testBinaryComparisonOperation($formula, $expectedResultExcel, $expectedResultOpenOffice)
|
||||
{
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
|
||||
$resultExcel = Calculation::getInstance()->_calculateFormulaValue($formula);
|
||||
self::assertEquals($expectedResultExcel, $resultExcel, 'should be Excel compatible');
|
||||
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_OPENOFFICE);
|
||||
$resultOpenOffice = Calculation::getInstance()->_calculateFormulaValue($formula);
|
||||
self::assertEquals($expectedResultOpenOffice, $resultOpenOffice, 'should be OpenOffice compatible');
|
||||
}
|
||||
|
||||
public function providerBinaryComparisonOperation()
|
||||
{
|
||||
return require 'data/CalculationBinaryComparisonOperation.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerGetFunctions
|
||||
*
|
||||
* @param string $category
|
||||
* @param array|string $functionCall
|
||||
* @param string $argumentCount
|
||||
*/
|
||||
public function testGetFunctions($category, $functionCall, $argumentCount)
|
||||
{
|
||||
self::assertInternalType('callable', $functionCall);
|
||||
}
|
||||
|
||||
public function providerGetFunctions()
|
||||
{
|
||||
return Calculation::getInstance()->getFunctions();
|
||||
}
|
||||
|
||||
public function testIsImplemented()
|
||||
{
|
||||
$calculation = Calculation::getInstance();
|
||||
self::assertFalse($calculation->isImplemented('non-existing-function'));
|
||||
self::assertFalse($calculation->isImplemented('AREAS'));
|
||||
self::assertTrue($calculation->isImplemented('coUNt'));
|
||||
self::assertTrue($calculation->isImplemented('abs'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCanLoadAllSupportedLocales
|
||||
*
|
||||
* @param string $locale
|
||||
*/
|
||||
public function testCanLoadAllSupportedLocales($locale)
|
||||
{
|
||||
$calculation = Calculation::getInstance();
|
||||
self::assertTrue($calculation->setLocale($locale));
|
||||
}
|
||||
|
||||
public function providerCanLoadAllSupportedLocales()
|
||||
{
|
||||
return [
|
||||
['bg'],
|
||||
['cs'],
|
||||
['da'],
|
||||
['de'],
|
||||
['en_us'],
|
||||
['es'],
|
||||
['fi'],
|
||||
['fr'],
|
||||
['hu'],
|
||||
['it'],
|
||||
['nl'],
|
||||
['no'],
|
||||
['pl'],
|
||||
['pt'],
|
||||
['pt_br'],
|
||||
['ru'],
|
||||
['sv'],
|
||||
['tr'],
|
||||
];
|
||||
}
|
||||
|
||||
public function testDoesHandleXlfnFunctions()
|
||||
{
|
||||
$calculation = Calculation::getInstance();
|
||||
|
||||
$tree = $calculation->parseFormula('=_xlfn.ISFORMULA(A1)');
|
||||
self::assertCount(3, $tree);
|
||||
$function = $tree[2];
|
||||
self::assertEquals('Function', $function['type']);
|
||||
|
||||
$tree = $calculation->parseFormula('=_xlfn.STDEV.S(A1:B2)');
|
||||
self::assertCount(5, $tree);
|
||||
$function = $tree[4];
|
||||
self::assertEquals('Function', $function['type']);
|
||||
}
|
||||
}
|
487
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/DateTimeTest.php
vendored
Normal file
487
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/DateTimeTest.php
vendored
Normal file
@ -0,0 +1,487 @@
|
||||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheetTests\Calculation;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\DateTime;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
use PhpOffice\PhpSpreadsheet\Shared\Date;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* Class DateTimeTest.
|
||||
*/
|
||||
class DateTimeTest extends TestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerDATE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testDATE($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::DATE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerDATE()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/DATE.php';
|
||||
}
|
||||
|
||||
public function testDATEtoPHP()
|
||||
{
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_PHP_NUMERIC);
|
||||
$result = DateTime::DATE(2012, 1, 31);
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
self::assertEquals(1327968000, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function testDATEtoPHPObject()
|
||||
{
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_PHP_OBJECT);
|
||||
$result = DateTime::DATE(2012, 1, 31);
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
// Must return an object...
|
||||
self::assertInternalType('object', $result);
|
||||
// ... of the correct type
|
||||
self::assertTrue(is_a($result, 'DateTime'));
|
||||
// ... with the correct value
|
||||
self::assertEquals($result->format('d-M-Y'), '31-Jan-2012');
|
||||
}
|
||||
|
||||
public function testDATEwith1904Calendar()
|
||||
{
|
||||
Date::setExcelCalendar(Date::CALENDAR_MAC_1904);
|
||||
$result = DateTime::DATE(1918, 11, 11);
|
||||
Date::setExcelCalendar(Date::CALENDAR_WINDOWS_1900);
|
||||
self::assertEquals($result, 5428);
|
||||
}
|
||||
|
||||
public function testDATEwith1904CalendarError()
|
||||
{
|
||||
Date::setExcelCalendar(Date::CALENDAR_MAC_1904);
|
||||
$result = DateTime::DATE(1901, 1, 31);
|
||||
Date::setExcelCalendar(Date::CALENDAR_WINDOWS_1900);
|
||||
self::assertEquals($result, '#NUM!');
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerDATEVALUE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testDATEVALUE($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::DATEVALUE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerDATEVALUE()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/DATEVALUE.php';
|
||||
}
|
||||
|
||||
public function testDATEVALUEtoPHP()
|
||||
{
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_PHP_NUMERIC);
|
||||
$result = DateTime::DATEVALUE('2012-1-31');
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
self::assertEquals(1327968000, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function testDATEVALUEtoPHPObject()
|
||||
{
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_PHP_OBJECT);
|
||||
$result = DateTime::DATEVALUE('2012-1-31');
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
// Must return an object...
|
||||
self::assertInternalType('object', $result);
|
||||
// ... of the correct type
|
||||
self::assertTrue(is_a($result, 'DateTime'));
|
||||
// ... with the correct value
|
||||
self::assertEquals($result->format('d-M-Y'), '31-Jan-2012');
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerYEAR
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testYEAR($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::YEAR(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerYEAR()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/YEAR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerMONTH
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testMONTH($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::MONTHOFYEAR(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerMONTH()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/MONTH.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerWEEKNUM
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testWEEKNUM($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::WEEKNUM(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerWEEKNUM()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/WEEKNUM.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerISOWEEKNUM
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param mixed $dateValue
|
||||
*/
|
||||
public function testISOWEEKNUM($expectedResult, $dateValue)
|
||||
{
|
||||
$result = DateTime::ISOWEEKNUM($dateValue);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerISOWEEKNUM()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/ISOWEEKNUM.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerWEEKDAY
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testWEEKDAY($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::WEEKDAY(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerWEEKDAY()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/WEEKDAY.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerDAY
|
||||
*
|
||||
* @param mixed $expectedResultExcel
|
||||
* @param mixed $expectedResultOpenOffice
|
||||
*/
|
||||
public function testDAY($expectedResultExcel, $expectedResultOpenOffice, ...$args)
|
||||
{
|
||||
$resultExcel = DateTime::DAYOFMONTH(...$args);
|
||||
self::assertEquals($expectedResultExcel, $resultExcel, null, 1E-8);
|
||||
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_OPENOFFICE);
|
||||
$resultOpenOffice = DateTime::DAYOFMONTH(...$args);
|
||||
self::assertEquals($expectedResultOpenOffice, $resultOpenOffice, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerDAY()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/DAY.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerTIME
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testTIME($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::TIME(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerTIME()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/TIME.php';
|
||||
}
|
||||
|
||||
public function testTIMEtoPHP()
|
||||
{
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_PHP_NUMERIC);
|
||||
$result = DateTime::TIME(7, 30, 20);
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
self::assertEquals(27020, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function testTIMEtoPHPObject()
|
||||
{
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_PHP_OBJECT);
|
||||
$result = DateTime::TIME(7, 30, 20);
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
// Must return an object...
|
||||
self::assertInternalType('object', $result);
|
||||
// ... of the correct type
|
||||
self::assertTrue(is_a($result, 'DateTime'));
|
||||
// ... with the correct value
|
||||
self::assertEquals($result->format('H:i:s'), '07:30:20');
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerTIMEVALUE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testTIMEVALUE($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::TIMEVALUE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerTIMEVALUE()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/TIMEVALUE.php';
|
||||
}
|
||||
|
||||
public function testTIMEVALUEtoPHP()
|
||||
{
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_PHP_NUMERIC);
|
||||
$result = DateTime::TIMEVALUE('7:30:20');
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
self::assertEquals(23420, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function testTIMEVALUEtoPHPObject()
|
||||
{
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_PHP_OBJECT);
|
||||
$result = DateTime::TIMEVALUE('7:30:20');
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
// Must return an object...
|
||||
self::assertInternalType('object', $result);
|
||||
// ... of the correct type
|
||||
self::assertTrue(is_a($result, 'DateTime'));
|
||||
// ... with the correct value
|
||||
self::assertEquals($result->format('H:i:s'), '07:30:20');
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerHOUR
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testHOUR($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::HOUROFDAY(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerHOUR()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/HOUR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerMINUTE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testMINUTE($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::MINUTE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerMINUTE()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/MINUTE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSECOND
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSECOND($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::SECOND(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerSECOND()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/SECOND.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerNETWORKDAYS
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testNETWORKDAYS($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::NETWORKDAYS(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerNETWORKDAYS()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/NETWORKDAYS.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerWORKDAY
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testWORKDAY($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::WORKDAY(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerWORKDAY()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/WORKDAY.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerEDATE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testEDATE($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::EDATE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerEDATE()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/EDATE.php';
|
||||
}
|
||||
|
||||
public function testEDATEtoPHP()
|
||||
{
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_PHP_NUMERIC);
|
||||
$result = DateTime::EDATE('2012-1-26', -1);
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
self::assertEquals(1324857600, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function testEDATEtoPHPObject()
|
||||
{
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_PHP_OBJECT);
|
||||
$result = DateTime::EDATE('2012-1-26', -1);
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
// Must return an object...
|
||||
self::assertInternalType('object', $result);
|
||||
// ... of the correct type
|
||||
self::assertTrue(is_a($result, 'DateTime'));
|
||||
// ... with the correct value
|
||||
self::assertEquals($result->format('d-M-Y'), '26-Dec-2011');
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerEOMONTH
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testEOMONTH($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::EOMONTH(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerEOMONTH()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/EOMONTH.php';
|
||||
}
|
||||
|
||||
public function testEOMONTHtoPHP()
|
||||
{
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_PHP_NUMERIC);
|
||||
$result = DateTime::EOMONTH('2012-1-26', -1);
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
self::assertEquals(1325289600, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function testEOMONTHtoPHPObject()
|
||||
{
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_PHP_OBJECT);
|
||||
$result = DateTime::EOMONTH('2012-1-26', -1);
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
// Must return an object...
|
||||
self::assertInternalType('object', $result);
|
||||
// ... of the correct type
|
||||
self::assertTrue(is_a($result, 'DateTime'));
|
||||
// ... with the correct value
|
||||
self::assertEquals($result->format('d-M-Y'), '31-Dec-2011');
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerDATEDIF
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testDATEDIF($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::DATEDIF(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerDATEDIF()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/DATEDIF.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerDAYS360
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testDAYS360($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::DAYS360(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerDAYS360()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/DAYS360.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerYEARFRAC
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testYEARFRAC($expectedResult, ...$args)
|
||||
{
|
||||
$result = DateTime::YEARFRAC(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerYEARFRAC()
|
||||
{
|
||||
return require 'data/Calculation/DateTime/YEARFRAC.php';
|
||||
}
|
||||
}
|
1009
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/EngineeringTest.php
vendored
Normal file
1009
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/EngineeringTest.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
613
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/FinancialTest.php
vendored
Normal file
613
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/FinancialTest.php
vendored
Normal file
@ -0,0 +1,613 @@
|
||||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheetTests\Calculation;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Financial;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class FinancialTest extends TestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerACCRINT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testACCRINT($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::ACCRINT(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerACCRINT()
|
||||
{
|
||||
return require 'data/Calculation/Financial/ACCRINT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerACCRINTM
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testACCRINTM($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::ACCRINTM(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerACCRINTM()
|
||||
{
|
||||
return require 'data/Calculation/Financial/ACCRINTM.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerAMORDEGRC
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testAMORDEGRC($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::AMORDEGRC(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerAMORDEGRC()
|
||||
{
|
||||
return require 'data/Calculation/Financial/AMORDEGRC.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerAMORLINC
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testAMORLINC($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::AMORLINC(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerAMORLINC()
|
||||
{
|
||||
return require 'data/Calculation/Financial/AMORLINC.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCOUPDAYBS
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCOUPDAYBS($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::COUPDAYBS(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerCOUPDAYBS()
|
||||
{
|
||||
return require 'data/Calculation/Financial/COUPDAYBS.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCOUPDAYS
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCOUPDAYS($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::COUPDAYS(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerCOUPDAYS()
|
||||
{
|
||||
return require 'data/Calculation/Financial/COUPDAYS.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCOUPDAYSNC
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCOUPDAYSNC($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::COUPDAYSNC(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerCOUPDAYSNC()
|
||||
{
|
||||
return require 'data/Calculation/Financial/COUPDAYSNC.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCOUPNCD
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCOUPNCD($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::COUPNCD(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerCOUPNCD()
|
||||
{
|
||||
return require 'data/Calculation/Financial/COUPNCD.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCOUPNUM
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCOUPNUM($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::COUPNUM(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerCOUPNUM()
|
||||
{
|
||||
return require 'data/Calculation/Financial/COUPNUM.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCOUPPCD
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCOUPPCD($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::COUPPCD(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerCOUPPCD()
|
||||
{
|
||||
return require 'data/Calculation/Financial/COUPPCD.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCUMIPMT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCUMIPMT($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::CUMIPMT(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerCUMIPMT()
|
||||
{
|
||||
return require 'data/Calculation/Financial/CUMIPMT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCUMPRINC
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCUMPRINC($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::CUMPRINC(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerCUMPRINC()
|
||||
{
|
||||
return require 'data/Calculation/Financial/CUMPRINC.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerDB
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testDB($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::DB(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerDB()
|
||||
{
|
||||
return require 'data/Calculation/Financial/DB.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerDDB
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testDDB($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::DDB(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerDDB()
|
||||
{
|
||||
return require 'data/Calculation/Financial/DDB.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerDISC
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testDISC($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::DISC(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerDISC()
|
||||
{
|
||||
return require 'data/Calculation/Financial/DISC.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerDOLLARDE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testDOLLARDE($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::DOLLARDE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerDOLLARDE()
|
||||
{
|
||||
return require 'data/Calculation/Financial/DOLLARDE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerDOLLARFR
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testDOLLARFR($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::DOLLARFR(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerDOLLARFR()
|
||||
{
|
||||
return require 'data/Calculation/Financial/DOLLARFR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerEFFECT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testEFFECT($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::EFFECT(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerEFFECT()
|
||||
{
|
||||
return require 'data/Calculation/Financial/EFFECT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerFV
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testFV($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::FV(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerFV()
|
||||
{
|
||||
return require 'data/Calculation/Financial/FV.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerFVSCHEDULE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testFVSCHEDULE($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::FVSCHEDULE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerFVSCHEDULE()
|
||||
{
|
||||
return require 'data/Calculation/Financial/FVSCHEDULE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerINTRATE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testINTRATE($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::INTRATE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerINTRATE()
|
||||
{
|
||||
return require 'data/Calculation/Financial/INTRATE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIPMT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIPMT($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::IPMT(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIPMT()
|
||||
{
|
||||
return require 'data/Calculation/Financial/IPMT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIRR
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIRR($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::IRR(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIRR()
|
||||
{
|
||||
return require 'data/Calculation/Financial/IRR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerISPMT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testISPMT($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::ISPMT(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerISPMT()
|
||||
{
|
||||
return require 'data/Calculation/Financial/ISPMT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerMIRR
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testMIRR($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::MIRR(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerMIRR()
|
||||
{
|
||||
return require 'data/Calculation/Financial/MIRR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerNOMINAL
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testNOMINAL($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::NOMINAL(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerNOMINAL()
|
||||
{
|
||||
return require 'data/Calculation/Financial/NOMINAL.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerNPER
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testNPER($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::NPER(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerNPER()
|
||||
{
|
||||
return require 'data/Calculation/Financial/NPER.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerNPV
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testNPV($expectedResult, ...$args)
|
||||
{
|
||||
$result = Financial::NPV(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerNPV()
|
||||
{
|
||||
return require 'data/Calculation/Financial/NPV.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerPRICE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testPRICE($expectedResult, ...$args)
|
||||
{
|
||||
$this->markTestIncomplete('TODO: This test should be fixed');
|
||||
|
||||
$result = Financial::PRICE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerPRICE()
|
||||
{
|
||||
return require 'data/Calculation/Financial/PRICE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerPRICEDISC
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testPRICEDISC($expectedResult, array $args)
|
||||
{
|
||||
$result = Financial::PRICEDISC(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerPRICEDISC()
|
||||
{
|
||||
return require 'data/Calculation/Financial/PRICEDISC.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerPV
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testPV($expectedResult, array $args)
|
||||
{
|
||||
$result = Financial::PV(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerPV()
|
||||
{
|
||||
return require 'data/Calculation/Financial/PV.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerRATE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testRATE($expectedResult, ...$args)
|
||||
{
|
||||
$this->markTestIncomplete('TODO: This test should be fixed');
|
||||
|
||||
$result = Financial::RATE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerRATE()
|
||||
{
|
||||
return require 'data/Calculation/Financial/RATE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerXIRR
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testXIRR($expectedResult, ...$args)
|
||||
{
|
||||
$this->markTestIncomplete('TODO: This test should be fixed');
|
||||
|
||||
$result = Financial::XIRR(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerXIRR()
|
||||
{
|
||||
return require 'data/Calculation/Financial/XIRR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerPDURATION
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testPDURATION($expectedResult, array $args)
|
||||
{
|
||||
$result = Financial::PDURATION(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerPDURATION()
|
||||
{
|
||||
return require 'data/Calculation/Financial/PDURATION.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerRRI
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testRRI($expectedResult, array $args)
|
||||
{
|
||||
$result = Financial::RRI(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerRRI()
|
||||
{
|
||||
return require 'data/Calculation/Financial/RRI.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSLN
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSLN($expectedResult, array $args)
|
||||
{
|
||||
$result = Financial::SLN(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerSLN()
|
||||
{
|
||||
return require 'data/Calculation/Financial/SLN.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSYD
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSYD($expectedResult, array $args)
|
||||
{
|
||||
$result = Financial::SYD(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerSYD()
|
||||
{
|
||||
return require 'data/Calculation/Financial/SYD.php';
|
||||
}
|
||||
}
|
385
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/FunctionsTest.php
vendored
Normal file
385
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/FunctionsTest.php
vendored
Normal file
@ -0,0 +1,385 @@
|
||||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheetTests\Calculation;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\Cell;
|
||||
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class FunctionsTest extends TestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
}
|
||||
|
||||
public function testCompatibilityMode()
|
||||
{
|
||||
$result = Functions::setCompatibilityMode(Functions::COMPATIBILITY_GNUMERIC);
|
||||
// Test for a true response for success
|
||||
$this->assertTrue($result);
|
||||
// Test that mode has been changed
|
||||
$this->assertEquals(Functions::COMPATIBILITY_GNUMERIC, Functions::getCompatibilityMode());
|
||||
}
|
||||
|
||||
public function testInvalidCompatibilityMode()
|
||||
{
|
||||
$result = Functions::setCompatibilityMode('INVALIDMODE');
|
||||
// Test for a false response for failure
|
||||
$this->assertFalse($result);
|
||||
// Test that mode has not been changed
|
||||
$this->assertEquals(Functions::COMPATIBILITY_EXCEL, Functions::getCompatibilityMode());
|
||||
}
|
||||
|
||||
public function testReturnDateType()
|
||||
{
|
||||
$result = Functions::setReturnDateType(Functions::RETURNDATE_PHP_OBJECT);
|
||||
// Test for a true response for success
|
||||
$this->assertTrue($result);
|
||||
// Test that mode has been changed
|
||||
$this->assertEquals(Functions::RETURNDATE_PHP_OBJECT, Functions::getReturnDateType());
|
||||
}
|
||||
|
||||
public function testInvalidReturnDateType()
|
||||
{
|
||||
$result = Functions::setReturnDateType('INVALIDTYPE');
|
||||
// Test for a false response for failure
|
||||
$this->assertFalse($result);
|
||||
// Test that mode has not been changed
|
||||
$this->assertEquals(Functions::RETURNDATE_EXCEL, Functions::getReturnDateType());
|
||||
}
|
||||
|
||||
public function testDUMMY()
|
||||
{
|
||||
$result = Functions::DUMMY();
|
||||
self::assertEquals('#Not Yet Implemented', $result);
|
||||
}
|
||||
|
||||
public function testDIV0()
|
||||
{
|
||||
$result = Functions::DIV0();
|
||||
self::assertEquals('#DIV/0!', $result);
|
||||
}
|
||||
|
||||
public function testNA()
|
||||
{
|
||||
$result = Functions::NA();
|
||||
self::assertEquals('#N/A', $result);
|
||||
}
|
||||
|
||||
public function testNAN()
|
||||
{
|
||||
$result = Functions::NAN();
|
||||
self::assertEquals('#NUM!', $result);
|
||||
}
|
||||
|
||||
public function testNAME()
|
||||
{
|
||||
$result = Functions::NAME();
|
||||
self::assertEquals('#NAME?', $result);
|
||||
}
|
||||
|
||||
public function testREF()
|
||||
{
|
||||
$result = Functions::REF();
|
||||
self::assertEquals('#REF!', $result);
|
||||
}
|
||||
|
||||
public function testNULL()
|
||||
{
|
||||
$result = Functions::null();
|
||||
self::assertEquals('#NULL!', $result);
|
||||
}
|
||||
|
||||
public function testVALUE()
|
||||
{
|
||||
$result = Functions::VALUE();
|
||||
self::assertEquals('#VALUE!', $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIsBlank
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIsBlank($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::isBlank(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIsBlank()
|
||||
{
|
||||
return require 'data/Calculation/Functions/IS_BLANK.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIsErr
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIsErr($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::isErr(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIsErr()
|
||||
{
|
||||
return require 'data/Calculation/Functions/IS_ERR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIsError
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIsError($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::isError(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIsError()
|
||||
{
|
||||
return require 'data/Calculation/Functions/IS_ERROR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerErrorType
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testErrorType($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::errorType(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerErrorType()
|
||||
{
|
||||
return require 'data/Calculation/Functions/ERROR_TYPE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIsLogical
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIsLogical($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::isLogical(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIsLogical()
|
||||
{
|
||||
return require 'data/Calculation/Functions/IS_LOGICAL.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIsNa
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIsNa($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::isNa(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIsNa()
|
||||
{
|
||||
return require 'data/Calculation/Functions/IS_NA.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIsNumber
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIsNumber($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::isNumber(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIsNumber()
|
||||
{
|
||||
return require 'data/Calculation/Functions/IS_NUMBER.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIsText
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIsText($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::isText(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIsText()
|
||||
{
|
||||
return require 'data/Calculation/Functions/IS_TEXT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIsNonText
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIsNonText($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::isNonText(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIsNonText()
|
||||
{
|
||||
return require 'data/Calculation/Functions/IS_NONTEXT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIsEven
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIsEven($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::isEven(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIsEven()
|
||||
{
|
||||
return require 'data/Calculation/Functions/IS_EVEN.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIsOdd
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIsOdd($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::isOdd(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIsOdd()
|
||||
{
|
||||
return require 'data/Calculation/Functions/IS_ODD.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerTYPE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testTYPE($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::TYPE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerTYPE()
|
||||
{
|
||||
return require 'data/Calculation/Functions/TYPE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerN
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testN($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::n(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerN()
|
||||
{
|
||||
return require 'data/Calculation/Functions/N.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIsFormula
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param mixed $reference Reference to the cell we wish to test
|
||||
* @param mixed $value Value of the cell we wish to test
|
||||
*/
|
||||
public function testIsFormula($expectedResult, $reference, $value = 'undefined')
|
||||
{
|
||||
$ourCell = null;
|
||||
if ($value !== 'undefined') {
|
||||
$remoteCell = $this->getMockBuilder(Cell::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$remoteCell->method('isFormula')
|
||||
->will($this->returnValue(substr($value, 0, 1) == '='));
|
||||
|
||||
$remoteSheet = $this->getMockBuilder(Worksheet::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$remoteSheet->method('getCell')
|
||||
->will($this->returnValue($remoteCell));
|
||||
|
||||
$workbook = $this->getMockBuilder(Spreadsheet::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$workbook->method('getSheetByName')
|
||||
->will($this->returnValue($remoteSheet));
|
||||
|
||||
$sheet = $this->getMockBuilder(Worksheet::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$sheet->method('getCell')
|
||||
->will($this->returnValue($remoteCell));
|
||||
$sheet->method('getParent')
|
||||
->will($this->returnValue($workbook));
|
||||
|
||||
$ourCell = $this->getMockBuilder(Cell::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$ourCell->method('getWorksheet')
|
||||
->will($this->returnValue($sheet));
|
||||
}
|
||||
|
||||
$result = Functions::isFormula($reference, $ourCell);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerIsFormula()
|
||||
{
|
||||
return require 'data/Calculation/Functions/ISFORMULA.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIfCondition
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIfCondition($expectedResult, ...$args)
|
||||
{
|
||||
$result = Functions::ifCondition(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerIfCondition()
|
||||
{
|
||||
return require 'data/Calculation/Functions/IF_CONDITION.php';
|
||||
}
|
||||
}
|
123
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/LogicalTest.php
vendored
Normal file
123
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/LogicalTest.php
vendored
Normal file
@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheetTests\Calculation;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Logical;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class LogicalTest extends TestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
|
||||
}
|
||||
|
||||
public function testTRUE()
|
||||
{
|
||||
$result = Logical::TRUE();
|
||||
self::assertTrue($result);
|
||||
}
|
||||
|
||||
public function testFALSE()
|
||||
{
|
||||
$result = Logical::FALSE();
|
||||
self::assertFalse($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerAND
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testAND($expectedResult, ...$args)
|
||||
{
|
||||
$result = Logical::logicalAnd(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerAND()
|
||||
{
|
||||
return require 'data/Calculation/Logical/AND.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerOR
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testOR($expectedResult, ...$args)
|
||||
{
|
||||
$result = Logical::logicalOr(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerOR()
|
||||
{
|
||||
return require 'data/Calculation/Logical/OR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerXOR
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testXOR($expectedResult, ...$args)
|
||||
{
|
||||
$result = Logical::logicalXor(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerXOR()
|
||||
{
|
||||
return require 'data/Calculation/Logical/XOR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerNOT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testNOT($expectedResult, ...$args)
|
||||
{
|
||||
$result = Logical::NOT(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerNOT()
|
||||
{
|
||||
return require 'data/Calculation/Logical/NOT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIF
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIF($expectedResult, ...$args)
|
||||
{
|
||||
$result = Logical::statementIf(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerIF()
|
||||
{
|
||||
return require 'data/Calculation/Logical/IF.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerIFERROR
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testIFERROR($expectedResult, ...$args)
|
||||
{
|
||||
$result = Logical::IFERROR(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerIFERROR()
|
||||
{
|
||||
return require 'data/Calculation/Logical/IFERROR.php';
|
||||
}
|
||||
}
|
172
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/LookupRefTest.php
vendored
Normal file
172
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/LookupRefTest.php
vendored
Normal file
@ -0,0 +1,172 @@
|
||||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheetTests\Calculation;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\LookupRef;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\Cell;
|
||||
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* Class LookupRefTest.
|
||||
*/
|
||||
class LookupRefTest extends TestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerHLOOKUP
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testHLOOKUP($expectedResult, ...$args)
|
||||
{
|
||||
$result = LookupRef::HLOOKUP(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerHLOOKUP()
|
||||
{
|
||||
return require 'data/Calculation/LookupRef/HLOOKUP.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerVLOOKUP
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testVLOOKUP($expectedResult, ...$args)
|
||||
{
|
||||
$result = LookupRef::VLOOKUP(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerVLOOKUP()
|
||||
{
|
||||
return require 'data/Calculation/LookupRef/VLOOKUP.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerMATCH
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testMATCH($expectedResult, ...$args)
|
||||
{
|
||||
$result = LookupRef::MATCH(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerMATCH()
|
||||
{
|
||||
return require 'data/Calculation/LookupRef/MATCH.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerINDEX
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testINDEX($expectedResult, ...$args)
|
||||
{
|
||||
$result = LookupRef::INDEX(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerINDEX()
|
||||
{
|
||||
return require 'data/Calculation/LookupRef/INDEX.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCOLUMNS
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCOLUMNS($expectedResult, ...$args)
|
||||
{
|
||||
$result = LookupRef::COLUMNS(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerCOLUMNS()
|
||||
{
|
||||
return require 'data/Calculation/LookupRef/COLUMNS.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerROWS
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testROWS($expectedResult, ...$args)
|
||||
{
|
||||
$result = LookupRef::ROWS(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerROWS()
|
||||
{
|
||||
return require 'data/Calculation/LookupRef/ROWS.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerFormulaText
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param mixed $reference Reference to the cell we wish to test
|
||||
* @param mixed $value Value of the cell we wish to test
|
||||
*/
|
||||
public function testFormulaText($expectedResult, $reference, $value = 'undefined')
|
||||
{
|
||||
$ourCell = null;
|
||||
if ($value !== 'undefined') {
|
||||
$remoteCell = $this->getMockBuilder(Cell::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$remoteCell->method('isFormula')
|
||||
->will($this->returnValue(substr($value, 0, 1) == '='));
|
||||
$remoteCell->method('getValue')
|
||||
->will($this->returnValue($value));
|
||||
|
||||
$remoteSheet = $this->getMockBuilder(Worksheet::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$remoteSheet->method('getCell')
|
||||
->will($this->returnValue($remoteCell));
|
||||
|
||||
$workbook = $this->getMockBuilder(Spreadsheet::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$workbook->method('getSheetByName')
|
||||
->will($this->returnValue($remoteSheet));
|
||||
|
||||
$sheet = $this->getMockBuilder(Worksheet::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$sheet->method('getCell')
|
||||
->will($this->returnValue($remoteCell));
|
||||
$sheet->method('getParent')
|
||||
->will($this->returnValue($workbook));
|
||||
|
||||
$ourCell = $this->getMockBuilder(Cell::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$ourCell->method('getWorksheet')
|
||||
->will($this->returnValue($sheet));
|
||||
}
|
||||
|
||||
$result = LookupRef::FORMULATEXT($reference, $ourCell);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerFormulaText()
|
||||
{
|
||||
return require 'data/Calculation/LookupRef/FORMULATEXT.php';
|
||||
}
|
||||
}
|
881
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/MathTrigTest.php
vendored
Normal file
881
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/MathTrigTest.php
vendored
Normal file
@ -0,0 +1,881 @@
|
||||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheetTests\Calculation;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\MathTrig;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\Cell;
|
||||
use PhpOffice\PhpSpreadsheet\Worksheet\ColumnDimension;
|
||||
use PhpOffice\PhpSpreadsheet\Worksheet\RowDimension;
|
||||
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class MathTrigTest extends TestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerATAN2
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testATAN2($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::ATAN2(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerATAN2()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/ATAN2.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCEILING
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCEILING($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::CEILING(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerCEILING()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/CEILING.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCOMBIN
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCOMBIN($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::COMBIN(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerCOMBIN()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/COMBIN.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerEVEN
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testEVEN($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::EVEN(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerEVEN()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/EVEN.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerODD
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testODD($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::ODD(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerODD()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/ODD.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerFACT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testFACT($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::FACT(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerFACT()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/FACT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerFACTDOUBLE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testFACTDOUBLE($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::FACTDOUBLE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerFACTDOUBLE()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/FACTDOUBLE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerFLOOR
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testFLOOR($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::FLOOR(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerFLOOR()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/FLOOR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerGCD
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testGCD($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::GCD(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerGCD()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/GCD.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerLCM
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testLCM($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::LCM(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerLCM()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/LCM.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerINT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testINT($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::INT(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerINT()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/INT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSIGN
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSIGN($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::SIGN(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerSIGN()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SIGN.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerPOWER
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testPOWER($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::POWER(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerPOWER()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/POWER.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerLOG
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testLOG($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::logBase(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerLOG()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/LOG.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerMOD
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testMOD($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::MOD(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerMOD()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/MOD.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerMDETERM
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testMDETERM($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::MDETERM(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerMDETERM()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/MDETERM.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerMINVERSE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testMINVERSE($expectedResult, ...$args)
|
||||
{
|
||||
$this->markTestIncomplete('TODO: This test should be fixed');
|
||||
|
||||
$result = MathTrig::MINVERSE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerMINVERSE()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/MINVERSE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerMMULT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testMMULT($expectedResult, ...$args)
|
||||
{
|
||||
$this->markTestIncomplete('TODO: This test should be fixed');
|
||||
|
||||
$result = MathTrig::MMULT(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerMMULT()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/MMULT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerMULTINOMIAL
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testMULTINOMIAL($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::MULTINOMIAL(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerMULTINOMIAL()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/MULTINOMIAL.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerMROUND
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testMROUND($expectedResult, ...$args)
|
||||
{
|
||||
Calculation::setArrayReturnType(Calculation::RETURN_ARRAY_AS_VALUE);
|
||||
$result = MathTrig::MROUND(...$args);
|
||||
Calculation::setArrayReturnType(Calculation::RETURN_ARRAY_AS_ARRAY);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerMROUND()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/MROUND.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerPRODUCT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testPRODUCT($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::PRODUCT(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerPRODUCT()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/PRODUCT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerQUOTIENT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testQUOTIENT($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::QUOTIENT(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerQUOTIENT()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/QUOTIENT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerROUNDUP
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testROUNDUP($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::ROUNDUP(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerROUNDUP()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/ROUNDUP.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerROUNDDOWN
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testROUNDDOWN($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::ROUNDDOWN(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerROUNDDOWN()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/ROUNDDOWN.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSERIESSUM
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSERIESSUM($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::SERIESSUM(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerSERIESSUM()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SERIESSUM.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSUMSQ
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSUMSQ($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::SUMSQ(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerSUMSQ()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SUMSQ.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSUMPRODUCT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSUMPRODUCT($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::SUMPRODUCT(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerSUMPRODUCT()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SUMPRODUCT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSUMX2MY2
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSUMX2MY2($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::SUMX2MY2(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerSUMX2MY2()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SUMX2MY2.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSUMX2PY2
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSUMX2PY2($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::SUMX2PY2(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerSUMX2PY2()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SUMX2PY2.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSUMXMY2
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSUMXMY2($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::SUMXMY2(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerSUMXMY2()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SUMXMY2.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerTRUNC
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testTRUNC($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::TRUNC(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerTRUNC()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/TRUNC.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerROMAN
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testROMAN($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::ROMAN(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerROMAN()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/ROMAN.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSQRTPI
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSQRTPI($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::SQRTPI(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerSQRTPI()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SQRTPI.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSUMIF
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSUMIF($expectedResult, ...$args)
|
||||
{
|
||||
$result = MathTrig::SUMIF(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerSUMIF()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SUMIF.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSUBTOTAL
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSUBTOTAL($expectedResult, ...$args)
|
||||
{
|
||||
$cell = $this->getMockBuilder(Cell::class)
|
||||
->setMethods(['getValue'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$cell->method('getValue')
|
||||
->willReturn(null);
|
||||
$worksheet = $this->getMockBuilder(Worksheet::class)
|
||||
->setMethods(['cellExists', 'getCell'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$worksheet->method('cellExists')
|
||||
->willReturn(true);
|
||||
$worksheet->method('getCell')
|
||||
->willReturn($cell);
|
||||
$cellReference = $this->getMockBuilder(Cell::class)
|
||||
->setMethods(['getWorksheet'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$cellReference->method('getWorksheet')
|
||||
->willReturn($worksheet);
|
||||
|
||||
array_push($args, $cellReference);
|
||||
$result = MathTrig::SUBTOTAL(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerSUBTOTAL()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SUBTOTAL.php';
|
||||
}
|
||||
|
||||
protected function rowVisibility()
|
||||
{
|
||||
$data = [1 => false, 2 => true, 3 => false, 4 => true, 5 => false, 6 => false, 7 => false, 8 => true, 9 => false, 10 => true, 11 => true];
|
||||
foreach ($data as $k => $v) {
|
||||
yield $k => $v;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerHiddenSUBTOTAL
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testHiddenSUBTOTAL($expectedResult, ...$args)
|
||||
{
|
||||
$visibilityGenerator = $this->rowVisibility();
|
||||
|
||||
$rowDimension = $this->getMockBuilder(RowDimension::class)
|
||||
->setMethods(['getVisible'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$rowDimension->method('getVisible')
|
||||
->will($this->returnCallback(function () use ($visibilityGenerator) {
|
||||
$result = $visibilityGenerator->current();
|
||||
$visibilityGenerator->next();
|
||||
|
||||
return $result;
|
||||
}));
|
||||
$columnDimension = $this->getMockBuilder(ColumnDimension::class)
|
||||
->setMethods(['getVisible'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$columnDimension->method('getVisible')
|
||||
->willReturn(true);
|
||||
$cell = $this->getMockBuilder(Cell::class)
|
||||
->setMethods(['getValue'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$cell->method('getValue')
|
||||
->willReturn('');
|
||||
$worksheet = $this->getMockBuilder(Worksheet::class)
|
||||
->setMethods(['cellExists', 'getCell', 'getRowDimension', 'getColumnDimension'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$worksheet->method('cellExists')
|
||||
->willReturn(true);
|
||||
$worksheet->method('getCell')
|
||||
->willReturn($cell);
|
||||
$worksheet->method('getRowDimension')
|
||||
->willReturn($rowDimension);
|
||||
$worksheet->method('getColumnDimension')
|
||||
->willReturn($columnDimension);
|
||||
$cellReference = $this->getMockBuilder(Cell::class)
|
||||
->setMethods(['getWorksheet'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$cellReference->method('getWorksheet')
|
||||
->willReturn($worksheet);
|
||||
|
||||
array_push($args, $cellReference);
|
||||
$result = MathTrig::SUBTOTAL(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerHiddenSUBTOTAL()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SUBTOTALHIDDEN.php';
|
||||
}
|
||||
|
||||
protected function cellValues(array $cellValues)
|
||||
{
|
||||
foreach ($cellValues as $k => $v) {
|
||||
yield $k => $v;
|
||||
}
|
||||
}
|
||||
|
||||
protected function cellIsFormula(array $cellValues)
|
||||
{
|
||||
foreach ($cellValues as $cellValue) {
|
||||
yield $cellValue[0] === '=';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerNestedSUBTOTAL
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testNestedSUBTOTAL($expectedResult, ...$args)
|
||||
{
|
||||
$cellValueGenerator = $this->cellValues(Functions::flattenArray(array_slice($args, 1)));
|
||||
$cellIsFormulaGenerator = $this->cellIsFormula(Functions::flattenArray(array_slice($args, 1)));
|
||||
|
||||
$cell = $this->getMockBuilder(Cell::class)
|
||||
->setMethods(['getValue', 'isFormula'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$cell->method('getValue')
|
||||
->will($this->returnCallback(function () use ($cellValueGenerator) {
|
||||
$result = $cellValueGenerator->current();
|
||||
$cellValueGenerator->next();
|
||||
|
||||
return $result;
|
||||
}));
|
||||
$cell->method('isFormula')
|
||||
->will($this->returnCallback(function () use ($cellIsFormulaGenerator) {
|
||||
$result = $cellIsFormulaGenerator->current();
|
||||
$cellIsFormulaGenerator->next();
|
||||
|
||||
return $result;
|
||||
}));
|
||||
$worksheet = $this->getMockBuilder(Worksheet::class)
|
||||
->setMethods(['cellExists', 'getCell'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$worksheet->method('cellExists')
|
||||
->willReturn(true);
|
||||
$worksheet->method('getCell')
|
||||
->willReturn($cell);
|
||||
$cellReference = $this->getMockBuilder(Cell::class)
|
||||
->setMethods(['getWorksheet'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$cellReference->method('getWorksheet')
|
||||
->willReturn($worksheet);
|
||||
|
||||
array_push($args, $cellReference);
|
||||
|
||||
$result = MathTrig::SUBTOTAL(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerNestedSUBTOTAL()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SUBTOTALNESTED.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSEC
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param mixed $angle
|
||||
*/
|
||||
public function testSEC($expectedResult, $angle)
|
||||
{
|
||||
$result = MathTrig::SEC($angle);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerSEC()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SEC.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSECH
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param mixed $angle
|
||||
*/
|
||||
public function testSECH($expectedResult, $angle)
|
||||
{
|
||||
$result = MathTrig::SECH($angle);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerSECH()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/SECH.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCSC
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param mixed $angle
|
||||
*/
|
||||
public function testCSC($expectedResult, $angle)
|
||||
{
|
||||
$result = MathTrig::CSC($angle);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerCSC()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/CSC.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCSCH
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param mixed $angle
|
||||
*/
|
||||
public function testCSCH($expectedResult, $angle)
|
||||
{
|
||||
$result = MathTrig::CSCH($angle);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerCSCH()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/CSCH.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCOT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param mixed $angle
|
||||
*/
|
||||
public function testCOT($expectedResult, $angle)
|
||||
{
|
||||
$result = MathTrig::COT($angle);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerCOT()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/COT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCOTH
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param mixed $angle
|
||||
*/
|
||||
public function testCOTH($expectedResult, $angle)
|
||||
{
|
||||
$result = MathTrig::COTH($angle);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerCOTH()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/COTH.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerACOT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param mixed $number
|
||||
*/
|
||||
public function testACOT($expectedResult, $number)
|
||||
{
|
||||
$result = MathTrig::ACOT($number);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerACOT()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/ACOT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerACOTH
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param mixed $number
|
||||
*/
|
||||
public function testACOTH($expectedResult, $number)
|
||||
{
|
||||
$result = MathTrig::ACOTH($number);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-12);
|
||||
}
|
||||
|
||||
public function providerACOTH()
|
||||
{
|
||||
return require 'data/Calculation/MathTrig/ACOTH.php';
|
||||
}
|
||||
}
|
431
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php
vendored
Normal file
431
inc/vendor/phpoffice/phpspreadsheet/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php
vendored
Normal file
@ -0,0 +1,431 @@
|
||||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheetTests\Calculation;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\TextData;
|
||||
use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class TextDataTest extends TestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
|
||||
StringHelper::setDecimalSeparator('.');
|
||||
StringHelper::setThousandsSeparator(',');
|
||||
StringHelper::setCurrencyCode('$');
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
|
||||
StringHelper::setDecimalSeparator('.');
|
||||
StringHelper::setThousandsSeparator(',');
|
||||
StringHelper::setCurrencyCode('$');
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCHAR
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCHAR($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::CHARACTER(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerCHAR()
|
||||
{
|
||||
return require 'data/Calculation/TextData/CHAR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCODE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCODE($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::ASCIICODE(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerCODE()
|
||||
{
|
||||
return require 'data/Calculation/TextData/CODE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCONCATENATE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCONCATENATE($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::CONCATENATE(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerCONCATENATE()
|
||||
{
|
||||
return require 'data/Calculation/TextData/CONCATENATE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerLEFT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testLEFT($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::LEFT(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerLEFT()
|
||||
{
|
||||
return require 'data/Calculation/TextData/LEFT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerMID
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testMID($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::MID(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerMID()
|
||||
{
|
||||
return require 'data/Calculation/TextData/MID.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerRIGHT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testRIGHT($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::RIGHT(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerRIGHT()
|
||||
{
|
||||
return require 'data/Calculation/TextData/RIGHT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerLOWER
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testLOWER($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::LOWERCASE(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerLOWER()
|
||||
{
|
||||
return require 'data/Calculation/TextData/LOWER.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerUPPER
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testUPPER($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::UPPERCASE(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerUPPER()
|
||||
{
|
||||
return require 'data/Calculation/TextData/UPPER.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerPROPER
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testPROPER($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::PROPERCASE(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerPROPER()
|
||||
{
|
||||
return require 'data/Calculation/TextData/PROPER.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerLEN
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testLEN($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::STRINGLENGTH(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerLEN()
|
||||
{
|
||||
return require 'data/Calculation/TextData/LEN.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSEARCH
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSEARCH($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::SEARCHINSENSITIVE(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerSEARCH()
|
||||
{
|
||||
return require 'data/Calculation/TextData/SEARCH.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerFIND
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testFIND($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::SEARCHSENSITIVE(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerFIND()
|
||||
{
|
||||
return require 'data/Calculation/TextData/FIND.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerREPLACE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testREPLACE($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::REPLACE(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerREPLACE()
|
||||
{
|
||||
return require 'data/Calculation/TextData/REPLACE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerSUBSTITUTE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testSUBSTITUTE($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::SUBSTITUTE(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerSUBSTITUTE()
|
||||
{
|
||||
return require 'data/Calculation/TextData/SUBSTITUTE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerTRIM
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testTRIM($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::TRIMSPACES(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerTRIM()
|
||||
{
|
||||
return require 'data/Calculation/TextData/TRIM.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerCLEAN
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testCLEAN($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::TRIMNONPRINTABLE(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerCLEAN()
|
||||
{
|
||||
return require 'data/Calculation/TextData/CLEAN.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerDOLLAR
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testDOLLAR($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::DOLLAR(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerDOLLAR()
|
||||
{
|
||||
return require 'data/Calculation/TextData/DOLLAR.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerFIXED
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testFIXED($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::FIXEDFORMAT(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerFIXED()
|
||||
{
|
||||
return require 'data/Calculation/TextData/FIXED.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testT($expectedResult, ...$args)
|
||||
{
|
||||
$result = TextData::RETURNSTRING(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerT()
|
||||
{
|
||||
return require 'data/Calculation/TextData/T.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerTEXT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testTEXT($expectedResult, ...$args)
|
||||
{
|
||||
// Enforce decimal and thousands separator values to UK/US, and currency code to USD
|
||||
StringHelper::setDecimalSeparator('.');
|
||||
StringHelper::setThousandsSeparator(',');
|
||||
StringHelper::setCurrencyCode('$');
|
||||
|
||||
$result = TextData::TEXTFORMAT(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerTEXT()
|
||||
{
|
||||
return require 'data/Calculation/TextData/TEXT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerVALUE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
*/
|
||||
public function testVALUE($expectedResult, ...$args)
|
||||
{
|
||||
StringHelper::setDecimalSeparator('.');
|
||||
StringHelper::setThousandsSeparator(' ');
|
||||
StringHelper::setCurrencyCode('$');
|
||||
|
||||
$result = TextData::VALUE(...$args);
|
||||
self::assertEquals($expectedResult, $result, null, 1E-8);
|
||||
}
|
||||
|
||||
public function providerVALUE()
|
||||
{
|
||||
return require 'data/Calculation/TextData/VALUE.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerEXACT
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param array $args
|
||||
*/
|
||||
public function testEXACT($expectedResult, ...$args)
|
||||
{
|
||||
StringHelper::setDecimalSeparator('.');
|
||||
StringHelper::setThousandsSeparator(' ');
|
||||
StringHelper::setCurrencyCode('$');
|
||||
|
||||
$result = TextData::EXACT(...$args);
|
||||
self::assertSame($expectedResult, $result, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function providerEXACT()
|
||||
{
|
||||
return require 'data/Calculation/TextData/EXACT.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerTEXTJOIN
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param array $args
|
||||
*/
|
||||
public function testTEXTJOIN($expectedResult, array $args)
|
||||
{
|
||||
$result = TextData::TEXTJOIN(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerTEXTJOIN()
|
||||
{
|
||||
return require 'data/Calculation/TextData/TEXTJOIN.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerNUMBERVALUE
|
||||
*
|
||||
* @param mixed $expectedResult
|
||||
* @param array $args
|
||||
*/
|
||||
public function testNUMBERVALUE($expectedResult, array $args)
|
||||
{
|
||||
$result = TextData::NUMBERVALUE(...$args);
|
||||
self::assertEquals($expectedResult, $result);
|
||||
}
|
||||
|
||||
public function providerNUMBERVALUE()
|
||||
{
|
||||
return require 'data/Calculation/TextData/NUMBERVALUE.php';
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user