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()); }
/** * 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; } }