mirror of
https://github.com/opencv/opencv.git
synced 2024-11-24 03:00:14 +08:00
Mixed arithmetics tests: multichannel
This commit is contained in:
parent
79faf857d9
commit
8725a7e21c
@ -1640,7 +1640,7 @@ INSTANTIATE_TEST_CASE_P(Core_CartToPolarToCart, ElemWiseTest, ::testing::Values(
|
|||||||
|
|
||||||
// Mixed Type Arithmetic Operations
|
// Mixed Type Arithmetic Operations
|
||||||
|
|
||||||
typedef std::tuple<ElemWiseOpPtr, std::tuple<cvtest::MatDepth, cvtest::MatDepth>> SomeType;
|
typedef std::tuple<ElemWiseOpPtr, std::tuple<cvtest::MatDepth, cvtest::MatDepth>, int> SomeType;
|
||||||
class ArithmMixedTest : public ::testing::TestWithParam<SomeType> {};
|
class ArithmMixedTest : public ::testing::TestWithParam<SomeType> {};
|
||||||
|
|
||||||
TEST_P(ArithmMixedTest, accuracy)
|
TEST_P(ArithmMixedTest, accuracy)
|
||||||
@ -1649,7 +1649,10 @@ TEST_P(ArithmMixedTest, accuracy)
|
|||||||
ElemWiseOpPtr op = std::get<0>(p);
|
ElemWiseOpPtr op = std::get<0>(p);
|
||||||
int srcDepth = std::get<0>(std::get<1>(p));
|
int srcDepth = std::get<0>(std::get<1>(p));
|
||||||
int dstDepth = std::get<1>(std::get<1>(p));
|
int dstDepth = std::get<1>(std::get<1>(p));
|
||||||
|
int channels = std::get<2>(p);
|
||||||
|
|
||||||
|
int srcType = CV_MAKETYPE(srcDepth, channels);
|
||||||
|
int dstType = CV_MAKETYPE(dstDepth, channels);
|
||||||
op->flags |= BaseElemWiseOp::MIXED_TYPE;
|
op->flags |= BaseElemWiseOp::MIXED_TYPE;
|
||||||
int testIdx = 0;
|
int testIdx = 0;
|
||||||
RNG rng((uint64)ARITHM_RNG_SEED);
|
RNG rng((uint64)ARITHM_RNG_SEED);
|
||||||
@ -1664,15 +1667,15 @@ TEST_P(ArithmMixedTest, accuracy)
|
|||||||
int ninputs = op->ninputs;
|
int ninputs = op->ninputs;
|
||||||
vector<Mat> src(ninputs);
|
vector<Mat> src(ninputs);
|
||||||
for(int i = 0; i < ninputs; i++ )
|
for(int i = 0; i < ninputs; i++ )
|
||||||
src[i] = cvtest::randomMat(rng, size, srcDepth, minval, maxval, true);
|
src[i] = cvtest::randomMat(rng, size, srcType, minval, maxval, true);
|
||||||
Mat dst0, dst, mask;
|
Mat dst0, dst, mask;
|
||||||
if( haveMask )
|
if( haveMask )
|
||||||
{
|
{
|
||||||
mask = cvtest::randomMat(rng, size, CV_8UC1, 0, 2, true);
|
mask = cvtest::randomMat(rng, size, CV_8UC1, 0, 2, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
dst0 = cvtest::randomMat(rng, size, dstDepth, minval, maxval, false);
|
dst0 = cvtest::randomMat(rng, size, dstType, minval, maxval, false);
|
||||||
dst = cvtest::randomMat(rng, size, dstDepth, minval, maxval, true);
|
dst = cvtest::randomMat(rng, size, dstType, minval, maxval, true);
|
||||||
cvtest::copy(dst, dst0);
|
cvtest::copy(dst, dst0);
|
||||||
|
|
||||||
op->generateScalars(dstDepth, rng);
|
op->generateScalars(dstDepth, rng);
|
||||||
@ -1692,53 +1695,62 @@ INSTANTIATE_TEST_CASE_P(Core_AddMixed, ArithmMixedTest,
|
|||||||
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F})));
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F}),
|
||||||
|
::testing::Values(1, 3, 4)));
|
||||||
INSTANTIATE_TEST_CASE_P(Core_AddScalarMixed, ArithmMixedTest,
|
INSTANTIATE_TEST_CASE_P(Core_AddScalarMixed, ArithmMixedTest,
|
||||||
::testing::Combine(::testing::Values(ElemWiseOpPtr(new AddSOp)),
|
::testing::Combine(::testing::Values(ElemWiseOpPtr(new AddSOp)),
|
||||||
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F})));
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F}),
|
||||||
|
::testing::Values(1, 3, 4)));
|
||||||
INSTANTIATE_TEST_CASE_P(Core_AddWeightedMixed, ArithmMixedTest,
|
INSTANTIATE_TEST_CASE_P(Core_AddWeightedMixed, ArithmMixedTest,
|
||||||
::testing::Combine(::testing::Values(ElemWiseOpPtr(new AddWeightedOp)),
|
::testing::Combine(::testing::Values(ElemWiseOpPtr(new AddWeightedOp)),
|
||||||
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F})));
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F}),
|
||||||
|
::testing::Values(1, 3, 4)));
|
||||||
INSTANTIATE_TEST_CASE_P(Core_SubMixed, ArithmMixedTest,
|
INSTANTIATE_TEST_CASE_P(Core_SubMixed, ArithmMixedTest,
|
||||||
::testing::Combine(::testing::Values(ElemWiseOpPtr(new SubOp)),
|
::testing::Combine(::testing::Values(ElemWiseOpPtr(new SubOp)),
|
||||||
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F})));
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F}),
|
||||||
|
::testing::Values(1, 3, 4)));
|
||||||
INSTANTIATE_TEST_CASE_P(Core_SubScalarMinusArgMixed, ArithmMixedTest,
|
INSTANTIATE_TEST_CASE_P(Core_SubScalarMinusArgMixed, ArithmMixedTest,
|
||||||
::testing::Combine(::testing::Values(ElemWiseOpPtr(new SubRSOp)),
|
::testing::Combine(::testing::Values(ElemWiseOpPtr(new SubRSOp)),
|
||||||
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F})));
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F}),
|
||||||
|
::testing::Values(1, 3, 4)));
|
||||||
INSTANTIATE_TEST_CASE_P(Core_MulMixed, ArithmMixedTest,
|
INSTANTIATE_TEST_CASE_P(Core_MulMixed, ArithmMixedTest,
|
||||||
::testing::Combine(::testing::Values(ElemWiseOpPtr(new MulOp)),
|
::testing::Combine(::testing::Values(ElemWiseOpPtr(new MulOp)),
|
||||||
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F})));
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F}),
|
||||||
|
::testing::Values(1, 3, 4)));
|
||||||
INSTANTIATE_TEST_CASE_P(Core_MulScalarMixed, ArithmMixedTest,
|
INSTANTIATE_TEST_CASE_P(Core_MulScalarMixed, ArithmMixedTest,
|
||||||
::testing::Combine(::testing::Values(ElemWiseOpPtr(new MulSOp)),
|
::testing::Combine(::testing::Values(ElemWiseOpPtr(new MulSOp)),
|
||||||
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F})));
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F}),
|
||||||
|
::testing::Values(1, 3, 4)));
|
||||||
INSTANTIATE_TEST_CASE_P(Core_DivMixed, ArithmMixedTest,
|
INSTANTIATE_TEST_CASE_P(Core_DivMixed, ArithmMixedTest,
|
||||||
::testing::Combine(::testing::Values(ElemWiseOpPtr(new DivOp)),
|
::testing::Combine(::testing::Values(ElemWiseOpPtr(new DivOp)),
|
||||||
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_16S},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F})));
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F}),
|
||||||
|
::testing::Values(1, 3, 4)));
|
||||||
INSTANTIATE_TEST_CASE_P(Core_RecipMixed, ArithmMixedTest,
|
INSTANTIATE_TEST_CASE_P(Core_RecipMixed, ArithmMixedTest,
|
||||||
::testing::Combine(::testing::Values(ElemWiseOpPtr(new RecipOp)),
|
::testing::Combine(::testing::Values(ElemWiseOpPtr(new RecipOp)),
|
||||||
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_32F},
|
::testing::Values(std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8U, CV_16U},
|
||||||
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F})));
|
std::tuple<cvtest::MatDepth, cvtest::MatDepth>{CV_8S, CV_32F}),
|
||||||
|
::testing::Values(1, 3, 4)));
|
||||||
|
|
||||||
TEST(Core_ArithmMask, uninitialized)
|
TEST(Core_ArithmMask, uninitialized)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user