private function initialize_replysets($replysets, AfsQuery $query, AfsHelperConfiguration $config) { foreach ($replysets as $replyset) { if (property_exists($replyset, 'meta') && property_exists($replyset->meta, 'producer')) { $producer = $replyset->meta->producer; if ($producer == AfsProducer::SEARCH) { if ('Promote' == $replyset->meta->uri) { $this->promote = new AfsPromoteReplysetHelper($replyset, $this->config); } else { $replyset_helper = new AfsReplysetHelper($replyset, $query, $config); $feed = $replyset_helper->get_meta()->get_feed(); if ($config->is_array_format()) { $this->replysets[$feed] = $replyset_helper->format(); } else { $this->replysets[$feed] = $replyset_helper; } } } elseif ($producer == AfsProducer::SPELLCHECK) { $this->spellcheck_mgr->add_spellcheck($replyset); } elseif ($producer == AfsProducer::CONCEPT) { $this->concepts->add_concept($replyset); } } } if ($config->is_array_format()) { if (!is_null($this->promote)) { $this->promote = $this->promote->format(); } } }
public function testClusteringAsArray() { $input = $this->get_cluster_input_data(); $config = new AfsHelperConfiguration(); $query = new AfsQuery(); $helper = new AfsReplysetHelper($input->replySet[0], $query, $config); $result = $helper->format(); $this->assertEquals('marketing', $result['meta']['cluster']); $this->assertEquals('Marketing', $result['meta']['cluster_label']); $clusters = $result['clusters']; $this->assertFalse(empty($clusters)); $this->assertEquals(2, count($clusters)); # First cluster from list of clusters $cluster = each($clusters); $this->assertEquals('"OPERATION_8"', $cluster['key']); $cluster = $cluster['value']; $this->assertEquals('"OPERATION_8"', $cluster['id']); $this->assertEquals('OPERATION_8', $cluster['label']); $replies = $cluster['replies']; $this->assertFalse(empty($replies)); $this->assertEquals(1, count($replies)); $this->assertEquals('166_en', $replies[0]['uri']); # Second cluster from list of clusters $cluster = each($clusters); $this->assertEquals('"OPERATION_9"', $cluster['key']); $cluster = $cluster['value']; $this->assertEquals('"OPERATION_9"', $cluster['id']); $this->assertEquals('5% sur les produtis textiles de plus de 100 euros', $cluster['label']); $replies = $cluster['replies']; $this->assertFalse(empty($replies)); $this->assertEquals(1, count($replies)); $this->assertEquals('112_fr', $replies[0]['uri']); # Overspill $replies = $result['replies']; $this->assertFalse(empty($replies)); $this->assertEquals(1, count($replies)); $reply = $replies[0]; $this->assertEquals('165_en', $reply['uri']); }