From d7abb641ca06af6f30c9fd85710082ea60335dcb Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Sat, 7 Mar 2020 17:16:06 +0000 Subject: [PATCH] core(test): add InputArray(MatExpr) fetch test --- modules/core/test/test_mat.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/modules/core/test/test_mat.cpp b/modules/core/test/test_mat.cpp index efb433d..58eafd0 100644 --- a/modules/core/test/test_mat.cpp +++ b/modules/core/test/test_mat.cpp @@ -1969,6 +1969,21 @@ TEST(Core_InputArray, support_CustomType) } } + +TEST(Core_InputArray, fetch_MatExpr) +{ + Mat a(Size(10, 5), CV_32FC1, 5); + Mat b(Size(10, 5), CV_32FC1, 2); + MatExpr expr = a * b.t(); // gemm expression + Mat dst; + cv::add(expr, Scalar(1), dst); // invoke gemm() here + void* expr_data = expr.a.data; + Mat result = expr; // should not call gemm() here again + EXPECT_EQ(expr_data, result.data); // expr data is reused + EXPECT_EQ(dst.size(), result.size()); +} + + TEST(Core_Vectors, issue_13078) { float floats_[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; -- 2.7.4