BOOST_CHECK_EQUAL(int_vector.size(), size_t(5));
}
+BOOST_AUTO_TEST_CASE(reserve)
+{
+ const float growth_factor = 1.5f;
+
+ bc::vector<int> int_vector(10, context);
+ BOOST_CHECK_EQUAL(int_vector.size(), size_t(10));
+ BOOST_CHECK_EQUAL(int_vector.capacity(), size_t(10));
+
+ int_vector.reserve(20, queue);
+ BOOST_CHECK_EQUAL(int_vector.size(), size_t(10));
+ BOOST_CHECK_EQUAL(int_vector.capacity(), size_t(20 * growth_factor));
+
+ int_vector.reserve(5, queue);
+ BOOST_CHECK_EQUAL(int_vector.size(), size_t(10));
+ BOOST_CHECK_EQUAL(int_vector.capacity(), size_t(20 * growth_factor));
+}
+
BOOST_AUTO_TEST_CASE(array_operator)
{
bc::vector<int> vector(10, context);
for(int i = 0; i < 100; i++){
vector.push_back(i, queue);
}
+ queue.finish();
BOOST_CHECK_EQUAL(vector.size(), size_t(103));
BOOST_CHECK_EQUAL(vector[0], 12);
BOOST_CHECK_EQUAL(vector[1], 24);
vector.push_back(1, queue);
vector.push_back(2, queue);
vector.push_back(3, queue);
+ queue.finish();
BOOST_CHECK_EQUAL(vector.at(0), 1);
BOOST_CHECK_EQUAL(vector.at(1), 2);
BOOST_CHECK_EQUAL(vector.at(2), 3);
#endif // BOOST_COMPUTE_NO_RVALUE_REFERENCES
#ifdef BOOST_COMPUTE_USE_CPP11
+#ifndef BOOST_COMPUTE_NO_HDR_INITIALIZER_LIST
BOOST_AUTO_TEST_CASE(initializer_list_ctor)
{
// ctor with std::initializer_list<T> always uses
BOOST_CHECK_EQUAL(vector[2], 6);
BOOST_CHECK_EQUAL(vector[3], 8);
}
+#endif // BOOST_COMPUTE_NO_HDR_INITIALIZER_LIST
#endif // BOOST_COMPUTE_USE_CPP11
BOOST_AUTO_TEST_CASE(vector_double)
vector.push_back(4, queue);
vector.push_back(6, queue);
vector.push_back(8, queue);
+ queue.finish();
BOOST_CHECK_EQUAL(vector.size(), size_t(4));
BOOST_CHECK_EQUAL(vector[0], 2);
BOOST_CHECK_EQUAL(*vector.begin(), 2);
CHECK_RANGE_EQUAL(int, 4, b, (11, 12, 13, 14));
}
+BOOST_AUTO_TEST_CASE(shrink_to_fit)
+{
+ bc::vector<bc::int_> int_vector(5, context);
+ BOOST_CHECK_EQUAL(int_vector.size(), 5);
+ BOOST_CHECK(int_vector.capacity() >= 5);
+
+ int_vector.reserve(15);
+ BOOST_CHECK_EQUAL(int_vector.size(), 5);
+ BOOST_CHECK(int_vector.capacity() >= 15);
+
+ int_vector.shrink_to_fit();
+ BOOST_CHECK_EQUAL(int_vector.size(), 5);
+ BOOST_CHECK_EQUAL(int_vector.capacity(), 5);
+
+ int_vector.clear();
+ BOOST_CHECK_EQUAL(int_vector.size(), 0);
+ BOOST_CHECK_EQUAL(int_vector.capacity(), 5);
+
+ int_vector.shrink_to_fit();
+ BOOST_CHECK_EQUAL(int_vector.size(), 0);
+ BOOST_CHECK_EQUAL(int_vector.capacity(), 0);
+
+ int_vector.reserve(15);
+ BOOST_CHECK_EQUAL(int_vector.size(), 0);
+ BOOST_CHECK(int_vector.capacity() >= 15);
+}
+
BOOST_AUTO_TEST_SUITE_END()