mirror of
https://github.com/opencv/opencv.git
synced 2025-07-31 18:07:08 +08:00

G-API: Introduce new approach to write accuracy tests (#14757) * G-API: Introduce new common accuracy test fixture * Enable Range<> to Seq<> implicit conversion * Fix shadowing parameters * Update license headers * Rename ALIGNED_TYPE to SAME_TYPE * Move MkRange to tests * Fix TODO(agolubev) in test instantiations * Squash simple fixture declarations in one line * Remove unused line * Fix Windows issues with macro expansion * Choose between 1 or 2 matrix initialization * Redesign common class behavior Use "views" for GetParam() provided by GTest base class instead of doing segregation (with copy!) of common and specific parameters: request common or specific parameter directly by index from GetParam()-returned parameters * Refine user-level API and usage of new test model * Fix -fpermissive errors * Remove unnecessary init calls * Replace GCompileArgs member variable with func ptr * Rename initMatsRandN to make its behavior explicit Rename initMatsRandN to initMatrixRandN to eliminate confusion: initMatsRandN only initialized first matrix (similarly to initMatrixRandU) * Fix common of initNothing * Update copyright dates in missed files * Add check for specific parameters * Fix coment stlye
74 lines
2.6 KiB
C++
74 lines
2.6 KiB
C++
// This file is part of OpenCV project.
|
|
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
|
// of this distribution and at http://opencv.org/license.html.
|
|
//
|
|
// Copyright (C) 2019 Intel Corporation
|
|
|
|
#ifndef OPENCV_GAPI_TESTS_HELPERS_HPP
|
|
#define OPENCV_GAPI_TESTS_HELPERS_HPP
|
|
|
|
#include <tuple>
|
|
#include <limits>
|
|
|
|
namespace opencv_test
|
|
{
|
|
|
|
// out_type == in_type in matrices initialization if out_type is marked as SAME_TYPE
|
|
enum {
|
|
// TODO: why is it different from -1?
|
|
SAME_TYPE = std::numeric_limits<int>::max()
|
|
};
|
|
|
|
// Ensure correct __VA_ARGS__ expansion on Windows
|
|
#define __WRAP_VAARGS(x) x
|
|
|
|
#define __TUPLE_PARAM_TYPE(i) std::tuple_element<i, AllParams::specific_params_t>::type
|
|
|
|
// implementation of recursive in-class declaration and initialization of member variables
|
|
#define __DEFINE_PARAMS_IMPL1(index, param_name) \
|
|
__TUPLE_PARAM_TYPE(index) param_name = getSpecificParam<index>();
|
|
|
|
#define __DEFINE_PARAMS_IMPL2(index, param_name, ...) \
|
|
__TUPLE_PARAM_TYPE(index) param_name = getSpecificParam<index>(); \
|
|
__WRAP_VAARGS(__DEFINE_PARAMS_IMPL1(index+1, __VA_ARGS__))
|
|
|
|
#define __DEFINE_PARAMS_IMPL3(index, param_name, ...) \
|
|
__TUPLE_PARAM_TYPE(index) param_name = getSpecificParam<index>(); \
|
|
__WRAP_VAARGS(__DEFINE_PARAMS_IMPL2(index+1, __VA_ARGS__))
|
|
|
|
#define __DEFINE_PARAMS_IMPL4(index, param_name, ...) \
|
|
__TUPLE_PARAM_TYPE(index) param_name = getSpecificParam<index>(); \
|
|
__WRAP_VAARGS(__DEFINE_PARAMS_IMPL3(index+1, __VA_ARGS__))
|
|
|
|
#define __DEFINE_PARAMS_IMPL5(index, param_name, ...) \
|
|
__TUPLE_PARAM_TYPE(index) param_name = getSpecificParam<index>(); \
|
|
__WRAP_VAARGS(__DEFINE_PARAMS_IMPL4(index+1, __VA_ARGS__))
|
|
|
|
#define __DEFINE_PARAMS_IMPL6(index, param_name, ...) \
|
|
__TUPLE_PARAM_TYPE(index) param_name = getSpecificParam<index>(); \
|
|
__WRAP_VAARGS(__DEFINE_PARAMS_IMPL5(index+1, __VA_ARGS__))
|
|
|
|
// user interface to define member variables of specified names
|
|
#define DEFINE_SPECIFIC_PARAMS_0()
|
|
|
|
#define DEFINE_SPECIFIC_PARAMS_1(...) \
|
|
__WRAP_VAARGS(__DEFINE_PARAMS_IMPL1(0, __VA_ARGS__))
|
|
|
|
#define DEFINE_SPECIFIC_PARAMS_2(...) \
|
|
__WRAP_VAARGS(__DEFINE_PARAMS_IMPL2(0, __VA_ARGS__))
|
|
|
|
#define DEFINE_SPECIFIC_PARAMS_3(...) \
|
|
__WRAP_VAARGS(__DEFINE_PARAMS_IMPL3(0, __VA_ARGS__))
|
|
|
|
#define DEFINE_SPECIFIC_PARAMS_4(...) \
|
|
__WRAP_VAARGS(__DEFINE_PARAMS_IMPL4(0, __VA_ARGS__))
|
|
|
|
#define DEFINE_SPECIFIC_PARAMS_5(...) \
|
|
__WRAP_VAARGS(__DEFINE_PARAMS_IMPL5(0, __VA_ARGS__))
|
|
|
|
#define DEFINE_SPECIFIC_PARAMS_6(...) \
|
|
__WRAP_VAARGS(__DEFINE_PARAMS_IMPL6(0, __VA_ARGS__))
|
|
} // namespace opencv_test
|
|
|
|
#endif //OPENCV_GAPI_TESTS_HELPERS_HPP
|