From 6e6559d2073f5131494bfb81d975c6b7b75031b1 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Sat, 3 Jul 2010 13:38:06 +0000 Subject: [PATCH] fixed test crashes after CV_CN_MAX increase. --- modules/core/include/opencv2/core/types_c.h | 21 +- modules/core/src/persistence.cpp | 93 +++++- tests/cv/src/bcameracalibration.cpp | 332 ++++++++++---------- 3 files changed, 256 insertions(+), 190 deletions(-) diff --git a/modules/core/include/opencv2/core/types_c.h b/modules/core/include/opencv2/core/types_c.h index 159a12015..0b5f2acf7 100644 --- a/modules/core/include/opencv2/core/types_c.h +++ b/modules/core/include/opencv2/core/types_c.h @@ -518,7 +518,7 @@ IplConvKernelFP; * Matrix type (CvMat) * \****************************************************************************************/ -#define CV_CN_MAX 1024 +#define CV_CN_MAX 512 #define CV_CN_SHIFT 3 #define CV_DEPTH_MAX (1 << CV_CN_SHIFT) @@ -1428,7 +1428,7 @@ typedef CvContour CvPoint2DSeq; #define CV_IS_SET(set) \ ((set) != NULL && (((CvSeq*)(set))->flags & CV_MAGIC_MASK) == CV_SET_MAGIC_VAL) -#define CV_SEQ_ELTYPE_BITS 9 +#define CV_SEQ_ELTYPE_BITS 12 #define CV_SEQ_ELTYPE_MASK ((1 << CV_SEQ_ELTYPE_BITS) - 1) #define CV_SEQ_ELTYPE_POINT CV_32SC2 /* (x,y) */ @@ -1443,7 +1443,7 @@ typedef CvContour CvPoint2DSeq; #define CV_SEQ_ELTYPE_CONNECTED_COMP 0 /* connected component */ #define CV_SEQ_ELTYPE_POINT3D CV_32FC3 /* (x,y,z) */ -#define CV_SEQ_KIND_BITS 3 +#define CV_SEQ_KIND_BITS 2 #define CV_SEQ_KIND_MASK (((1 << CV_SEQ_KIND_BITS) - 1)<flags & CV_SEQ_FLAG_CLOSED) != 0) -#define CV_IS_SEQ_CONVEX( seq ) (((seq)->flags & CV_SEQ_FLAG_CONVEX) != 0) +#define CV_IS_SEQ_CONVEX( seq ) 0 #define CV_IS_SEQ_HOLE( seq ) (((seq)->flags & CV_SEQ_FLAG_HOLE) != 0) -#define CV_IS_SEQ_SIMPLE( seq ) ((((seq)->flags & CV_SEQ_FLAG_SIMPLE) != 0) || \ - CV_IS_SEQ_CONVEX(seq)) +#define CV_IS_SEQ_SIMPLE( seq ) 1 /* type checking macros */ #define CV_IS_SEQ_POINT_SET( seq ) \ diff --git a/modules/core/src/persistence.cpp b/modules/core/src/persistence.cpp index 5ec63211d..54e27ea6b 100644 --- a/modules/core/src/persistence.cpp +++ b/modules/core/src/persistence.cpp @@ -3937,10 +3937,22 @@ icvWriteSeq( CvFileStorage* fs, const char* name, if( level >= 0 ) cvWriteInt( fs, "level", level ); - sprintf( buf, "%08x", seq->flags ); - cvWriteString( fs, "flags", buf, 1 ); - cvWriteInt( fs, "count", seq->total ); dt = icvGetFormat( seq, "dt", &attr, 0, dt_buf ); + + strcpy(buf, ""); + if( CV_IS_SEQ_CLOSED(seq) ) + strcat(buf, " closed"); + if( CV_IS_SEQ_HOLE(seq) ) + strcat(buf, " hole"); + if( CV_IS_SEQ_CURVE(seq) ) + strcat(buf, " curve"); + if( CV_SEQ_ELTYPE(seq) == 0 && seq->elem_size != 1 ) + strcat(buf, " untyped"); + + cvWriteString( fs, "flags", buf + (buf[0] ? 1 : 0), 1 ); + + cvWriteInt( fs, "count", seq->total ); + cvWriteString( fs, "dt", dt, 0 ); icvWriteHeaderData( fs, seq, &attr, sizeof(CvSeq) ); @@ -4021,9 +4033,49 @@ icvReadSeq( CvFileStorage* fs, CvFileNode* node ) if( !flags_str || total == -1 || !dt ) CV_Error( CV_StsError, "Some of essential sequence attributes are absent" ); - flags = (int)strtol( flags_str, &endptr, 16 ); - if( endptr == flags_str || (flags & CV_MAGIC_MASK) != CV_SEQ_MAGIC_VAL ) - CV_Error( CV_StsError, "The sequence flags are invalid" ); + flags = CV_SEQ_MAGIC_VAL; + + if( isdigit(flags_str[0]) ) + { + const int OLD_SEQ_ELTYPE_BITS = 9; + const int OLD_SEQ_ELTYPE_MASK = (1 << OLD_SEQ_ELTYPE_BITS) - 1; + const int OLD_SEQ_KIND_BITS = 3; + const int OLD_SEQ_KIND_MASK = ((1 << OLD_SEQ_KIND_BITS) - 1) << OLD_SEQ_ELTYPE_BITS; + const int OLD_SEQ_KIND_CURVE = 1 << OLD_SEQ_ELTYPE_BITS; + const int OLD_SEQ_FLAG_SHIFT = OLD_SEQ_KIND_BITS + OLD_SEQ_ELTYPE_BITS; + const int OLD_SEQ_FLAG_CLOSED = 1 << OLD_SEQ_FLAG_SHIFT; + const int OLD_SEQ_FLAG_HOLE = 8 << OLD_SEQ_FLAG_SHIFT; + + int flags0 = (int)strtol( flags_str, &endptr, 16 ); + if( endptr == flags_str || (flags0 & CV_MAGIC_MASK) != CV_SEQ_MAGIC_VAL ) + CV_Error( CV_StsError, "The sequence flags are invalid" ); + if( (flags0 & OLD_SEQ_KIND_MASK) == OLD_SEQ_KIND_CURVE ) + flags |= CV_SEQ_KIND_CURVE; + if( flags0 & OLD_SEQ_FLAG_CLOSED ) + flags |= CV_SEQ_FLAG_CLOSED; + if( flags0 & OLD_SEQ_FLAG_HOLE ) + flags |= CV_SEQ_FLAG_HOLE; + flags |= flags0 & OLD_SEQ_ELTYPE_MASK; + } + else + { + if( strstr(flags_str, "curve") ) + flags |= CV_SEQ_KIND_CURVE; + if( strstr(flags_str, "closed") ) + flags |= CV_SEQ_FLAG_CLOSED; + if( strstr(flags_str, "hole") ) + flags |= CV_SEQ_FLAG_HOLE; + if( !strstr(flags_str, "untyped") ) + { + try + { + flags |= icvDecodeSimpleFormat(dt); + } + catch(...) + { + } + } + } header_dt = cvReadStringByName( fs, node, "header_dt", 0 ); header_node = cvGetFileNodeByName( fs, node, "header_user_data" ); @@ -4217,8 +4269,7 @@ icvWriteGraph( CvFileStorage* fs, const char* name, // write header cvStartWriteStruct( fs, name, CV_NODE_MAP, CV_TYPE_NAME_GRAPH ); - sprintf( buf, "%08x", graph->flags ); - cvWriteString( fs, "flags", buf, 1 ); + cvWriteString(fs, "flags", CV_IS_GRAPH_ORIENTED(graph) ? "oriented" : "", 1); cvWriteInt( fs, "vertex_count", vtx_count ); vtx_dt = icvGetFormat( (CvSeq*)graph, "vertex_dt", @@ -4349,12 +4400,28 @@ icvReadGraph( CvFileStorage* fs, CvFileNode* node ) edge_count = cvReadIntByName( fs, node, "edge_count", -1 ); if( !flags_str || vtx_count == -1 || edge_count == -1 || !edge_dt ) - CV_Error( CV_StsError, "Some of essential sequence attributes are absent" ); + CV_Error( CV_StsError, "Some of essential graph attributes are absent" ); - flags = (int)strtol( flags_str, &endptr, 16 ); - if( endptr == flags_str || - (flags & (CV_SEQ_KIND_MASK|CV_MAGIC_MASK)) != (CV_GRAPH|CV_SET_MAGIC_VAL)) - CV_Error( CV_StsError, "Invalid graph signature" ); + flags = CV_SET_MAGIC_VAL + CV_GRAPH; + + if( isxdigit(flags_str[0]) ) + { + const int OLD_SEQ_ELTYPE_BITS = 9; + const int OLD_SEQ_KIND_BITS = 3; + const int OLD_SEQ_FLAG_SHIFT = OLD_SEQ_KIND_BITS + OLD_SEQ_ELTYPE_BITS; + const int OLD_GRAPH_FLAG_ORIENTED = 1 << OLD_SEQ_FLAG_SHIFT; + + int flags0 = (int)strtol( flags_str, &endptr, 16 ); + if( endptr == flags_str || (flags0 & CV_MAGIC_MASK) != CV_SET_MAGIC_VAL ) + CV_Error( CV_StsError, "The sequence flags are invalid" ); + if( flags0 & OLD_GRAPH_FLAG_ORIENTED ) + flags |= CV_GRAPH_FLAG_ORIENTED; + } + else + { + if( strstr(flags_str, "oriented") ) + flags |= CV_GRAPH_FLAG_ORIENTED; + } header_dt = cvReadStringByName( fs, node, "header_dt", 0 ); header_node = cvGetFileNodeByName( fs, node, "header_user_data" ); diff --git a/tests/cv/src/bcameracalibration.cpp b/tests/cv/src/bcameracalibration.cpp index cfd1801c1..5362f740c 100644 --- a/tests/cv/src/bcameracalibration.cpp +++ b/tests/cv/src/bcameracalibration.cpp @@ -330,7 +330,7 @@ void CV_CameraCalibrationBadArgTest::run( int /* start_from */ ) //} } -//CV_CameraCalibrationBadArgTest camera_calibration_bad_arg_test; +CV_CameraCalibrationBadArgTest camera_calibration_bad_arg_test; class CV_Rodrigues2BadArgTest : public CvBadArgTest @@ -406,11 +406,11 @@ protected: bad_caller = caller; bad_caller.jacobian = &bad_jac_c2; errors += run_test_case( CV_StsUnmatchedFormats, "Bad jacobian format", bad_caller ); - + bad_caller = caller; bad_caller.jacobian = &bad_jac_c3; - errors += run_test_case( CV_StsBadSize, "Bad jacobian format", bad_caller ); - + errors += run_test_case( CV_StsBadSize, "Bad jacobian format", bad_caller ); + Mat bad_src_cpp2(1, 1, CV_32F); CvMat bad_src_c2 = bad_src_cpp2; bad_caller = caller; @@ -439,12 +439,12 @@ protected: dst_cpp.create(3, 1, CV_32F); dst_c = dst_cpp; - Mat bad_dst_cpp5(5, 5, CV_32F); CvMat bad_dst_c5 = bad_dst_cpp5; - + Mat bad_dst_cpp5(5, 5, CV_32F); CvMat bad_dst_c5 = bad_dst_cpp5; + bad_caller = caller; bad_caller.dst = &bad_dst_c5; errors += run_test_case( CV_StsBadSize, "Bad dst format", bad_caller ); - + if (errors) ts->set_failed_test_info(CvTS::FAIL_MISMATCH); @@ -478,17 +478,17 @@ protected: struct C_Caller { - CvMat* objectPoints; - CvMat* r_vec; - CvMat* t_vec; - CvMat* A; - CvMat* distCoeffs; - CvMat* imagePoints; - CvMat* dpdr; - CvMat* dpdt; - CvMat* dpdf; - CvMat* dpdc; - CvMat* dpdk; + CvMat* objectPoints; + CvMat* r_vec; + CvMat* t_vec; + CvMat* A; + CvMat* distCoeffs; + CvMat* imagePoints; + CvMat* dpdr; + CvMat* dpdt; + CvMat* dpdf; + CvMat* dpdc; + CvMat* dpdk; double aspectRatio; void operator()() @@ -504,234 +504,234 @@ protected: memset(&zeros, 0, sizeof(zeros)); C_Caller caller, bad_caller; - CvMat objectPoints_c, r_vec_c, t_vec_c, A_c, distCoeffs_c, imagePoints_c, - dpdr_c, dpdt_c, dpdf_c, dpdc_c, dpdk_c; - - const int n = 10; - - Mat imagePoints_cpp(1, n, CV_32FC2); imagePoints_c = imagePoints_cpp; - - Mat objectPoints_cpp(1, n, CV_32FC3); - randu(objectPoints_cpp, Scalar::all(1), Scalar::all(10)); - objectPoints_c = objectPoints_cpp; - - Mat t_vec_cpp(Mat::zeros(1, 3, CV_32F)); t_vec_c = t_vec_cpp; - Mat r_vec_cpp; - Rodrigues(Mat::eye(3, 3, CV_32F), r_vec_cpp); r_vec_c = r_vec_cpp; - - Mat A_cpp = camMat.clone(); A_c = A_cpp; - Mat distCoeffs_cpp = distCoeffs.clone(); distCoeffs_c = distCoeffs_cpp; - - Mat dpdr_cpp(2*n, 3, CV_32F); dpdr_c = dpdr_cpp; - Mat dpdt_cpp(2*n, 3, CV_32F); dpdt_c = dpdt_cpp; - Mat dpdf_cpp(2*n, 2, CV_32F); dpdf_c = dpdf_cpp; - Mat dpdc_cpp(2*n, 2, CV_32F); dpdc_c = dpdc_cpp; - Mat dpdk_cpp(2*n, 4, CV_32F); dpdk_c = dpdk_cpp; - - caller.aspectRatio = 1.0; - caller.objectPoints = &objectPoints_c; - caller.r_vec = &r_vec_c; - caller.t_vec = &t_vec_c; - caller.A = &A_c; - caller.distCoeffs = &distCoeffs_c; - caller.imagePoints = &imagePoints_c; - caller.dpdr = &dpdr_c; - caller.dpdt = &dpdt_c; - caller.dpdf = &dpdf_c; - caller.dpdc = &dpdc_c; - caller.dpdk = &dpdk_c; + CvMat objectPoints_c, r_vec_c, t_vec_c, A_c, distCoeffs_c, imagePoints_c, + dpdr_c, dpdt_c, dpdf_c, dpdc_c, dpdk_c; + + const int n = 10; + + Mat imagePoints_cpp(1, n, CV_32FC2); imagePoints_c = imagePoints_cpp; + + Mat objectPoints_cpp(1, n, CV_32FC3); + randu(objectPoints_cpp, Scalar::all(1), Scalar::all(10)); + objectPoints_c = objectPoints_cpp; + + Mat t_vec_cpp(Mat::zeros(1, 3, CV_32F)); t_vec_c = t_vec_cpp; + Mat r_vec_cpp; + Rodrigues(Mat::eye(3, 3, CV_32F), r_vec_cpp); r_vec_c = r_vec_cpp; + + Mat A_cpp = camMat.clone(); A_c = A_cpp; + Mat distCoeffs_cpp = distCoeffs.clone(); distCoeffs_c = distCoeffs_cpp; + + Mat dpdr_cpp(2*n, 3, CV_32F); dpdr_c = dpdr_cpp; + Mat dpdt_cpp(2*n, 3, CV_32F); dpdt_c = dpdt_cpp; + Mat dpdf_cpp(2*n, 2, CV_32F); dpdf_c = dpdf_cpp; + Mat dpdc_cpp(2*n, 2, CV_32F); dpdc_c = dpdc_cpp; + Mat dpdk_cpp(2*n, 4, CV_32F); dpdk_c = dpdk_cpp; + + caller.aspectRatio = 1.0; + caller.objectPoints = &objectPoints_c; + caller.r_vec = &r_vec_c; + caller.t_vec = &t_vec_c; + caller.A = &A_c; + caller.distCoeffs = &distCoeffs_c; + caller.imagePoints = &imagePoints_c; + caller.dpdr = &dpdr_c; + caller.dpdt = &dpdt_c; + caller.dpdf = &dpdf_c; + caller.dpdc = &dpdc_c; + caller.dpdk = &dpdk_c; /********************/ int errors = 0; - + bad_caller = caller; bad_caller.objectPoints = 0; - errors += run_test_case( CV_StsBadArg, "Zero objectPoints", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Zero objectPoints", bad_caller ); + bad_caller = caller; bad_caller.r_vec = 0; - errors += run_test_case( CV_StsBadArg, "Zero r_vec", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Zero r_vec", bad_caller ); + bad_caller = caller; bad_caller.t_vec = 0; - errors += run_test_case( CV_StsBadArg, "Zero t_vec", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Zero t_vec", bad_caller ); + bad_caller = caller; bad_caller.A = 0; - errors += run_test_case( CV_StsBadArg, "Zero camMat", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Zero camMat", bad_caller ); + bad_caller = caller; bad_caller.imagePoints = 0; - errors += run_test_case( CV_StsBadArg, "Zero imagePoints", bad_caller ); - - /****************************/ - Mat bad_r_vec_cpp1(r_vec_cpp.size(), CV_32S); CvMat bad_r_vec_c1 = bad_r_vec_cpp1; - Mat bad_r_vec_cpp2(2, 2, CV_32F); CvMat bad_r_vec_c2 = bad_r_vec_cpp2; - Mat bad_r_vec_cpp3(r_vec_cpp.size(), CV_32FC2); CvMat bad_r_vec_c3 = bad_r_vec_cpp3; - + errors += run_test_case( CV_StsBadArg, "Zero imagePoints", bad_caller ); + + /****************************/ + Mat bad_r_vec_cpp1(r_vec_cpp.size(), CV_32S); CvMat bad_r_vec_c1 = bad_r_vec_cpp1; + Mat bad_r_vec_cpp2(2, 2, CV_32F); CvMat bad_r_vec_c2 = bad_r_vec_cpp2; + Mat bad_r_vec_cpp3(r_vec_cpp.size(), CV_32FC2); CvMat bad_r_vec_c3 = bad_r_vec_cpp3; + bad_caller = caller; bad_caller.r_vec = &bad_r_vec_c1; - errors += run_test_case( CV_StsBadArg, "Bad rvec format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad rvec format", bad_caller ); + bad_caller = caller; bad_caller.r_vec = &bad_r_vec_c2; - errors += run_test_case( CV_StsBadArg, "Bad rvec format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad rvec format", bad_caller ); + bad_caller = caller; bad_caller.r_vec = &bad_r_vec_c3; - errors += run_test_case( CV_StsBadArg, "Bad rvec format", bad_caller ); - - /****************************/ - Mat bad_t_vec_cpp1(t_vec_cpp.size(), CV_32S); CvMat bad_t_vec_c1 = bad_t_vec_cpp1; - Mat bad_t_vec_cpp2(2, 2, CV_32F); CvMat bad_t_vec_c2 = bad_t_vec_cpp2; - Mat bad_t_vec_cpp3(1, 1, CV_32FC2); CvMat bad_t_vec_c3 = bad_t_vec_cpp3; - + errors += run_test_case( CV_StsBadArg, "Bad rvec format", bad_caller ); + + /****************************/ + Mat bad_t_vec_cpp1(t_vec_cpp.size(), CV_32S); CvMat bad_t_vec_c1 = bad_t_vec_cpp1; + Mat bad_t_vec_cpp2(2, 2, CV_32F); CvMat bad_t_vec_c2 = bad_t_vec_cpp2; + Mat bad_t_vec_cpp3(1, 1, CV_32FC2); CvMat bad_t_vec_c3 = bad_t_vec_cpp3; + bad_caller = caller; bad_caller.t_vec = &bad_t_vec_c1; - errors += run_test_case( CV_StsBadArg, "Bad tvec format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad tvec format", bad_caller ); + bad_caller = caller; bad_caller.t_vec = &bad_t_vec_c2; - errors += run_test_case( CV_StsBadArg, "Bad tvec format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad tvec format", bad_caller ); + bad_caller = caller; bad_caller.t_vec = &bad_t_vec_c3; - errors += run_test_case( CV_StsBadArg, "Bad tvec format", bad_caller ); - - /****************************/ - Mat bad_A_cpp1(A_cpp.size(), CV_32S); CvMat bad_A_c1 = bad_A_cpp1; - Mat bad_A_cpp2(2, 2, CV_32F); CvMat bad_A_c2 = bad_A_cpp2; - + errors += run_test_case( CV_StsBadArg, "Bad tvec format", bad_caller ); + + /****************************/ + Mat bad_A_cpp1(A_cpp.size(), CV_32S); CvMat bad_A_c1 = bad_A_cpp1; + Mat bad_A_cpp2(2, 2, CV_32F); CvMat bad_A_c2 = bad_A_cpp2; + bad_caller = caller; bad_caller.A = &bad_A_c1; - errors += run_test_case( CV_StsBadArg, "Bad A format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad A format", bad_caller ); + bad_caller = caller; bad_caller.A = &bad_A_c2; - errors += run_test_case( CV_StsBadArg, "Bad A format", bad_caller ); - - /****************************/ - Mat bad_distCoeffs_cpp1(distCoeffs_cpp.size(), CV_32S); CvMat bad_distCoeffs_c1 = bad_distCoeffs_cpp1; - Mat bad_distCoeffs_cpp2(2, 2, CV_32F); CvMat bad_distCoeffs_c2 = bad_distCoeffs_cpp2; - Mat bad_distCoeffs_cpp3(1, 7, CV_32F); CvMat bad_distCoeffs_c3 = bad_distCoeffs_cpp3; - + errors += run_test_case( CV_StsBadArg, "Bad A format", bad_caller ); + + /****************************/ + Mat bad_distCoeffs_cpp1(distCoeffs_cpp.size(), CV_32S); CvMat bad_distCoeffs_c1 = bad_distCoeffs_cpp1; + Mat bad_distCoeffs_cpp2(2, 2, CV_32F); CvMat bad_distCoeffs_c2 = bad_distCoeffs_cpp2; + Mat bad_distCoeffs_cpp3(1, 7, CV_32F); CvMat bad_distCoeffs_c3 = bad_distCoeffs_cpp3; + bad_caller = caller; bad_caller.distCoeffs = &zeros; - errors += run_test_case( CV_StsBadArg, "Bad distCoeffs format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad distCoeffs format", bad_caller ); + bad_caller = caller; bad_caller.distCoeffs = &bad_distCoeffs_c1; - errors += run_test_case( CV_StsBadArg, "Bad distCoeffs format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad distCoeffs format", bad_caller ); + bad_caller = caller; bad_caller.distCoeffs = &bad_distCoeffs_c2; - errors += run_test_case( CV_StsBadArg, "Bad distCoeffs format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad distCoeffs format", bad_caller ); + bad_caller = caller; bad_caller.distCoeffs = &bad_distCoeffs_c3; - errors += run_test_case( CV_StsBadArg, "Bad distCoeffs format", bad_caller ); - - - /****************************/ - Mat bad_dpdr_cpp1(dpdr_cpp.size(), CV_32S); CvMat bad_dpdr_c1 = bad_dpdr_cpp1; - Mat bad_dpdr_cpp2(dpdr_cpp.cols+1, 3, CV_32F); CvMat bad_dpdr_c2 = bad_dpdr_cpp2; - Mat bad_dpdr_cpp3(dpdr_cpp.cols, 7, CV_32F); CvMat bad_dpdr_c3 = bad_dpdr_cpp3; - + errors += run_test_case( CV_StsBadArg, "Bad distCoeffs format", bad_caller ); + + + /****************************/ + Mat bad_dpdr_cpp1(dpdr_cpp.size(), CV_32S); CvMat bad_dpdr_c1 = bad_dpdr_cpp1; + Mat bad_dpdr_cpp2(dpdr_cpp.cols+1, 3, CV_32F); CvMat bad_dpdr_c2 = bad_dpdr_cpp2; + Mat bad_dpdr_cpp3(dpdr_cpp.cols, 7, CV_32F); CvMat bad_dpdr_c3 = bad_dpdr_cpp3; + bad_caller = caller; bad_caller.dpdr = &zeros; - errors += run_test_case( CV_StsBadArg, "Bad dpdr format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdr format", bad_caller ); + bad_caller = caller; bad_caller.dpdr = &bad_dpdr_c1; - errors += run_test_case( CV_StsBadArg, "Bad dpdr format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdr format", bad_caller ); + bad_caller = caller; bad_caller.dpdr = &bad_dpdr_c2; - errors += run_test_case( CV_StsBadArg, "Bad dpdr format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdr format", bad_caller ); + bad_caller = caller; bad_caller.dpdr = &bad_dpdr_c3; - errors += run_test_case( CV_StsBadArg, "Bad dpdr format", bad_caller ); - - /****************************/ - + errors += run_test_case( CV_StsBadArg, "Bad dpdr format", bad_caller ); + + /****************************/ + bad_caller = caller; bad_caller.dpdt = &zeros; - errors += run_test_case( CV_StsBadArg, "Bad dpdt format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdt format", bad_caller ); + bad_caller = caller; bad_caller.dpdt = &bad_dpdr_c1; - errors += run_test_case( CV_StsBadArg, "Bad dpdt format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdt format", bad_caller ); + bad_caller = caller; bad_caller.dpdt = &bad_dpdr_c2; - errors += run_test_case( CV_StsBadArg, "Bad dpdt format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdt format", bad_caller ); + bad_caller = caller; bad_caller.dpdt = &bad_dpdr_c3; - errors += run_test_case( CV_StsBadArg, "Bad dpdt format", bad_caller ); - - /****************************/ - - Mat bad_dpdf_cpp2(dpdr_cpp.cols+1, 2, CV_32F); CvMat bad_dpdf_c2 = bad_dpdf_cpp2; - + errors += run_test_case( CV_StsBadArg, "Bad dpdt format", bad_caller ); + + /****************************/ + + Mat bad_dpdf_cpp2(dpdr_cpp.cols+1, 2, CV_32F); CvMat bad_dpdf_c2 = bad_dpdf_cpp2; + bad_caller = caller; bad_caller.dpdf = &zeros; - errors += run_test_case( CV_StsBadArg, "Bad dpdf format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdf format", bad_caller ); + bad_caller = caller; bad_caller.dpdf = &bad_dpdr_c1; - errors += run_test_case( CV_StsBadArg, "Bad dpdf format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdf format", bad_caller ); + bad_caller = caller; bad_caller.dpdf = &bad_dpdf_c2; - errors += run_test_case( CV_StsBadArg, "Bad dpdf format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdf format", bad_caller ); + bad_caller = caller; bad_caller.dpdf = &bad_dpdr_c3; - errors += run_test_case( CV_StsBadArg, "Bad dpdf format", bad_caller ); - - /****************************/ - + errors += run_test_case( CV_StsBadArg, "Bad dpdf format", bad_caller ); + + /****************************/ + bad_caller = caller; bad_caller.dpdc = &zeros; - errors += run_test_case( CV_StsBadArg, "Bad dpdc format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdc format", bad_caller ); + bad_caller = caller; bad_caller.dpdc = &bad_dpdr_c1; - errors += run_test_case( CV_StsBadArg, "Bad dpdc format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdc format", bad_caller ); + bad_caller = caller; bad_caller.dpdc = &bad_dpdf_c2; - errors += run_test_case( CV_StsBadArg, "Bad dpdc format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdc format", bad_caller ); + bad_caller = caller; bad_caller.dpdc = &bad_dpdr_c3; - errors += run_test_case( CV_StsBadArg, "Bad dpdc format", bad_caller ); - - /****************************/ - + errors += run_test_case( CV_StsBadArg, "Bad dpdc format", bad_caller ); + + /****************************/ + bad_caller = caller; bad_caller.dpdk = &zeros; - errors += run_test_case( CV_StsBadArg, "Bad dpdk format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdk format", bad_caller ); + bad_caller = caller; bad_caller.dpdk = &bad_dpdr_c1; - errors += run_test_case( CV_StsBadArg, "Bad dpdk format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdk format", bad_caller ); + bad_caller = caller; bad_caller.dpdk = &bad_dpdf_c2; - errors += run_test_case( CV_StsBadArg, "Bad dpdk format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdk format", bad_caller ); + bad_caller = caller; bad_caller.dpdk = &bad_dpdr_c3; - errors += run_test_case( CV_StsBadArg, "Bad dpdk format", bad_caller ); - + errors += run_test_case( CV_StsBadArg, "Bad dpdk format", bad_caller ); + bad_caller = caller; bad_caller.distCoeffs = 0; - errors += run_test_case( CV_StsNullPtr, "distCoeffs is NULL while dpdk is not", bad_caller ); - + errors += run_test_case( CV_StsNullPtr, "distCoeffs is NULL while dpdk is not", bad_caller ); + if (errors) ts->set_failed_test_info(CvTS::FAIL_MISMATCH);