//////////////////////////////////////////////////////////////////////////////
#include <cstdlib> //std::srand
-#include <algorithm> //std::next_permutation
#include <iostream> //std::cout
#include <boost/config.hpp>
#include <boost/move/unique_ptr.hpp>
#include <boost/container/vector.hpp>
-#include <boost/timer/timer.hpp>
-
-using boost::timer::cpu_timer;
-using boost::timer::cpu_times;
-using boost::timer::nanosecond_type;
#include "order_type.hpp"
+#include "random_shuffle.hpp"
#include <boost/move/algo/adaptive_sort.hpp>
#include <boost/move/core.hpp>
for (std::size_t i = 0; i != num_iter; ++i)
{
- std::random_shuffle(elements.get(), elements.get() + element_count);
+ ::random_shuffle(elements.get(), elements.get() + element_count);
for(std::size_t i = 0; i < (num_keys ? num_keys : element_count); ++i){
key_reps[i]=0;
}
elements[i].val = key_reps[elements[i].key]++;
}
- boost::container::vector<order_type> tmp(elements.get(), elements.get()+element_count);
-
- boost::movelib::adaptive_sort(tmp.data(), tmp.data()+element_count, order_type_less<order_type>());
+ boost::movelib::adaptive_sort(elements.get(), elements.get()+element_count, order_type_less());
- if (!is_order_type_ordered(tmp.data(), element_count))
+ if (!is_order_type_ordered(elements.get(), element_count))
{
std::cout << "\n ERROR\n";
throw int(0);
int main()
{
- #ifdef NDEBUG
const std::size_t NIter = 100;
- #else
- const std::size_t NIter = 10;
- #endif
- test_random_shuffled<order_type>(10001, 65, NIter);
- test_random_shuffled<order_type>(10001, 101, NIter);
- test_random_shuffled<order_type>(10001, 1023, NIter);
- test_random_shuffled<order_type>(10001, 4095, NIter);
- test_random_shuffled<order_type>(10001, 0, NIter);
+ test_random_shuffled<order_move_type>(10001, 3, NIter);
+ test_random_shuffled<order_move_type>(10001, 65, NIter);
+ test_random_shuffled<order_move_type>(10001, 101, NIter);
+ test_random_shuffled<order_move_type>(10001, 1023, NIter);
+ test_random_shuffled<order_move_type>(10001, 4095, NIter);
+ test_random_shuffled<order_move_type>(10001, 0, NIter);
return 0;
}