<?php // vim: fenc=utf-8:ft=php:ai:si:ts=4:sw=4:et: /** * Use bcmath to calculate expected expProviders['provideChanges'] for Test/Analyst/BasicDecimal/Data/provider.php. * * @filesource * @copyright Copyright (c) 2008-2011 David Smith * @license http://www.opensource.org/licenses/mit-license.php MIT License * @package Hashmark-Test * @subpackage Hashmark_Analyst_BasicDecimal * @version $Id$ */ $sampleProviders = Hashmark_TestCase_Analyst_BasicDecimal::provideFullSamplesData(); $expValues = array(); foreach ($expProviders['provideChanges'] as $sampleProviderName => $changes) { $distinctChanges = array_unique($changes); $expValues[$sampleProviderName] = array('ALL' => array(), 'DIS' => array()); $expValues[$sampleProviderName]['ALL']['AVG'] = Hashmark_BcMath::avg($changes); $expValues[$sampleProviderName]['DIS']['AVG'] = Hashmark_BcMath::avg($distinctChanges); $expValues[$sampleProviderName]['ALL']['SUM'] = Hashmark_BcMath::sum($changes); $expValues[$sampleProviderName]['DIS']['SUM'] = Hashmark_BcMath::sum($distinctChanges); $expValues[$sampleProviderName]['ALL']['MAX'] = Hashmark_BcMath::max($changes); $expValues[$sampleProviderName]['DIS']['MAX'] = $expValues[$sampleProviderName]['ALL']['MAX']; $expValues[$sampleProviderName]['ALL']['MIN'] = Hashmark_BcMath::min($changes); $expValues[$sampleProviderName]['DIS']['MIN'] = $expValues[$sampleProviderName]['ALL']['MIN']; }
* @copyright Copyright (c) 2008-2011 David Smith * @license http://www.opensource.org/licenses/mit-license.php MIT License * @package Hashmark-Test * @subpackage Hashmark_Analyst_BasicDecimal * @version $Id$ */ $expValues = array(); $aggFunctions = Hashmark_TestCase_Analyst_BasicDecimal::getAggFunctions(); foreach ($expProviders['provideChangesAggAtInterval'] as $sampleProviderName => $providerAggs) { $expValues[$sampleProviderName] = array('ALL' => array_fill_keys($aggFunctions, array()), 'DIS_INNER' => array_fill_keys($aggFunctions, array()), 'DIS_OUTER' => array_fill_keys($aggFunctions, array()), 'DIS_BOTH' => array_fill_keys($aggFunctions, array())); foreach ($aggFunctions as $aggFuncInner) { $distinctOuterValues = array_unique($providerAggs['ALL'][$aggFuncInner]); $distinctBothValues = array_unique($providerAggs['DIS'][$aggFuncInner]); $expValues[$sampleProviderName]['ALL']['AVG'][$aggFuncInner] = Hashmark_BcMath::avg($providerAggs['ALL'][$aggFuncInner]); $expValues[$sampleProviderName]['DIS_INNER']['AVG'][$aggFuncInner] = Hashmark_BcMath::avg($providerAggs['DIS'][$aggFuncInner]); $expValues[$sampleProviderName]['DIS_OUTER']['AVG'][$aggFuncInner] = Hashmark_BcMath::avg($distinctOuterValues); $expValues[$sampleProviderName]['DIS_BOTH']['AVG'][$aggFuncInner] = Hashmark_BcMath::avg($distinctBothValues); $expValues[$sampleProviderName]['ALL']['SUM'][$aggFuncInner] = Hashmark_BcMath::sum($providerAggs['ALL'][$aggFuncInner]); $expValues[$sampleProviderName]['DIS_INNER']['SUM'][$aggFuncInner] = Hashmark_BcMath::sum($providerAggs['DIS'][$aggFuncInner]); $expValues[$sampleProviderName]['DIS_OUTER']['SUM'][$aggFuncInner] = Hashmark_BcMath::sum($distinctOuterValues); $expValues[$sampleProviderName]['DIS_BOTH']['SUM'][$aggFuncInner] = Hashmark_BcMath::sum($distinctBothValues); $expValues[$sampleProviderName]['ALL']['MAX'][$aggFuncInner] = Hashmark_BcMath::max($providerAggs['ALL'][$aggFuncInner]); $expValues[$sampleProviderName]['DIS_INNER']['MAX'][$aggFuncInner] = Hashmark_BcMath::max($providerAggs['DIS'][$aggFuncInner]); $expValues[$sampleProviderName]['DIS_OUTER']['MAX'][$aggFuncInner] = Hashmark_BcMath::max($distinctOuterValues); $expValues[$sampleProviderName]['DIS_BOTH']['MAX'][$aggFuncInner] = Hashmark_BcMath::max($distinctBothValues); $expValues[$sampleProviderName]['ALL']['MIN'][$aggFuncInner] = Hashmark_BcMath::min($providerAggs['ALL'][$aggFuncInner]); $expValues[$sampleProviderName]['DIS_INNER']['MIN'][$aggFuncInner] = Hashmark_BcMath::min($providerAggs['DIS'][$aggFuncInner]); $expValues[$sampleProviderName]['DIS_OUTER']['MIN'][$aggFuncInner] = Hashmark_BcMath::min($distinctOuterValues); $expValues[$sampleProviderName]['DIS_BOTH']['MIN'][$aggFuncInner] = Hashmark_BcMath::min($distinctBothValues); } }
/** * @test * @group BcMath * @group calculatesSum * @group sum * @group assertDecimalEquals */ public function calculatesSum() { $data = array(); $data[] = array('-0.0803', array('1000000000000000.3701', '-1000000000000000.4504')); $data[] = array('0.0803', array('-1000000000000000.3701', '1000000000000000.4504')); $data[] = array('2000000000000000.8205', array('1000000000000000.3701', '1000000000000000.4504')); $data[] = array('2000000000000000.9008', array('1000000000000000.4504', '1000000000000000.4504')); $data[] = array('2000000000000000.7402', array('1000000000000000.3701', '1000000000000000.3701')); $data[] = array('-2000000000000000.8205', array('-1000000000000000.3701', '-1000000000000000.4504')); $data[] = array('-2000000000000000.9008', array('-1000000000000000.4504', '-1000000000000000.4504')); $data[] = array('-2000000000000000.7402', array('-1000000000000000.3701', '-1000000000000000.3701')); foreach ($data as $d) { list($expectedSum, $values) = $d; $this->assertDecimalEquals($expectedSum, Hashmark_BcMath::sum($values)); } }
if ('z' == $format) { $groupName += 1; } if (!isset($groupValues[$recurFunc][$groupName])) { $groupValues[$recurFunc][$groupName] = array(); } // Ex. $groupValues['DAYOFMONTH']['22'] = $value; $groupValues[$recurFunc][$groupName][] = $value; } } $expValues[$sampleProviderName] = array('ALL' => array_fill_keys($recurFunctions, array()), 'DIS' => array_fill_keys($recurFunctions, array())); foreach ($groupValues as $recurFunc => $recurValues) { foreach ($recurValues as $groupName => $values) { if (!isset($expValues[$sampleProviderName]['ALL'][$recurFunc][$groupName])) { $expValues[$sampleProviderName]['ALL'][$recurFunc][$groupName] = array(); } if (!isset($expValues[$sampleProviderName]['DIS'][$recurFunc][$groupName])) { $expValues[$sampleProviderName]['DIS'][$recurFunc][$groupName] = array(); } $distinctValues = array_unique($values); $expValues[$sampleProviderName]['ALL'][$recurFunc][$groupName]['AVG'] = Hashmark_BcMath::avg($values); $expValues[$sampleProviderName]['DIS'][$recurFunc][$groupName]['AVG'] = Hashmark_BcMath::avg($distinctValues); $expValues[$sampleProviderName]['ALL'][$recurFunc][$groupName]['SUM'] = Hashmark_BcMath::sum($values); $expValues[$sampleProviderName]['DIS'][$recurFunc][$groupName]['SUM'] = Hashmark_BcMath::sum($distinctValues); $expValues[$sampleProviderName]['ALL'][$recurFunc][$groupName]['MAX'] = Hashmark_BcMath::max($values); $expValues[$sampleProviderName]['DIS'][$recurFunc][$groupName]['MAX'] = $expValues[$sampleProviderName]['ALL'][$recurFunc][$groupName]['MAX']; $expValues[$sampleProviderName]['ALL'][$recurFunc][$groupName]['MIN'] = Hashmark_BcMath::min($values); $expValues[$sampleProviderName]['DIS'][$recurFunc][$groupName]['MIN'] = $expValues[$sampleProviderName]['ALL'][$recurFunc][$groupName]['MIN']; } } }
<?php // vim: fenc=utf-8:ft=php:ai:si:ts=4:sw=4:et: /** * Use bcmath to calculate expected values for Test/Analyst/BasicDecimal/Data/provider.php. * * @filesource * @copyright Copyright (c) 2008-2011 David Smith * @license http://www.opensource.org/licenses/mit-license.php MIT License * @package Hashmark-Test * @subpackage Hashmark_Analyst_BasicDecimal * @version $Id$ */ $values = array(); $provideValuesSamples = Hashmark_TestCase_Analyst_BasicDecimal::provideFullSamplesData('provideValuesSamples'); foreach ($provideValuesSamples['samples'] as $sample) { list($end, $value, , $isInRange) = $sample; if ($isInRange) { $values[] = $value; } } $distinctValues = array_unique($values); $expValues = array('ALL' => array(), 'DIS' => array()); $expValues['ALL']['AVG'] = Hashmark_BcMath::avg($values); $expValues['DIS']['AVG'] = Hashmark_BcMath::avg($distinctValues); $expValues['ALL']['SUM'] = Hashmark_BcMath::sum($values); $expValues['DIS']['SUM'] = Hashmark_BcMath::sum($distinctValues); $expValues['ALL']['MAX'] = Hashmark_BcMath::max($values); $expValues['DIS']['MAX'] = $expValues['ALL']['MAX']; $expValues['ALL']['MIN'] = Hashmark_BcMath::min($values); $expValues['DIS']['MIN'] = $expValues['ALL']['MIN'];