Пример #1
0
 public function testEnsureIndexExists()
 {
     $values = array('2014-01-01' => 3, '2014-01-03' => 5);
     $column = new StatsColumnBuilder($values);
     $column->insureIsFilled(array('2014-01-01', '2014-01-02', '2014-01-03'), 0);
     $values['2014-01-02'] = 0;
     $this->assertEquals($values, $column->getValues());
 }
Пример #2
0
 /**
  * Append columns given a table
  *
  * @param array                  $table
  * @param string[]               $headers
  * @param string[]               $formats
  * @param AggregationInterface[] $aggregations
  * @param string[]               $columnNames
  * @param mixed[]                $defaultValues
  */
 public function appendTable($table, $headers, $formats, $aggregations, $columnNames = array(), $defaultValues = array(), $metaData = array())
 {
     $this->defaultValues = array_merge($this->defaultValues, $defaultValues);
     if (count($columnNames) === 0 && count($table) !== 0) {
         $columnNames = array_keys(reset($table));
     }
     if (count($columnNames) === 0 && count($headers) !== 0) {
         $columnNames = array_keys($headers);
     }
     foreach ($columnNames as $columnName) {
         $column = new StatsColumnBuilder($this->getAssocColumn($table, $columnName), $this->getParameter($headers, $columnName, $columnName), $this->getParameter($formats, $columnName), $this->getParameter($aggregations, $columnName), $this->getParameter($metaData, $columnName, array()));
         if (count($this->defaultValues)) {
             $column->insureIsFilled($this->indexes, $this->defaultValues[$columnName]);
         }
         $this->columns[$columnName] = $column;
     }
 }