rewrite histEven test
authorVladislav Vinogradov <vlad.vinogradov@itseez.com>
Thu, 1 Aug 2013 12:25:16 +0000 (16:25 +0400)
committerVladislav Vinogradov <vlad.vinogradov@itseez.com>
Thu, 1 Aug 2013 14:00:05 +0000 (18:00 +0400)
modules/gpu/test/test_imgproc.cpp

index 03d2b9c..a67760e 100644 (file)
@@ -86,13 +86,16 @@ INSTANTIATE_TEST_CASE_P(GPU_ImgProc, Integral, testing::Combine(
 ///////////////////////////////////////////////////////////////////////////////////////////////////////
 // HistEven
 
-struct HistEven : testing::TestWithParam<cv::gpu::DeviceInfo>
+PARAM_TEST_CASE(HistEven, cv::gpu::DeviceInfo, cv::Size)
 {
     cv::gpu::DeviceInfo devInfo;
 
+    cv::Size size;
+
     virtual void SetUp()
     {
-        devInfo = GetParam();
+        devInfo = GET_PARAM(0);
+        size = GET_PARAM(1);
 
         cv::gpu::setDevice(devInfo.deviceID());
     }
@@ -100,35 +103,30 @@ struct HistEven : testing::TestWithParam<cv::gpu::DeviceInfo>
 
 GPU_TEST_P(HistEven, Accuracy)
 {
-    cv::Mat img = readImage("stereobm/aloe-L.png");
-    ASSERT_FALSE(img.empty());
-
-    cv::Mat hsv;
-    cv::cvtColor(img, hsv, CV_BGR2HSV);
-
-    int hbins = 30;
-    float hranges[] = {0.0f, 180.0f};
+    cv::Mat src = randomMat(size, CV_8UC1);
 
-    std::vector<cv::gpu::GpuMat> srcs;
-    cv::gpu::split(loadMat(hsv), srcs);
+    int hbins = 256;
+    float hranges[] = {0.0f, 256.0f};
 
     cv::gpu::GpuMat hist;
-    cv::gpu::histEven(srcs[0], hist, hbins, (int)hranges[0], (int)hranges[1]);
+    cv::gpu::histEven(loadMat(src), hist, hbins, (int) hranges[0], (int) hranges[1]);
+
+    cv::Mat hist_gold;
 
-    cv::MatND histnd;
     int histSize[] = {hbins};
     const float* ranges[] = {hranges};
     int channels[] = {0};
-    cv::calcHist(&hsv, 1, channels, cv::Mat(), histnd, 1, histSize, ranges);
+    cv::calcHist(&src, 1, channels, cv::Mat(), hist_gold, 1, histSize, ranges);
 
-    cv::Mat hist_gold = histnd;
     hist_gold = hist_gold.t();
     hist_gold.convertTo(hist_gold, CV_32S);
 
     EXPECT_MAT_NEAR(hist_gold, hist, 0.0);
 }
 
-INSTANTIATE_TEST_CASE_P(GPU_ImgProc, HistEven, ALL_DEVICES);
+INSTANTIATE_TEST_CASE_P(GPU_ImgProc, HistEven, testing::Combine(
+    ALL_DEVICES,
+    DIFFERENT_SIZES));
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////////
 // CalcHist