]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/compute/test/check_macros.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / compute / test / check_macros.hpp
index a115e6a9360930b7b862e561f0380d40c9d23111..f3e609edaede523121af101d22f94ad5cb5fca07 100644 (file)
         ); \
     }
 
+template <typename Left, typename Right, typename ToleranceBaseType>
+inline void
+equal_close_impl(Left left_begin,
+                 Left left_end,
+                 Right right_begin,
+                 Right right_end,
+                 ToleranceBaseType tolerance)
+{
+    for(; left_begin != (left_end); ++left_begin, ++right_begin) {
+        BOOST_CHECK_CLOSE(*left_begin, *right_begin, tolerance); \
+    }
+}
+
+#define BOOST_COMPUTE_TEST_CHECK_CLOSE_COLLECTIONS(L_begin, L_end, R_begin, R_end, tolerance) \
+    { \
+        equal_close_impl(L_begin, L_end, R_begin, R_end, tolerance); \
+    }
+
+#define CHECK_RANGE_CLOSE(type, size, actual, expected, tolerance) \
+    { \
+        type _actual[size]; \
+        boost::compute::copy( \
+            actual.begin(), actual.begin()+size, _actual, queue \
+        ); \
+        const type _expected[size] = { \
+            BOOST_PP_REPEAT(size, LIST_ARRAY_VALUES, (size, expected)) \
+        }; \
+        BOOST_COMPUTE_TEST_CHECK_CLOSE_COLLECTIONS( \
+            _actual, _actual + size, _expected, _expected + size, tolerance \
+        ); \
+    }
+
 #define CHECK_HOST_RANGE_EQUAL(type, size, actual, expected) \
     { \
         const type _expected[size] = { \