Merge pull request #3629 from nstiurca:matx-fix
This commit is contained in:
@@ -26,3 +26,106 @@ TEST(Core_SaturateCast, NegativeNotClipped)
|
||||
|
||||
ASSERT_EQ(0xffffffff, val);
|
||||
}
|
||||
|
||||
template<typename T, typename U>
|
||||
static double maxAbsDiff(const T &t, const U &u)
|
||||
{
|
||||
Mat_<double> d;
|
||||
absdiff(t, u, d);
|
||||
double ret;
|
||||
minMaxLoc(d, NULL, &ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
TEST(Core_OutputArrayAssign, _Matxd_Matd)
|
||||
{
|
||||
Mat expected = (Mat_<double>(2,3) << 1, 2, 3, .1, .2, .3);
|
||||
Matx23d actualx;
|
||||
|
||||
{
|
||||
OutputArray oa(actualx);
|
||||
oa.assign(expected);
|
||||
}
|
||||
|
||||
Mat actual = (Mat) actualx;
|
||||
|
||||
EXPECT_LE(maxAbsDiff(expected, actual), 0.0);
|
||||
}
|
||||
|
||||
TEST(Core_OutputArrayAssign, _Matxd_Matf)
|
||||
{
|
||||
Mat expected = (Mat_<float>(2,3) << 1, 2, 3, .1, .2, .3);
|
||||
Matx23d actualx;
|
||||
|
||||
{
|
||||
OutputArray oa(actualx);
|
||||
oa.assign(expected);
|
||||
}
|
||||
|
||||
Mat actual = (Mat) actualx;
|
||||
|
||||
EXPECT_LE(maxAbsDiff(expected, actual), FLT_EPSILON);
|
||||
}
|
||||
|
||||
TEST(Core_OutputArrayAssign, _Matxf_Matd)
|
||||
{
|
||||
Mat expected = (Mat_<double>(2,3) << 1, 2, 3, .1, .2, .3);
|
||||
Matx23f actualx;
|
||||
|
||||
{
|
||||
OutputArray oa(actualx);
|
||||
oa.assign(expected);
|
||||
}
|
||||
|
||||
Mat actual = (Mat) actualx;
|
||||
|
||||
EXPECT_LE(maxAbsDiff(expected, actual), FLT_EPSILON);
|
||||
}
|
||||
|
||||
TEST(Core_OutputArrayAssign, _Matxd_UMatd)
|
||||
{
|
||||
Mat expected = (Mat_<double>(2,3) << 1, 2, 3, .1, .2, .3);
|
||||
UMat uexpected = expected.getUMat(ACCESS_READ);
|
||||
Matx23d actualx;
|
||||
|
||||
{
|
||||
OutputArray oa(actualx);
|
||||
oa.assign(uexpected);
|
||||
}
|
||||
|
||||
Mat actual = (Mat) actualx;
|
||||
|
||||
EXPECT_LE(maxAbsDiff(expected, actual), 0.0);
|
||||
}
|
||||
|
||||
TEST(Core_OutputArrayAssign, _Matxd_UMatf)
|
||||
{
|
||||
Mat expected = (Mat_<float>(2,3) << 1, 2, 3, .1, .2, .3);
|
||||
UMat uexpected = expected.getUMat(ACCESS_READ);
|
||||
Matx23d actualx;
|
||||
|
||||
{
|
||||
OutputArray oa(actualx);
|
||||
oa.assign(uexpected);
|
||||
}
|
||||
|
||||
Mat actual = (Mat) actualx;
|
||||
|
||||
EXPECT_LE(maxAbsDiff(expected, actual), FLT_EPSILON);
|
||||
}
|
||||
|
||||
TEST(Core_OutputArrayAssign, _Matxf_UMatd)
|
||||
{
|
||||
Mat expected = (Mat_<double>(2,3) << 1, 2, 3, .1, .2, .3);
|
||||
UMat uexpected = expected.getUMat(ACCESS_READ);
|
||||
Matx23f actualx;
|
||||
|
||||
{
|
||||
OutputArray oa(actualx);
|
||||
oa.assign(uexpected);
|
||||
}
|
||||
|
||||
Mat actual = (Mat) actualx;
|
||||
|
||||
EXPECT_LE(maxAbsDiff(expected, actual), FLT_EPSILON);
|
||||
}
|
||||
|
Reference in New Issue
Block a user