a0da3e32ec
SUMIF() condition can have double quote, such as '=SUMIF(A2:A4,">""",B2:B4)'.
This formula purpose is to compare the character double quote (").
In our previous patch (commit f1a1f525
) we wrongly assumed that
PHPExcel_Calculation_MathTrig::SUMIF() expected the condition to escaped ('>""'),
but this is actually not the case in real use of PHPExcel, so the unit tests were
modified accordingly to use non-escaped condition ('>"').
559 lines
15 KiB
PHP
559 lines
15 KiB
PHP
<?php
|
|
|
|
|
|
require_once 'testDataFileIterator.php';
|
|
|
|
class MathTrigTest extends PHPUnit_Framework_TestCase
|
|
{
|
|
|
|
public function setUp()
|
|
{
|
|
if (!defined('PHPEXCEL_ROOT'))
|
|
{
|
|
define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
|
|
}
|
|
require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerATAN2
|
|
*/
|
|
public function testATAN2()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','ATAN2'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerATAN2()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/ATAN2.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerCEILING
|
|
*/
|
|
public function testCEILING()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','CEILING'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerCEILING()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/CEILING.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerCOMBIN
|
|
*/
|
|
public function testCOMBIN()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','COMBIN'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerCOMBIN()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/COMBIN.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerEVEN
|
|
*/
|
|
public function testEVEN()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','EVEN'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerEVEN()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/EVEN.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerODD
|
|
*/
|
|
public function testODD()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','ODD'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerODD()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/ODD.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerFACT
|
|
*/
|
|
public function testFACT()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','FACT'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerFACT()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/FACT.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerFACTDOUBLE
|
|
*/
|
|
public function testFACTDOUBLE()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','FACTDOUBLE'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerFACTDOUBLE()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/FACTDOUBLE.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerFLOOR
|
|
*/
|
|
public function testFLOOR()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','FLOOR'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerFLOOR()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/FLOOR.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerGCD
|
|
*/
|
|
public function testGCD()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','GCD'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerGCD()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/GCD.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerLCM
|
|
*/
|
|
public function testLCM()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','LCM'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerLCM()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/LCM.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerINT
|
|
*/
|
|
public function testINT()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','INT'),$args);
|
|
$this->assertEquals($expectedResult, $result);
|
|
}
|
|
|
|
public function providerINT()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/INT.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerSIGN
|
|
*/
|
|
public function testSIGN()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','SIGN'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerSIGN()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/SIGN.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerPOWER
|
|
*/
|
|
public function testPOWER()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','POWER'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerPOWER()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/POWER.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerLOG
|
|
*/
|
|
public function testLOG()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','LOG_BASE'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerLOG()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/LOG.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerMOD
|
|
*/
|
|
public function testMOD()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','MOD'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerMOD()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/MOD.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerMDETERM
|
|
*/
|
|
public function testMDETERM()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','MDETERM'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerMDETERM()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/MDETERM.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerMINVERSE
|
|
*/
|
|
public function testMINVERSE()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','MINVERSE'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerMINVERSE()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/MINVERSE.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerMMULT
|
|
*/
|
|
public function testMMULT()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','MMULT'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerMMULT()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/MMULT.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerMULTINOMIAL
|
|
*/
|
|
public function testMULTINOMIAL()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','MULTINOMIAL'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerMULTINOMIAL()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/MULTINOMIAL.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerMROUND
|
|
*/
|
|
public function testMROUND()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','MROUND'),$args);
|
|
PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_ARRAY);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerMROUND()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/MROUND.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerPRODUCT
|
|
*/
|
|
public function testPRODUCT()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','PRODUCT'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerPRODUCT()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/PRODUCT.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerQUOTIENT
|
|
*/
|
|
public function testQUOTIENT()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','QUOTIENT'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerQUOTIENT()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/QUOTIENT.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerROUNDUP
|
|
*/
|
|
public function testROUNDUP()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','ROUNDUP'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerROUNDUP()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/ROUNDUP.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerROUNDDOWN
|
|
*/
|
|
public function testROUNDDOWN()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','ROUNDDOWN'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerROUNDDOWN()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/ROUNDDOWN.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerSERIESSUM
|
|
*/
|
|
public function testSERIESSUM()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','SERIESSUM'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerSERIESSUM()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/SERIESSUM.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerSUMSQ
|
|
*/
|
|
public function testSUMSQ()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','SUMSQ'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerSUMSQ()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/SUMSQ.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerTRUNC
|
|
*/
|
|
public function testTRUNC()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','TRUNC'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerTRUNC()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/TRUNC.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerROMAN
|
|
*/
|
|
public function testROMAN()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','ROMAN'),$args);
|
|
$this->assertEquals($expectedResult, $result);
|
|
}
|
|
|
|
public function providerROMAN()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/ROMAN.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerSQRTPI
|
|
*/
|
|
public function testSQRTPI()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','SQRTPI'),$args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerSQRTPI()
|
|
{
|
|
return new testDataFileIterator('rawTestData/Calculation/MathTrig/SQRTPI.data');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerSUMIF
|
|
*/
|
|
public function testSUMIF()
|
|
{
|
|
$args = func_get_args();
|
|
$expectedResult = array_pop($args);
|
|
$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig', 'SUMIF'), $args);
|
|
$this->assertEquals($expectedResult, $result, NULL, 1E-12);
|
|
}
|
|
|
|
public function providerSUMIF()
|
|
{
|
|
return array(
|
|
array(
|
|
array(
|
|
array(1),
|
|
array(5),
|
|
array(10),
|
|
),
|
|
'>=5',
|
|
15,
|
|
),
|
|
array(
|
|
array(
|
|
array('text'),
|
|
array(2),
|
|
),
|
|
'=text',
|
|
array(
|
|
array(10),
|
|
array(100),
|
|
),
|
|
10,
|
|
),
|
|
array(
|
|
array(
|
|
array('"text with quotes"'),
|
|
array(2),
|
|
),
|
|
'="text with quotes"',
|
|
array(
|
|
array(10),
|
|
array(100),
|
|
),
|
|
10,
|
|
),
|
|
array(
|
|
array(
|
|
array('"text with quotes"'),
|
|
array(''),
|
|
),
|
|
'>"', // Compare to the single characater " (double quote)
|
|
array(
|
|
array(10),
|
|
array(100),
|
|
),
|
|
10
|
|
),
|
|
array(
|
|
array(
|
|
array(''),
|
|
array('anything'),
|
|
),
|
|
'>"', // Compare to the single characater " (double quote)
|
|
array(
|
|
array(10),
|
|
array(100),
|
|
),
|
|
100
|
|
),
|
|
);
|
|
}
|
|
|
|
}
|