1 // This file is part of OpenCV project.
2 // It is subject to the license terms in the LICENSE file found in the top-level directory
3 // of this distribution and at http://opencv.org/license.html.
5 // Copyright (C) 2018-2019 Intel Corporation
8 #include "../test_precomp.hpp"
9 #include "../common/gapi_core_tests.hpp"
13 #define CORE_FLUID [] () { return cv::compile_args(cv::gapi::core::fluid::kernels()); }
14 } // anonymous namespace
19 // FIXME: Windows accuracy problems after recent update!
20 INSTANTIATE_TEST_CASE_P(MathOpTestFluid, MathOpTest,
21 Combine(Values(CV_8UC3, CV_8UC1, CV_16SC1, CV_32FC1),
22 Values(cv::Size(1920, 1080),
26 Values(-1, CV_8U, CV_32F),
28 Values(ADD, SUB, DIV, MUL),
33 INSTANTIATE_TEST_CASE_P(MulSTestFluid, MulDoubleTest,
34 Combine(Values(CV_8UC1, CV_16SC1, CV_32FC1),
35 Values(cv::Size(1280, 720),
38 Values(-1), // FIXME: extend with more types
41 INSTANTIATE_TEST_CASE_P(DivCTestFluid, DivCTest,
42 Combine(Values(CV_8UC1, CV_16SC1, CV_32FC1),
43 Values(cv::Size(1280, 720),
46 Values(CV_8U, CV_32F),
49 INSTANTIATE_TEST_CASE_P(AbsDiffTestFluid, AbsDiffTest,
50 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
51 Values(cv::Size(1280, 720),
57 INSTANTIATE_TEST_CASE_P(AbsDiffCTestFluid, AbsDiffCTest,
58 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
59 Values(cv::Size(1280, 720),
65 INSTANTIATE_TEST_CASE_P(BitwiseTestFluid, BitwiseTest,
66 Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_16SC1),
67 Values(cv::Size(1920, 1080),
73 Values(AND, OR, XOR)));
75 INSTANTIATE_TEST_CASE_P(BitwiseNotTestFluid, NotTest,
76 Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_16SC1),
77 Values(cv::Size(1920, 1080),
84 INSTANTIATE_TEST_CASE_P(MinTestFluid, MinTest,
85 Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1),
86 Values(cv::Size(1920, 1080),
93 INSTANTIATE_TEST_CASE_P(MaxTestFluid, MaxTest,
94 Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1),
95 Values(cv::Size(1920, 1080),
100 Values(CORE_FLUID)));
102 INSTANTIATE_TEST_CASE_P(CompareTestFluid, CmpTest,
103 Combine(Values(CV_8UC3, CV_8UC1, CV_16SC1, CV_32FC1),
104 Values(cv::Size(1920, 1080),
110 Values(CMP_EQ, CMP_GE, CMP_NE, CMP_GT, CMP_LT, CMP_LE),
113 INSTANTIATE_TEST_CASE_P(AddWeightedTestFluid, AddWeightedTest,
114 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
115 Values(cv::Size(1280, 720),
118 Values(-1, CV_8U, CV_32F),
120 Values(Tolerance_FloatRel_IntAbs(1e-5, 2).to_compare_obj())));
122 INSTANTIATE_TEST_CASE_P(LUTTestFluid, LUTTest,
123 Combine(Values(CV_8UC1, CV_8UC3),
124 Values(cv::Size(1920, 1080),
129 Values(CORE_FLUID)));
131 INSTANTIATE_TEST_CASE_P(ConvertToFluid, ConvertToTest,
132 Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_32FC1),
133 Values(cv::Size(1920, 1080),
137 Values(CV_8U, CV_16U, CV_32F),
139 Values(Tolerance_FloatRel_IntAbs(1e-5, 2).to_compare_obj()),
140 Values(2.5, 1.0, -1.0),
141 Values(250.0, 0.0, -128.0)));
143 INSTANTIATE_TEST_CASE_P(Split3TestFluid, Split3Test,
144 Combine(Values(CV_8UC3),
145 Values(cv::Size(1280, 720),
149 Values(CORE_FLUID)));
151 INSTANTIATE_TEST_CASE_P(Split4TestFluid, Split4Test,
152 Combine(Values(CV_8UC4),
153 Values(cv::Size(1280, 720),
157 Values(CORE_FLUID)));
159 INSTANTIATE_TEST_CASE_P(Merge3TestFluid, Merge3Test,
160 Combine(Values(CV_8UC1),
161 Values(cv::Size(1920, 1080),
166 Values(CORE_FLUID)));
168 INSTANTIATE_TEST_CASE_P(Merge4TestFluid, Merge4Test,
169 Combine(Values(CV_8UC1),
170 Values(cv::Size(1920, 1080),
175 Values(CORE_FLUID)));
177 INSTANTIATE_TEST_CASE_P(SelectTestFluid, SelectTest,
178 Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_16SC1),
179 Values(cv::Size(1920, 1080),
184 Values(CORE_FLUID)));
186 INSTANTIATE_TEST_CASE_P(Polar2CartFluid, Polar2CartTest,
187 Combine(Values(CV_32FC1),
188 Values(cv::Size(1280, 720),
192 Values(CORE_FLUID)));
194 INSTANTIATE_TEST_CASE_P(Cart2PolarFluid, Cart2PolarTest,
195 Combine(Values(CV_32FC1),
196 Values(cv::Size(1280, 720),
200 Values(CORE_FLUID)));
202 INSTANTIATE_TEST_CASE_P(PhaseFluid, PhaseTest,
203 Combine(Values(CV_32F, CV_32FC3),
204 Values(cv::Size(1280, 720),
209 /* angle_in_degrees */ testing::Bool()));
211 INSTANTIATE_TEST_CASE_P(SqrtFluid, SqrtTest,
212 Combine(Values(CV_32F, CV_32FC3),
213 Values(cv::Size(1280, 720),
217 Values(CORE_FLUID)));
219 INSTANTIATE_TEST_CASE_P(ThresholdTestFluid, ThresholdTest,
220 Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_16SC1),
221 Values(cv::Size(1920, 1080),
227 Values(cv::THRESH_BINARY, cv::THRESH_BINARY_INV,
229 cv::THRESH_TOZERO, cv::THRESH_TOZERO_INV)));
231 INSTANTIATE_TEST_CASE_P(InRangeTestFluid, InRangeTest,
232 Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1),
233 Values(cv::Size(1920, 1080),
238 Values(CORE_FLUID)));
240 INSTANTIATE_TEST_CASE_P(ResizeTestFluid, ResizeTest,
241 Combine(Values(CV_8UC3/*CV_8UC1, CV_16UC1, CV_16SC1*/),
242 Values(cv::Size(1280, 720),
249 Values(AbsExact().to_compare_obj()),
250 Values(/*cv::INTER_NEAREST,*/ cv::INTER_LINEAR/*, cv::INTER_AREA*/),
251 Values(cv::Size(1280, 720),
257 INSTANTIATE_TEST_CASE_P(BackendOutputAllocationTestFluid, BackendOutputAllocationTest,
258 Combine(Values(CV_8UC3, CV_16SC2, CV_32FC1),
259 Values(cv::Size(50, 50)),
261 Values(CORE_FLUID)));
263 INSTANTIATE_TEST_CASE_P(BackendOutputAllocationLargeSizeWithCorrectSubmatrixTestFluid,
264 BackendOutputAllocationLargeSizeWithCorrectSubmatrixTest,
265 Combine(Values(CV_8UC3, CV_16SC2, CV_32FC1),
266 Values(cv::Size(50, 50)),
268 Values(CORE_FLUID)));
270 INSTANTIATE_TEST_CASE_P(ReInitOutTestFluid, ReInitOutTest,
271 Combine(Values(CV_8UC3, CV_16SC4, CV_32FC1),
272 Values(cv::Size(640, 480)),
275 Values(cv::Size(640, 400),
276 cv::Size(10, 480))));
278 //----------------------------------------------------------------------
279 // FIXME: Clean-up test configurations which are enabled already
281 INSTANTIATE_TEST_CASE_P(MathOpTestCPU, MathOpTest,
282 Combine(Values(ADD, DIV, MUL),
284 Values(CV_8UC1, CV_16SC1, CV_32FC1),
285 Values(cv::Size(1280, 720),
288 Values(-1, CV_8U, CV_32F),
289 /*init output matrices or not*/ testing::Bool(),
292 INSTANTIATE_TEST_CASE_P(SubTestCPU, MathOpTest,
295 Values(CV_8UC1, CV_16SC1 , CV_32FC1),
296 Values(cv::Size(1280, 720),
299 Values(-1, CV_8U, CV_32F),
300 /*init output matrices or not*/ testing::Bool(),
303 INSTANTIATE_TEST_CASE_P(MulSTestCPU, MulSTest,
304 Combine(Values(CV_8UC1, CV_16SC1, CV_32FC1),
305 Values(cv::Size(1280, 720),
308 /*init output matrices or not*/ testing::Bool()));
310 INSTANTIATE_TEST_CASE_P(DivCTestCPU, DivCTest,
311 Combine(Values(CV_8UC1, CV_16SC1, CV_32FC1),
312 Values(cv::Size(1280, 720),
315 Values(CV_8U, CV_32F),
316 /*init output matrices or not*/ testing::Bool()));
318 INSTANTIATE_TEST_CASE_P(MeanTestCPU, MeanTest,
319 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
320 Values(cv::Size(1280, 720),
323 /*init output matrices or not*/ testing::Bool()));
325 INSTANTIATE_TEST_CASE_P(SelectTestCPU, SelectTest,
326 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
327 Values(cv::Size(1280, 720),
330 /*init output matrices or not*/ testing::Bool()));
332 INSTANTIATE_TEST_CASE_P(Polar2CartCPU, Polar2CartTest,
333 Combine(Values(cv::Size(1280, 720),
336 /*init output matrices or not*/ testing::Bool()));
338 INSTANTIATE_TEST_CASE_P(Cart2PolarCPU, Cart2PolarTest,
339 Combine(Values(cv::Size(1280, 720),
342 /*init output matrices or not*/ testing::Bool()));
344 INSTANTIATE_TEST_CASE_P(CompareTestCPU, CmpTest,
345 Combine(Values(CMP_EQ, CMP_GE, CMP_NE, CMP_GT, CMP_LT, CMP_LE),
347 Values(CV_8UC1, CV_16SC1, CV_32FC1),
348 Values(cv::Size(1280, 720),
351 /*init output matrices or not*/ testing::Bool()));
353 INSTANTIATE_TEST_CASE_P(BitwiseTestCPU, BitwiseTest,
354 Combine(Values(AND, OR, XOR),
355 Values(CV_8UC1, CV_16UC1, CV_16SC1),
356 Values(cv::Size(1280, 720),
359 /*init output matrices or not*/ testing::Bool()));
361 INSTANTIATE_TEST_CASE_P(BitwiseNotTestCPU, NotTest,
362 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
363 Values(cv::Size(1280, 720),
366 /*init output matrices or not*/ testing::Bool()));
368 INSTANTIATE_TEST_CASE_P(MinTestCPU, MinTest,
369 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
370 Values(cv::Size(1280, 720),
373 /*init output matrices or not*/ testing::Bool()));
375 INSTANTIATE_TEST_CASE_P(MaxTestCPU, MaxTest,
376 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
377 Values(cv::Size(1280, 720),
380 /*init output matrices or not*/ testing::Bool()));
382 INSTANTIATE_TEST_CASE_P(SumTestCPU, SumTest,
383 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
384 Values(cv::Size(1280, 720),
387 /*init output matrices or not*/ testing::Bool())
391 INSTANTIATE_TEST_CASE_P(AbsDiffTestCPU, AbsDiffTest,
392 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
393 Values(cv::Size(1280, 720),
396 /*init output matrices or not*/ testing::Bool()));
398 INSTANTIATE_TEST_CASE_P(AbsDiffCTestCPU, AbsDiffCTest,
399 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
400 Values(cv::Size(1280, 720),
403 /*init output matrices or not*/ testing::Bool()));
405 INSTANTIATE_TEST_CASE_P(AddWeightedTestCPU, AddWeightedTest,
406 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
407 Values(cv::Size(1280, 720),
410 Values(-1, CV_8U, CV_32F),
411 /*init output matrices or not*/ testing::Bool()));
413 INSTANTIATE_TEST_CASE_P(NormTestCPU, NormTest,
414 Combine(Values(NORM_INF, NORM_L1, NORM_L2),
415 Values(CV_8UC1, CV_16UC1, CV_16SC1),
416 Values(cv::Size(1280, 720),
418 cv::Size(128, 128))),
421 INSTANTIATE_TEST_CASE_P(IntegralTestCPU, IntegralTest,
422 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
423 Values(cv::Size(1280, 720),
425 cv::Size(128, 128))));
427 INSTANTIATE_TEST_CASE_P(ThresholdTestCPU, ThresholdTest,
428 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
429 Values(cv::Size(1280, 720),
432 Values(cv::THRESH_BINARY, cv::THRESH_BINARY_INV, cv::THRESH_TRUNC, cv::THRESH_TOZERO, cv::THRESH_TOZERO_INV),
433 /*init output matrices or not*/ testing::Bool()));
435 INSTANTIATE_TEST_CASE_P(ThresholdTestCPU, ThresholdOTTest,
436 Combine(Values(CV_8UC1),
437 Values(cv::Size(1280, 720),
440 Values(cv::THRESH_OTSU, cv::THRESH_TRIANGLE),
441 /*init output matrices or not*/ testing::Bool()));
444 INSTANTIATE_TEST_CASE_P(InRangeTestCPU, InRangeTest,
445 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
446 Values(cv::Size(1280, 720),
449 /*init output matrices or not*/ testing::Bool()));
451 INSTANTIATE_TEST_CASE_P(Split3TestCPU, Split3Test,
452 (Values(cv::Size(1280, 720),
454 cv::Size(128, 128))));
456 INSTANTIATE_TEST_CASE_P(Split4TestCPU, Split4Test,
457 (Values(cv::Size(1280, 720),
459 cv::Size(128, 128))));
461 INSTANTIATE_TEST_CASE_P(Merge3TestCPU, Merge3Test,
462 (Values(cv::Size(1280, 720),
464 cv::Size(128, 128))));
466 INSTANTIATE_TEST_CASE_P(Merge4TestCPU, Merge4Test,
467 (Values(cv::Size(1280, 720),
469 cv::Size(128, 128))));
471 INSTANTIATE_TEST_CASE_P(RemapTestCPU, RemapTest,
472 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
473 Values(cv::Size(1280, 720),
476 /*init output matrices or not*/ testing::Bool()));
478 INSTANTIATE_TEST_CASE_P(FlipTestCPU, FlipTest,
479 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
481 Values(cv::Size(1280, 720),
484 /*init output matrices or not*/ testing::Bool()));
486 INSTANTIATE_TEST_CASE_P(CropTestCPU, CropTest,
487 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
488 Values(cv::Rect(10, 8, 20, 35), cv::Rect(4, 10, 37, 50)),
489 Values(cv::Size(1280, 720),
492 /*init output matrices or not*/ testing::Bool()));
494 INSTANTIATE_TEST_CASE_P(LUTTestCPU, LUTTest,
495 Combine(Values(CV_8UC1, CV_8UC3),
497 Values(cv::Size(1280, 720),
500 /*init output matrices or not*/ Values(true)));
502 INSTANTIATE_TEST_CASE_P(LUTTestCustomCPU, LUTTest,
503 Combine(Values(CV_8UC3),
505 Values(cv::Size(1280, 720),
508 /*init output matrices or not*/ Values(true)));
510 INSTANTIATE_TEST_CASE_P(ConvertToCPU, ConvertToTest,
511 Combine(Values(CV_8UC3, CV_8UC1, CV_16UC1, CV_32FC1),
512 Values(CV_8U, CV_16U, CV_32F),
513 Values(cv::Size(1280, 720),
515 cv::Size(128, 128))));
517 INSTANTIATE_TEST_CASE_P(ConcatHorTestCPU, ConcatHorTest,
518 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
519 Values(cv::Size(1280, 720),
521 cv::Size(128, 128))));
522 INSTANTIATE_TEST_CASE_P(ConcatVertTestCPU, ConcatVertTest,
523 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
524 Values(cv::Size(1280, 720),
526 cv::Size(128, 128))));
528 //----------------------------------------------------------------------