From 5f76072c623ef730228f5c8e44686e49b2a5a957 Mon Sep 17 00:00:00 2001 From: Konstantin Matskevich Date: Wed, 11 Dec 2013 13:56:41 +0400 Subject: [PATCH] update --- modules/core/test/test_precomp.hpp | 6 +- modules/core/test/test_umat.cpp | 112 +++++++++++++++++++++++-------------- 2 files changed, 72 insertions(+), 46 deletions(-) diff --git a/modules/core/test/test_precomp.hpp b/modules/core/test/test_precomp.hpp index ffd264f..56b9d55 100644 --- a/modules/core/test/test_precomp.hpp +++ b/modules/core/test/test_precomp.hpp @@ -88,11 +88,11 @@ struct TSTestWithParam : public ::testing::TestWithParam #define GET_PARAM(k) std::tr1::get< k >(GetParam()) -#define UMAT_TEST_CHANNELS testing::Values(1, 2, 3, 4/*, 5*/) +#define UMAT_TEST_CHANNELS testing::Values(1, 2, 3, 4) -#define UMAT_TEST_SIZES testing::Values(cv::Size(1,1), cv::Size(1,128), cv::Size(128,1), cv::Size(128, 128), cv::Size(59, 113), cv::Size(640,480), cv::Size(751,373), cv::Size(2000, 2000)) +#define UMAT_TEST_SIZES testing::Values(cv::Size(1,1), cv::Size(1,128), cv::Size(128,1), cv::Size(128, 128), cv::Size(640,480), cv::Size(751,373), cv::Size(1200, 1200)) -#define UMAT_TEST_DEPTH testing::Values(CV_8S, CV_8U, CV_16S, CV_16U, CV_32F, CV_32S, CV_64F) +#define UMAT_TEST_DEPTH testing::Values(CV_8U, CV_8S, CV_16U, CV_16S, CV_32S, CV_32F, CV_64F) # define CORE_TEST_P(test_case_name, test_name) \ class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) : \ diff --git a/modules/core/test/test_umat.cpp b/modules/core/test/test_umat.cpp index e6fcbd1..536f3db 100644 --- a/modules/core/test/test_umat.cpp +++ b/modules/core/test/test_umat.cpp @@ -57,8 +57,8 @@ using namespace cv; PARAM_TEST_CASE(UMatBasicTests, int, int, Size, bool) { - Mat a, b, roi_a, roi_b; - UMat ua, ub, roi_ua, roi_ub; + Mat a; + UMat ua; int type; int depth; int cn; @@ -74,9 +74,7 @@ PARAM_TEST_CASE(UMatBasicTests, int, int, Size, bool) useRoi = GET_PARAM(3); type = CV_MAKE_TYPE(depth, cn); a = randomMat(size, type, -100, 100); - b = randomMat(size, type, -100, 100); a.copyTo(ua); - b.copyTo(ub); int roi_shift_x = randomInt(0, size.width-1); int roi_shift_y = randomInt(0, size.height-1); roi_size = Size(size.width - roi_shift_x, size.height - roi_shift_y); @@ -116,6 +114,9 @@ CORE_TEST_P(UMatBasicTests, createUMat) CORE_TEST_P(UMatBasicTests, swap) { + Mat b = randomMat(size, type, -100, 100); + UMat ub; + b.copyTo(ub); if(useRoi) { ua = UMat(ua,roi); @@ -133,7 +134,7 @@ CORE_TEST_P(UMatBasicTests, base) { ua = UMat(ua,roi); } - ub = ua.clone(); + UMat ub = ua.clone(); EXPECT_MAT_NEAR(ub,ua,0); ASSERT_EQ(ua.channels(), cn); @@ -168,6 +169,9 @@ CORE_TEST_P(UMatBasicTests, base) CORE_TEST_P(UMatBasicTests, copyTo) { + UMat roi_ua; + Mat roi_a; + int i; if(useRoi) { roi_ua = UMat(ua, roi); @@ -181,44 +185,76 @@ CORE_TEST_P(UMatBasicTests, copyTo) ua.copyTo(a); EXPECT_MAT_NEAR(ua, a, 0); } - ua.copyTo(ub); - EXPECT_MAT_NEAR(ua, ub, 0); - int i = randomInt(0, ua.cols-1); - a.col(i).copyTo(ub); - EXPECT_MAT_NEAR(a.col(i), ub, 0); - ua.col(i).copyTo(ub); - EXPECT_MAT_NEAR(ua.col(i), ub, 0); - ua.col(i).copyTo(b); - EXPECT_MAT_NEAR(ua.col(i), b, 0); - i = randomInt(0, a.rows-1); - ua.row(i).copyTo(ub); - EXPECT_MAT_NEAR(ua.row(i), ub, 0); - a.row(i).copyTo(ub); - EXPECT_MAT_NEAR(a.row(i), ub, 0); - ua.row(i).copyTo(b); - EXPECT_MAT_NEAR(ua.row(i), b, 0); + { + UMat ub; + ua.copyTo(ub); + EXPECT_MAT_NEAR(ua, ub, 0); + } + { + UMat ub; + i = randomInt(0, ua.cols-1); + a.col(i).copyTo(ub); + EXPECT_MAT_NEAR(a.col(i), ub, 0); + } + { + UMat ub; + ua.col(i).copyTo(ub); + EXPECT_MAT_NEAR(ua.col(i), ub, 0); + } + { + Mat b; + ua.col(i).copyTo(b); + EXPECT_MAT_NEAR(ua.col(i), b, 0); + } + { + UMat ub; + i = randomInt(0, a.rows-1); + ua.row(i).copyTo(ub); + EXPECT_MAT_NEAR(ua.row(i), ub, 0); + } + { + UMat ub; + a.row(i).copyTo(ub); + EXPECT_MAT_NEAR(a.row(i), ub, 0); + } + { + Mat b; + ua.row(i).copyTo(b); + EXPECT_MAT_NEAR(ua.row(i), b, 0); + } } -CORE_TEST_P(UMatBasicTests, GetUMat) +CORE_TEST_P(UMatBasicTests, DISABLED_GetUMat) { if(useRoi) { a = Mat(a, roi); ua = UMat(ua,roi); } - ub = a.getUMat(ACCESS_RW); - EXPECT_MAT_NEAR(ub, ua, 0); - b = a.getUMat(ACCESS_RW).getMat(ACCESS_RW); - EXPECT_MAT_NEAR(b, a, 0); - b.release(); - b = ua.getMat(ACCESS_RW); - EXPECT_MAT_NEAR(b, a, 0); - b.release(); - ub = ua.getMat(ACCESS_RW).getUMat(ACCESS_RW); - EXPECT_MAT_NEAR(ub, ua, 0); + { + UMat ub; + ub = a.getUMat(ACCESS_RW); + EXPECT_MAT_NEAR(ub, ua, 0); + } + { + Mat b; + b = a.getUMat(ACCESS_RW).getMat(ACCESS_RW); + EXPECT_MAT_NEAR(b, a, 0); + } + { + Mat b; + b = ua.getMat(ACCESS_RW); + EXPECT_MAT_NEAR(b, a, 0); + } + { + UMat ub; + ub = ua.getMat(ACCESS_RW).getUMat(ACCESS_RW); + EXPECT_MAT_NEAR(ub, ua, 0); + } } -INSTANTIATE_TEST_CASE_P(UMat, UMatBasicTests, Combine(UMAT_TEST_DEPTH, UMAT_TEST_CHANNELS, UMAT_TEST_SIZES, Bool() ) ); +INSTANTIATE_TEST_CASE_P(UMat, UMatBasicTests, Combine(testing::Values(CV_8U), testing::Values(1, 2), + testing::Values(cv::Size(1,1), cv::Size(1,128), cv::Size(128,1), cv::Size(128, 128), cv::Size(640,480)), Bool() ) ); //////////////////////////////////////////////////////////////// Reshape //////////////////////////////////////////////////////////////////////// @@ -478,15 +514,6 @@ CORE_TEST_P(UMatTestUMatOperations, diag) EXPECT_MAT_NEAR(ua.diag(), new_diag.t(), 0); } -CORE_TEST_P(UMatTestUMatOperations, dotUMat) -{ - a = randomMat(size, type, -100, 100); - b = randomMat(size, type, -100, 100); - a.copyTo(ua); - b.copyTo(ub); - //ASSERT_EQ(ua.dot(ub), a.dot(b)); UMat::dot doesn't compiles -} - INSTANTIATE_TEST_CASE_P(UMat, UMatTestUMatOperations, Combine(UMAT_TEST_DEPTH, UMAT_TEST_CHANNELS, UMAT_TEST_SIZES, Bool() )); ///////////////////////////////////////////////////////////////// OpenCL //////////////////////////////////////////////////////////////////////////// @@ -559,4 +586,3 @@ TEST(UMat, setOpenCL) // reset state to the previous one cv::ocl::setUseOpenCL(useOCL); } - -- 2.7.4