Ejemplo n.º 1
0
 public function aggregate(StatsTableBuilder $statsTable)
 {
     $column = $statsTable->getColumn($this->columnName)->getValues();
     $sum = array_sum($column);
     $count = count($column);
     return $count ? $sum / $count : 0;
 }
Ejemplo n.º 2
0
 public function testBuilder()
 {
     $table = array('2014-01-01' => array('hits' => 10, 'subscribers' => 5), '2014-01-02' => array('hits' => 30, 'subscribers' => 9), '2014-01-03' => array('hits' => 0, 'subscribers' => 0));
     $statsTable = new StatsTableBuilder($table);
     $ratioBuilder = new RatioColumnBuilder('subscribers', 'hits', 'N/A');
     $statsTable->addDynamicColumn('ratio', $ratioBuilder, 'Ratio');
     $ratioData = array('2014-01-01' => 0.5, '2014-01-02' => 0.3, '2014-01-03' => 'N/A');
     $ratioColumn = new StatsColumnBuilder($ratioData, 'Ratio');
     $this->assertEquals($ratioColumn, $statsTable->getColumn('ratio'));
 }
Ejemplo n.º 3
0
 public function test()
 {
     $table = array('2014-01-01' => array('hits' => 10, 'subscribers' => 5), '2014-01-02' => array('hits' => 30, 'subscribers' => 9), '2014-01-03' => array('hits' => 0, 'subscribers' => 0));
     $statsTable = new StatsTableBuilder($table);
     $sumBuilder = new SumColumnBuilder(array('subscribers', 'hits'));
     $statsTable->addDynamicColumn('sum', $sumBuilder, 'Sum');
     $sumData = array('2014-01-01' => 15, '2014-01-02' => 39, '2014-01-03' => 0);
     $sumColumn = new StatsColumnBuilder($sumData, 'Sum');
     $this->assertEquals($sumColumn, $statsTable->getColumn('sum'));
 }
Ejemplo n.º 4
0
 public function buildColumnValues(StatsTableBuilder $statsTable)
 {
     $column = array();
     $columnsValues = array_map(function ($columnName) use($statsTable) {
         return $statsTable->getColumn($columnName)->getValues();
     }, $this->columns);
     foreach ($statsTable->getIndexes() as $index) {
         $lineValues = array_map(function ($array) use($index) {
             return $array[$index];
         }, $columnsValues);
         $column[$index] = array_sum($lineValues);
     }
     return $column;
 }
Ejemplo n.º 5
0
 public function aggregate(StatsTableBuilder $statsTable)
 {
     $column = $statsTable->getColumn($this->columnName)->getValues();
     return count($column);
 }
Ejemplo n.º 6
0
 /**
  * @expectedException \InvalidArgumentException
  */
 public function testInvalidColumn()
 {
     $table = array(array('hits' => 0));
     $statsTable = new StatsTableBuilder($table);
     $statsTable->getColumn('invalidColumn');
 }