|
|
|
@ -26,3 +26,107 @@ 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); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|