提交 cd169941 编写于 作者: V Vitaly Tuzov

Added test for addition of Mat and Matx

上级 c8f59bf1
......@@ -69,6 +69,7 @@ protected:
bool TestVec();
bool TestMatxMultiplication();
bool TestMatxElementwiseDivison();
bool TestMatMatxCastSum();
bool TestSubMatAccess();
bool TestExp();
bool TestSVD();
......@@ -885,6 +886,74 @@ bool CV_OperationsTest::TestMatxMultiplication()
return true;
}
bool CV_OperationsTest::TestMatMatxCastSum()
{
try
{
Mat ref1 = (Mat_<double>(3, 1) << 1, 2, 3);
Mat ref2 = (Mat_<double>(3, 1) << 3, 4, 5);
Mat ref3 = Mat::ones(3, 1, CV_64FC1);
Mat mat = Mat::zeros(3, 1, CV_64FC1);
Mat tst1 = ref1.clone();
Mat_<double> tst2 = ref2.clone();
Matx<double, 3, 1> tst3(1, 2, 3);
Vec3d tst4(3, 4, 5);
Scalar tst5(1, 2, 3);
Mat res;
res = mat + tst1;
CHECK_DIFF_FLT(res, ref1);
res = mat + tst2;
CHECK_DIFF_FLT(res, ref2);
res = mat + tst3;
CHECK_DIFF_FLT(res, ref1);
res = mat + tst4;
CHECK_DIFF_FLT(res, ref2);
res = mat + tst5;
CHECK_DIFF_FLT(res, ref3);
res = mat + 1;
CHECK_DIFF_FLT(res, ref3);
cv::add(mat, tst1, res);
CHECK_DIFF_FLT(res, ref1);
cv::add(mat, tst2, res);
CHECK_DIFF_FLT(res, ref2);
cv::add(mat, tst3, res);
CHECK_DIFF_FLT(res, ref1);
cv::add(mat, tst4, res);
CHECK_DIFF_FLT(res, ref2);
cv::add(mat, tst5, res);
CHECK_DIFF_FLT(res, ref3);
cv::add(mat, 1, res);
CHECK_DIFF_FLT(res, ref3);
res = mat.clone(); res += tst1;
CHECK_DIFF_FLT(res, ref1);
res = mat.clone(); res += tst2;
CHECK_DIFF_FLT(res, ref2);
res = mat.clone(); res += tst3;
CHECK_DIFF_FLT(res, ref1);
res = mat.clone(); res += tst4;
CHECK_DIFF_FLT(res, ref2);
res = mat.clone(); res += tst5;
CHECK_DIFF_FLT(res, ref3);
res = mat.clone(); res += 1;
CHECK_DIFF_FLT(res, ref3);
}
catch (const test_excep& e)
{
ts->printf(cvtest::TS::LOG, "%s\n", e.s.c_str());
ts->set_failed_test_info(cvtest::TS::FAIL_MISMATCH);
return false;
}
return true;
}
bool CV_OperationsTest::TestMatxElementwiseDivison()
{
try
......@@ -1135,6 +1204,9 @@ void CV_OperationsTest::run( int /* start_from */)
if (!TestMatxElementwiseDivison())
return;
if (!TestMatMatxCastSum())
return;
if (!TestSubMatAccess())
return;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册