From 11ac26bfb43ad6e10c2bd50bbba0489e2bc26a79 Mon Sep 17 00:00:00 2001 From: Namgoo Lee Date: Thu, 30 Jul 2020 01:24:25 +0900 Subject: [PATCH] test code --- modules/cudaarithm/test/test_gpumat.cpp | 59 +++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/modules/cudaarithm/test/test_gpumat.cpp b/modules/cudaarithm/test/test_gpumat.cpp index e2fed16ad5..b4d59b1644 100644 --- a/modules/cudaarithm/test/test_gpumat.cpp +++ b/modules/cudaarithm/test/test_gpumat.cpp @@ -320,6 +320,65 @@ CUDA_TEST_P(GpuMat_ConvertTo, WithScaling) } } +CUDA_TEST_P(GpuMat_ConvertTo, InplaceWithOutScaling) +{ + cv::Mat src = randomMat(size, depth1); + + if ((depth1 == CV_64F || depth2 == CV_64F) && !supportFeature(devInfo, cv::cuda::NATIVE_DOUBLE)) + { + try + { + cv::cuda::GpuMat d_srcDst = loadMat(src); + d_srcDst.convertTo(d_srcDst, depth2); + } + catch (const cv::Exception& e) + { + ASSERT_EQ(cv::Error::StsUnsupportedFormat, e.code); + } + } + else + { + cv::cuda::GpuMat d_srcDst = loadMat(src, useRoi); + d_srcDst.convertTo(d_srcDst, depth2); + + cv::Mat dst_gold; + src.convertTo(dst_gold, depth2); + + EXPECT_MAT_NEAR(dst_gold, d_srcDst, depth2 < CV_32F ? 1.0 : 1e-4); + } +} + + +CUDA_TEST_P(GpuMat_ConvertTo, InplaceWithScaling) +{ + cv::Mat src = randomMat(size, depth1); + double a = randomDouble(0.0, 1.0); + double b = randomDouble(-10.0, 10.0); + + if ((depth1 == CV_64F || depth2 == CV_64F) && !supportFeature(devInfo, cv::cuda::NATIVE_DOUBLE)) + { + try + { + cv::cuda::GpuMat d_srcDst = loadMat(src); + d_srcDst.convertTo(d_srcDst, depth2, a, b); + } + catch (const cv::Exception& e) + { + ASSERT_EQ(cv::Error::StsUnsupportedFormat, e.code); + } + } + else + { + cv::cuda::GpuMat d_srcDst = loadMat(src, useRoi); + d_srcDst.convertTo(d_srcDst, depth2, a, b); + + cv::Mat dst_gold; + src.convertTo(dst_gold, depth2, a, b); + + EXPECT_MAT_NEAR(dst_gold, d_srcDst, depth2 < CV_32F ? 1.0 : 1e-4); + } +} + INSTANTIATE_TEST_CASE_P(CUDA, GpuMat_ConvertTo, testing::Combine( ALL_DEVICES, DIFFERENT_SIZES,