Commit 5f76072c authored by Konstantin Matskevich's avatar Konstantin Matskevich

update

parent a0a3b8b5
...@@ -88,11 +88,11 @@ struct TSTestWithParam : public ::testing::TestWithParam<T> ...@@ -88,11 +88,11 @@ struct TSTestWithParam : public ::testing::TestWithParam<T>
#define GET_PARAM(k) std::tr1::get< k >(GetParam()) #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) \ # define CORE_TEST_P(test_case_name, test_name) \
class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) : \ class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) : \
......
...@@ -57,8 +57,8 @@ using namespace cv; ...@@ -57,8 +57,8 @@ using namespace cv;
PARAM_TEST_CASE(UMatBasicTests, int, int, Size, bool) PARAM_TEST_CASE(UMatBasicTests, int, int, Size, bool)
{ {
Mat a, b, roi_a, roi_b; Mat a;
UMat ua, ub, roi_ua, roi_ub; UMat ua;
int type; int type;
int depth; int depth;
int cn; int cn;
...@@ -74,9 +74,7 @@ PARAM_TEST_CASE(UMatBasicTests, int, int, Size, bool) ...@@ -74,9 +74,7 @@ PARAM_TEST_CASE(UMatBasicTests, int, int, Size, bool)
useRoi = GET_PARAM(3); useRoi = GET_PARAM(3);
type = CV_MAKE_TYPE(depth, cn); type = CV_MAKE_TYPE(depth, cn);
a = randomMat(size, type, -100, 100); a = randomMat(size, type, -100, 100);
b = randomMat(size, type, -100, 100);
a.copyTo(ua); a.copyTo(ua);
b.copyTo(ub);
int roi_shift_x = randomInt(0, size.width-1); int roi_shift_x = randomInt(0, size.width-1);
int roi_shift_y = randomInt(0, size.height-1); int roi_shift_y = randomInt(0, size.height-1);
roi_size = Size(size.width - roi_shift_x, size.height - roi_shift_y); roi_size = Size(size.width - roi_shift_x, size.height - roi_shift_y);
...@@ -116,6 +114,9 @@ CORE_TEST_P(UMatBasicTests, createUMat) ...@@ -116,6 +114,9 @@ CORE_TEST_P(UMatBasicTests, createUMat)
CORE_TEST_P(UMatBasicTests, swap) CORE_TEST_P(UMatBasicTests, swap)
{ {
Mat b = randomMat(size, type, -100, 100);
UMat ub;
b.copyTo(ub);
if(useRoi) if(useRoi)
{ {
ua = UMat(ua,roi); ua = UMat(ua,roi);
...@@ -133,7 +134,7 @@ CORE_TEST_P(UMatBasicTests, base) ...@@ -133,7 +134,7 @@ CORE_TEST_P(UMatBasicTests, base)
{ {
ua = UMat(ua,roi); ua = UMat(ua,roi);
} }
ub = ua.clone(); UMat ub = ua.clone();
EXPECT_MAT_NEAR(ub,ua,0); EXPECT_MAT_NEAR(ub,ua,0);
ASSERT_EQ(ua.channels(), cn); ASSERT_EQ(ua.channels(), cn);
...@@ -168,6 +169,9 @@ CORE_TEST_P(UMatBasicTests, base) ...@@ -168,6 +169,9 @@ CORE_TEST_P(UMatBasicTests, base)
CORE_TEST_P(UMatBasicTests, copyTo) CORE_TEST_P(UMatBasicTests, copyTo)
{ {
UMat roi_ua;
Mat roi_a;
int i;
if(useRoi) if(useRoi)
{ {
roi_ua = UMat(ua, roi); roi_ua = UMat(ua, roi);
...@@ -181,44 +185,76 @@ CORE_TEST_P(UMatBasicTests, copyTo) ...@@ -181,44 +185,76 @@ CORE_TEST_P(UMatBasicTests, copyTo)
ua.copyTo(a); ua.copyTo(a);
EXPECT_MAT_NEAR(ua, a, 0); EXPECT_MAT_NEAR(ua, a, 0);
} }
ua.copyTo(ub); {
EXPECT_MAT_NEAR(ua, ub, 0); UMat ub;
int i = randomInt(0, ua.cols-1); ua.copyTo(ub);
a.col(i).copyTo(ub); EXPECT_MAT_NEAR(ua, ub, 0);
EXPECT_MAT_NEAR(a.col(i), ub, 0); }
ua.col(i).copyTo(ub); {
EXPECT_MAT_NEAR(ua.col(i), ub, 0); UMat ub;
ua.col(i).copyTo(b); i = randomInt(0, ua.cols-1);
EXPECT_MAT_NEAR(ua.col(i), b, 0); a.col(i).copyTo(ub);
i = randomInt(0, a.rows-1); EXPECT_MAT_NEAR(a.col(i), ub, 0);
ua.row(i).copyTo(ub); }
EXPECT_MAT_NEAR(ua.row(i), ub, 0); {
a.row(i).copyTo(ub); UMat ub;
EXPECT_MAT_NEAR(a.row(i), ub, 0); ua.col(i).copyTo(ub);
ua.row(i).copyTo(b); EXPECT_MAT_NEAR(ua.col(i), ub, 0);
EXPECT_MAT_NEAR(ua.row(i), b, 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) if(useRoi)
{ {
a = Mat(a, roi); a = Mat(a, roi);
ua = UMat(ua,roi); ua = UMat(ua,roi);
} }
ub = a.getUMat(ACCESS_RW); {
EXPECT_MAT_NEAR(ub, ua, 0); UMat ub;
b = a.getUMat(ACCESS_RW).getMat(ACCESS_RW); ub = a.getUMat(ACCESS_RW);
EXPECT_MAT_NEAR(b, a, 0); EXPECT_MAT_NEAR(ub, ua, 0);
b.release(); }
b = ua.getMat(ACCESS_RW); {
EXPECT_MAT_NEAR(b, a, 0); Mat b;
b.release(); b = a.getUMat(ACCESS_RW).getMat(ACCESS_RW);
ub = ua.getMat(ACCESS_RW).getUMat(ACCESS_RW); EXPECT_MAT_NEAR(b, a, 0);
EXPECT_MAT_NEAR(ub, ua, 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 //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// Reshape ////////////////////////////////////////////////////////////////////////
...@@ -478,15 +514,6 @@ CORE_TEST_P(UMatTestUMatOperations, diag) ...@@ -478,15 +514,6 @@ CORE_TEST_P(UMatTestUMatOperations, diag)
EXPECT_MAT_NEAR(ua.diag(), new_diag.t(), 0); 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() )); INSTANTIATE_TEST_CASE_P(UMat, UMatTestUMatOperations, Combine(UMAT_TEST_DEPTH, UMAT_TEST_CHANNELS, UMAT_TEST_SIZES, Bool() ));
///////////////////////////////////////////////////////////////// OpenCL //////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// OpenCL ////////////////////////////////////////////////////////////////////////////
...@@ -559,4 +586,3 @@ TEST(UMat, setOpenCL) ...@@ -559,4 +586,3 @@ TEST(UMat, setOpenCL)
// reset state to the previous one // reset state to the previous one
cv::ocl::setUseOpenCL(useOCL); cv::ocl::setUseOpenCL(useOCL);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment