Esempio n. 1
0
void	test_uni10()
{
  number::interval_collect<int> inter(1, 5);
  number::interval_collect<int> inter2(2, 8);
  number::interval_collect<int> result = inter + inter2;
  if (result.low_value() == 2)
    std::cout << "OK ";
  else
    std::cout << "KO ";
  if (result.high_value() == 5)
    std::cout << "OK ";
  else
    std::cout << "KO ";
  number::interval_collect<int> inter3(-5, -1);
  number::interval_collect<int> inter4(1, 8);
  result = inter4 & inter3;
  if (result.low_value() == -5 && result.high_value() == -1)
    std::cout << "OK ";
  else
    std::cout << "KO ";
  if (result.low_value(1) == 1 && result.high_value(1) == 8)
    std::cout << "OK ";
  else
    std::cout << "KO ";
  std::cout << std::endl;
}
Esempio n. 2
0
void	test_uni13()
{
  number::interval_pair inter(1, 5);
  number::interval_pair inter2(2, 8);
  number::interval_pair result = inter + inter2;
  if (result.min() == 2 && result.max() == 5)
    std::cout << "OK ";
  else
    std::cout << "KO ";
  number::interval_pair inter3(1);
  result = inter + inter3;
  if (result.min() == 1 && result.max() == 5)
    std::cout << "OK ";
  else
    std::cout << "KO ";
  std::cout << std::endl;
}
Esempio n. 3
0
void MaprTests::testMRInterMerger()
{
	std::cout << "MaprTests::testMRInterMerger\n";
	
	hThreadPool *pool = new hThreadPool(8);
	pool->run();

	TaskLauncher flush_tasks_launcher(pool, 1, boost::bind(&MaprTests::onMRInterMergerFinished, this));

	MapReduceInvertIndex *MR = new MapReduceInvertIndex();
	
	MRInterResultPtr inter1 (new MRInterResult(m_path+"inter1", MR, flush_tasks_launcher));
	MRInterResultPtr inter2 (new MRInterResult(m_path+"inter2", MR, flush_tasks_launcher));
	MRInterResultPtr inter3 (new MRInterResult(m_path+"inter3", MR, flush_tasks_launcher));
	
	int nkeys = 10000000;
	int keys_in_cache = 100000;
	
	for (uint64_t i = 1; i<=2*nkeys/3; i++)
	{
		InvertLine* line = new InvertLine();
		for (int j = i; j<i+50; j++)
			line->pages.push_back(j);
		inter1->addEmit(i, line);
	}
	
	for (uint64_t i = nkeys/3; i<=nkeys; i++)
	{
		InvertLine* line = new InvertLine();
		for (int j = i; j<i+50; j++)
			line->pages.push_back(j);
		inter2->addEmit(i, line);
	}
	std::cout << "emits created\n";
	int64_t ts_start = time(0);
	
	inter1->waitFlushFinished();
	inter2->waitFlushFinished();
	
	inter1->waitInitReading();
	inter2->waitInitReading();
	
	//inter1->setModeReading();
	//inter2->setModeReading();
	
	TaskLauncher preload_tasks_launcher(pool, 1, boost::bind(&MaprTests::onMRInterMergerFinished, this));
	
	MRInterMerger::merge(preload_tasks_launcher, inter1, inter2, inter3, MR, keys_in_cache);
	
	inter3->waitFlushFinished();
	//std::cout << "result keys:" << inter3->getKeys()->size() << std::endl;
	std::cout << "time took " << time(0) - ts_start << std::endl; 
	// 40 sec, 500mb
	
	//Int64VecPtr keys = inter3->getKeys();
	//std::cout << "nkeys: " << keys->size() << std::endl; 
	
	/*for (int i = 0; i<keys->size(); i++)
	{
		inter3->preload(keys->at(i), 0);
		InvertLine* line = (InvertLine*)inter3->getEmit(keys->at(i), 0);
		
		std::cout << "key: " << keys->at(i) << " ";
		line->print();
	}*/
}