/** * @group functional */ public function testAvgAggregation() { $agg = new Avg('avg'); $agg->setField('price'); $query = new Query(); $query->addAggregation($agg); $results = $this->_getIndexForTest()->search($query)->getAggregations(); $this->assertEquals((5 + 8 + 1 + 3) / 4.0, $results['avg']['value']); }
/** * @group unit */ public function testToArray() { $expected = array('global' => new \stdClass(), 'aggs' => array('avg_price' => array('avg' => array('field' => 'price')))); $agg = new GlobalAggregation('all_products'); $avg = new Avg('avg_price'); $avg->setField('price'); $agg->addAggregation($avg); $this->assertEquals($expected, $agg->toArray()); }
public function testToArray() { $expected = array("global" => new \stdClass(), "aggs" => array("avg_price" => array("avg" => array("field" => "price")))); $agg = new GlobalAggregation("all_products"); $avg = new Avg("avg_price"); $avg->setField("price"); $agg->addAggregation($avg); $this->assertEquals($expected, $agg->toArray()); }
public function testFilterNoSubAggregation() { $agg = new Avg("price"); $agg->setField("price"); $query = new Query(); $query->addAggregation($agg); $results = $this->_index->search($query)->getAggregation("price"); $results = $results['value']; $this->assertEquals((5 + 8 + 1 + 3) / 4.0, $results); }
/** * @group functional */ public function testFilterAggregation() { $agg = new Filters('by_color'); $agg->addFilter(new Term(array('color' => 'blue')), 'blue'); $agg->addFilter(new Term(array('color' => 'red')), 'red'); $avg = new Avg('avg_price'); $avg->setField('price'); $agg->addAggregation($avg); $query = new Query(); $query->addAggregation($agg); $results = $this->_getIndexForTest()->search($query)->getAggregation('by_color'); $resultsForBlue = $results['buckets']['blue']; $resultsForRed = $results['buckets']['red']; $this->assertEquals(2, $resultsForBlue['doc_count']); $this->assertEquals(1, $resultsForRed['doc_count']); $this->assertEquals((5 + 8) / 2, $resultsForBlue['avg_price']['value']); $this->assertEquals(1, $resultsForRed['avg_price']['value']); }