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; }
void test_uni2() { number::interval<int> inter(1, 5); number::interval<int> inter2(3, 5); if (inter.low_value() == 1 && inter.high_value() == 5) std::cout << "OK "; else std::cout << "KO "; if (inter2.low_value() == 3 && inter2.high_value() == 5) std::cout << "OK "; else std::cout << "KO "; std::cout << std::endl; }
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; }
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(); }*/ }