]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/compute/test/test_vector.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / compute / test / test_vector.cpp
index f49a745529f91483397cf8e98ae53f3f33e00e73..c3dd8b79d81f6e38fefd329e91650fac2ee543a4 100644 (file)
@@ -62,6 +62,23 @@ BOOST_AUTO_TEST_CASE(resize)
     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);
@@ -141,6 +158,7 @@ BOOST_AUTO_TEST_CASE(push_back)
     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);
@@ -154,6 +172,7 @@ BOOST_AUTO_TEST_CASE(at)
     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);
@@ -214,6 +233,7 @@ BOOST_AUTO_TEST_CASE(move_ctor_custom_alloc)
 #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
@@ -225,6 +245,7 @@ BOOST_AUTO_TEST_CASE(initializer_list_ctor)
     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)
@@ -254,6 +275,7 @@ BOOST_AUTO_TEST_CASE(vector_iterator)
     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);
@@ -450,4 +472,31 @@ BOOST_AUTO_TEST_CASE(swap_ctor_custom_alloc)
     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()