void test_sorted3_async(ExPolicy p, IteratorTag) { static_assert( hpx::parallel::is_execution_policy<ExPolicy>::value, "hpx::parallel::is_execution_policy<ExPolicy>::value"); typedef std::vector<std::size_t>::iterator base_iterator; typedef test::test_iterator<base_iterator, IteratorTag> iterator; std::vector<std::size_t> c_beg(10007); std::vector<std::size_t> c_end(10007); //Fill with sorted values from 0 to 10006 std::iota(boost::begin(c_beg), boost::end(c_beg), 0); std::iota(boost::begin(c_end), boost::end(c_end), 0); //add unsorted element to c_beg, c_end at the beginning, end respectively c_beg[0] = 20000; c_end[c_end.size()-1] = 0; hpx::future<bool> f1 = hpx::parallel::is_sorted(p, iterator(boost::begin(c_beg)), iterator(boost::end(c_beg))); hpx::future<bool> f2 = hpx::parallel::is_sorted(p, iterator(boost::begin(c_end)), iterator(boost::end(c_end))); f1.wait(); HPX_TEST(!f1.get()); f2.wait(); HPX_TEST(!f2.get()); }
void test_sorted3(ExPolicy policy, IteratorTag) { BOOST_STATIC_ASSERT(hpx::parallel::is_execution_policy<ExPolicy>::value); typedef std::vector<std::size_t>::iterator base_iterator; typedef test::test_iterator<base_iterator, IteratorTag> iterator; std::vector<std::size_t> c_beg(10007); std::vector<std::size_t> c_end(10007); //Fill with sorted values from 0 to 10006 std::iota(boost::begin(c_beg), boost::end(c_beg), 0); std::iota(boost::begin(c_end), boost::end(c_end), 0); //add unsorted element to c_beg, c_end at the beginning, end respectively c_beg[0] = 20000; c_end[c_end.size()-1] = 0; bool is_ordered1 = hpx::parallel::is_sorted(policy, iterator(boost::begin(c_beg)), iterator(boost::end(c_beg))); bool is_ordered2 = hpx::parallel::is_sorted(policy, iterator(boost::begin(c_end)), iterator(boost::end(c_end))); HPX_TEST(!is_ordered1); HPX_TEST(!is_ordered2); }