/** * Terminate process * * @param ResultCollection $collection * @param ResultCollection $groupedResults * @return string */ public function terminate(ResultCollection $collection, ResultCollection $groupedResults) { // use pretty print for readability if according php version given if ($this->prettyPrint && version_compare(PHP_VERSION, '5.4.0') >= 0) { return json_encode($collection->asArray(), JSON_PRETTY_PRINT); } else { return json_encode($collection->asArray()); } }
public function testICanAccessExportResultCollectionToArray() { $rs1 = $this->getMockBuilder('\\Hal\\Component\\Result\\ResultSet')->disableOriginalConstructor()->getMock(); $rs1->expects($this->once())->method('asArray')->will($this->returnValue(array('volume' => 5))); $rs1->expects($this->once())->method('getName')->will($this->returnValue('f1.php')); $rs2 = $this->getMockBuilder('\\Hal\\Component\\Result\\ResultSet')->disableOriginalConstructor()->getMock(); $rs2->expects($this->once())->method('asArray')->will($this->returnValue(array('volume' => 10))); $rs2->expects($this->once())->method('getName')->will($this->returnValue('f2.php')); $collection = new ResultCollection(); $collection->push($rs1)->push($rs2); $expected = array(array('volume' => 5), array('volume' => 10)); $this->assertEquals($expected, $collection->asArray()); }
/** * @inheritdoc * @return \Hal\Component\Bounds\Result\ResultInterface */ public function calculate(ResultCollection $collection) { $array = $collection->asArray(); $arrayMerged = call_user_func_array('array_merge_recursive', $array); $min = $max = $average = $sum = array(); foreach ($arrayMerged as $key => $values) { $values = (array) $values; $max[$key] = max($values); $min[$key] = min($values); $sum[$key] = array_sum($values); $average[$key] = round($sum[$key] / count($values, COUNT_NORMAL), 2); } return new BoundsResult($min, $max, $average, $sum); }