testing::Combine(
testing::Values( TYPICAL_MAT_SIZES ),
testing::Values( TYPICAL_MAT_TYPES ),
- testing::Values( CV_REDUCE_SUM, CV_REDUCE_AVG, CV_REDUCE_MAX, CV_REDUCE_MIN )
+ testing::ValuesIn(ROp::all())
)
)
{
testing::Combine(
testing::Values( TYPICAL_MAT_SIZES ),
testing::Values( TYPICAL_MAT_TYPES ),
- testing::Values( CV_REDUCE_SUM, CV_REDUCE_AVG, CV_REDUCE_MAX, CV_REDUCE_MIN )
+ testing::ValuesIn(ROp::all())
)
)
{
--- /dev/null
+#include "perf_precomp.hpp"
+
+using namespace std;
+using namespace cv;
+using namespace perf;
+
+using std::tr1::make_tuple;
+using std::tr1::get;
+
+CV_ENUM(SobelBorderType, BORDER_CONSTANT, BORDER_REFLECT, BORDER_REFLECT_101)
+
+typedef std::tr1::tuple<Size, std::tr1::tuple<int, int>, int, SobelBorderType> Size_dx_dy_kernel_Border_t;
+typedef perf::TestBaseWithParam<Size_dx_dy_kernel_Border_t> Size_dx_dy_kernel_Border;
+
+PERF_TEST_P(Size_dx_dy_kernel_Border, sobel,
+ testing::Combine(
+ testing::Values(szVGA, szQVGA),
+ testing::Values(make_tuple(0, 1), make_tuple(1, 0), make_tuple(1, 1), make_tuple(0, 2), make_tuple(2, 0), make_tuple(2, 2)),
+ testing::Values(3, 5),
+ testing::ValuesIn(SobelBorderType::all())
+ )
+ )
+{
+ Size size = get<0>(GetParam());
+ int dx = get<0>(get<1>(GetParam()));
+ int dy = get<1>(get<1>(GetParam()));
+ int ksize = get<2>(GetParam());
+ SobelBorderType border = get<3>(GetParam());
+
+ Mat src(size, CV_8U);
+ Mat dst(size, CV_32F);
+
+ declare.in(src, WARMUP_RNG).out(dst);
+
+ TEST_CYCLE(100) { Sobel(src, dst, CV_32F, dx, dy, ksize, 1, 0, border); }
+
+ SANITY_CHECK(dst);
+}
PERF_TEST_P( InpaintArea_InpaintingMethod, inpaint,\r
testing::Combine(\r
SZ_ALL_SMALL,\r
- testing::Values( (int)INPAINT_NS, (int)INPAINT_TELEA ))\r
+ testing::ValuesIn(InpaintingMethod::all())\r
+ )\r
)\r
{\r
Mat src = imread( getDataPath("gpu/hog/road.png") );\r
}\\r
*os << "UNKNOWN";\\r
}\\r
+ struct Container{\\r
+ typedef class_name value_type;\\r
+ Container(class_name* first, size_t len): _begin(first), _end(first+len){}\\r
+ const class_name* begin() const {return _begin;}\\r
+ const class_name* end() const {return _end;}\\r
+ private: class_name *_begin, *_end;\\r
+ };\\r
+ static Container all(){\\r
+ static class_name vals[] = {__VA_ARGS__};\\r
+ return Container(vals, sizeof(vals)/sizeof(vals[0]));\\r
+ }\\r
private: int _val;\\r
};\\r
inline void PrintTo(const class_name& t, std::ostream* os) { t.PrintTo(os); }\r
param = param[1:]
if param.endswith(")"):
param = param[:-1]
- return [p.strip() for p in param.split(",")]
+ args = []
+ prev_pos = 0
+ start = 0
+ balance = 0
+ while True:
+ idx = param.find(",", prev_pos)
+ if idx < 0:
+ break
+ idxlb = param.find("(", prev_pos, idx)
+ while idxlb >= 0:
+ balance += 1
+ idxlb = param.find("(", idxlb+1, idx)
+ idxrb = param.find(")", prev_pos, idx)
+ while idxrb >= 0:
+ balance -= 1
+ idxrb = param.find(")", idxrb+1, idx)
+ assert(balance >= 0)
+ if balance == 0:
+ args.append(param[start:idx].strip())
+ start = idx + 1
+ prev_pos = idx + 1
+ args.append(param[start:].strip())
+ return args
+ #return [p.strip() for p in param.split(",")]
def nextPermutation(indexes, lists, x, y):
idx = len(indexes)-1