1793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#include "perf_precomp.hpp"
2793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
3793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerusing namespace std;
4793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerusing namespace cv;
5793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerusing namespace perf;
6793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerusing std::tr1::make_tuple;
7793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerusing std::tr1::get;
8793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
9793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef std::tr1::tuple<Size, MatType, int> Size_Depth_Channels_t;
10793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef perf::TestBaseWithParam<Size_Depth_Channels_t> Size_Depth_Channels;
11793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
12793ee12c6df9cad3806238d32528c49a3ff9331dNoah PreslerPERF_TEST_P( Size_Depth_Channels, split,
13793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler             testing::Combine
14793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler             (
15793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler                 testing::Values(TYPICAL_MAT_SIZES),
16793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler                 testing::Values(CV_8U, CV_16S, CV_32F, CV_64F),
17793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler                 testing::Values(2, 3, 4)
18793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler             )
19793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler           )
20793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler{
21793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    Size sz = get<0>(GetParam());
22793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    int depth = get<1>(GetParam());
23793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    int channels = get<2>(GetParam());
24793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
25793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    Mat m(sz, CV_MAKETYPE(depth, channels));
26793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    randu(m, 0, 255);
27793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
28793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    vector<Mat> mv;
29793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    int runs = (sz.width <= 640) ? 8 : 1;
30793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    TEST_CYCLE_MULTIRUN(runs) split(m, (vector<Mat>&)mv);
31793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler
32793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler    SANITY_CHECK(mv, 1e-12);
33793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler}
34