From d00f36ec7585d98c7cab26430c55e9c82b97ed49 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Thu, 25 Dec 2014 17:43:13 +0300 Subject: [PATCH] fix tests for gpu::matchTemplate: use ASSERT_FLOAT_EQ to compare float values, it is more robust for large values --- modules/gpu/test/test_imgproc.cpp | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/modules/gpu/test/test_imgproc.cpp b/modules/gpu/test/test_imgproc.cpp index 9ce32d12b8..87e9bf3710 100644 --- a/modules/gpu/test/test_imgproc.cpp +++ b/modules/gpu/test/test_imgproc.cpp @@ -692,7 +692,18 @@ GPU_TEST_P(MatchTemplate8U, Accuracy) cv::Mat dst_gold; cv::matchTemplate(image, templ, dst_gold, method); - EXPECT_MAT_NEAR(dst_gold, dst, templ_size.area() * 1e-1); + cv::Mat h_dst(dst); + ASSERT_EQ(dst_gold.size(), h_dst.size()); + ASSERT_EQ(dst_gold.type(), h_dst.type()); + for (int y = 0; y < h_dst.rows; ++y) + { + for (int x = 0; x < h_dst.cols; ++x) + { + float gold_val = dst_gold.at(y, x); + float actual_val = dst_gold.at(y, x); + ASSERT_FLOAT_EQ(gold_val, actual_val) << y << ", " << x; + } + } } INSTANTIATE_TEST_CASE_P(GPU_ImgProc, MatchTemplate8U, testing::Combine( @@ -738,7 +749,18 @@ GPU_TEST_P(MatchTemplate32F, Regression) cv::Mat dst_gold; cv::matchTemplate(image, templ, dst_gold, method); - EXPECT_MAT_NEAR(dst_gold, dst, templ_size.area() * 1e-1); + cv::Mat h_dst(dst); + ASSERT_EQ(dst_gold.size(), h_dst.size()); + ASSERT_EQ(dst_gold.type(), h_dst.type()); + for (int y = 0; y < h_dst.rows; ++y) + { + for (int x = 0; x < h_dst.cols; ++x) + { + float gold_val = dst_gold.at(y, x); + float actual_val = dst_gold.at(y, x); + ASSERT_FLOAT_EQ(gold_val, actual_val) << y << ", " << x; + } + } } INSTANTIATE_TEST_CASE_P(GPU_ImgProc, MatchTemplate32F, testing::Combine(