예제 #1
0
 /**
  * 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());
     }
 }
예제 #2
0
 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());
 }
예제 #3
0
 /**
  * @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);
 }