fixed test crashes after CV_CN_MAX increase.

This commit is contained in:
Vadim Pisarevsky 2010-07-03 13:38:06 +00:00
parent bce9f54152
commit 6e6559d207
3 changed files with 256 additions and 190 deletions

View File

@ -518,7 +518,7 @@ IplConvKernelFP;
* Matrix type (CvMat) * * Matrix type (CvMat) *
\****************************************************************************************/ \****************************************************************************************/
#define CV_CN_MAX 1024 #define CV_CN_MAX 512
#define CV_CN_SHIFT 3 #define CV_CN_SHIFT 3
#define CV_DEPTH_MAX (1 << CV_CN_SHIFT) #define CV_DEPTH_MAX (1 << CV_CN_SHIFT)
@ -1428,7 +1428,7 @@ typedef CvContour CvPoint2DSeq;
#define CV_IS_SET(set) \ #define CV_IS_SET(set) \
((set) != NULL && (((CvSeq*)(set))->flags & CV_MAGIC_MASK) == CV_SET_MAGIC_VAL) ((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_MASK ((1 << CV_SEQ_ELTYPE_BITS) - 1)
#define CV_SEQ_ELTYPE_POINT CV_32SC2 /* (x,y) */ #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_CONNECTED_COMP 0 /* connected component */
#define CV_SEQ_ELTYPE_POINT3D CV_32FC3 /* (x,y,z) */ #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)<<CV_SEQ_ELTYPE_BITS) #define CV_SEQ_KIND_MASK (((1 << CV_SEQ_KIND_BITS) - 1)<<CV_SEQ_ELTYPE_BITS)
/* types of sequences */ /* types of sequences */
@ -1452,16 +1452,16 @@ typedef CvContour CvPoint2DSeq;
#define CV_SEQ_KIND_BIN_TREE (2 << CV_SEQ_ELTYPE_BITS) #define CV_SEQ_KIND_BIN_TREE (2 << CV_SEQ_ELTYPE_BITS)
/* types of sparse sequences (sets) */ /* types of sparse sequences (sets) */
#define CV_SEQ_KIND_GRAPH (3 << CV_SEQ_ELTYPE_BITS) #define CV_SEQ_KIND_GRAPH (1 << CV_SEQ_ELTYPE_BITS)
#define CV_SEQ_KIND_SUBDIV2D (4 << CV_SEQ_ELTYPE_BITS) #define CV_SEQ_KIND_SUBDIV2D (2 << CV_SEQ_ELTYPE_BITS)
#define CV_SEQ_FLAG_SHIFT (CV_SEQ_KIND_BITS + CV_SEQ_ELTYPE_BITS) #define CV_SEQ_FLAG_SHIFT (CV_SEQ_KIND_BITS + CV_SEQ_ELTYPE_BITS)
/* flags for curves */ /* flags for curves */
#define CV_SEQ_FLAG_CLOSED (1 << CV_SEQ_FLAG_SHIFT) #define CV_SEQ_FLAG_CLOSED (1 << CV_SEQ_FLAG_SHIFT)
#define CV_SEQ_FLAG_SIMPLE (2 << CV_SEQ_FLAG_SHIFT) #define CV_SEQ_FLAG_SIMPLE (0 << CV_SEQ_FLAG_SHIFT)
#define CV_SEQ_FLAG_CONVEX (4 << CV_SEQ_FLAG_SHIFT) #define CV_SEQ_FLAG_CONVEX (0 << CV_SEQ_FLAG_SHIFT)
#define CV_SEQ_FLAG_HOLE (8 << CV_SEQ_FLAG_SHIFT) #define CV_SEQ_FLAG_HOLE (2 << CV_SEQ_FLAG_SHIFT)
/* flags for graphs */ /* flags for graphs */
#define CV_GRAPH_FLAG_ORIENTED (1 << CV_SEQ_FLAG_SHIFT) #define CV_GRAPH_FLAG_ORIENTED (1 << CV_SEQ_FLAG_SHIFT)
@ -1499,10 +1499,9 @@ typedef CvContour CvPoint2DSeq;
#define CV_IS_SEQ_CURVE( seq ) (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE) #define CV_IS_SEQ_CURVE( seq ) (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE)
#define CV_IS_SEQ_CLOSED( seq ) (((seq)->flags & CV_SEQ_FLAG_CLOSED) != 0) #define CV_IS_SEQ_CLOSED( seq ) (((seq)->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_HOLE( seq ) (((seq)->flags & CV_SEQ_FLAG_HOLE) != 0)
#define CV_IS_SEQ_SIMPLE( seq ) ((((seq)->flags & CV_SEQ_FLAG_SIMPLE) != 0) || \ #define CV_IS_SEQ_SIMPLE( seq ) 1
CV_IS_SEQ_CONVEX(seq))
/* type checking macros */ /* type checking macros */
#define CV_IS_SEQ_POINT_SET( seq ) \ #define CV_IS_SEQ_POINT_SET( seq ) \

View File

@ -3937,10 +3937,22 @@ icvWriteSeq( CvFileStorage* fs, const char* name,
if( level >= 0 ) if( level >= 0 )
cvWriteInt( fs, "level", level ); 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 ); 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 ); cvWriteString( fs, "dt", dt, 0 );
icvWriteHeaderData( fs, seq, &attr, sizeof(CvSeq) ); icvWriteHeaderData( fs, seq, &attr, sizeof(CvSeq) );
@ -4021,9 +4033,49 @@ icvReadSeq( CvFileStorage* fs, CvFileNode* node )
if( !flags_str || total == -1 || !dt ) if( !flags_str || total == -1 || !dt )
CV_Error( CV_StsError, "Some of essential sequence attributes are absent" ); CV_Error( CV_StsError, "Some of essential sequence attributes are absent" );
flags = (int)strtol( flags_str, &endptr, 16 ); flags = CV_SEQ_MAGIC_VAL;
if( endptr == flags_str || (flags & CV_MAGIC_MASK) != CV_SEQ_MAGIC_VAL )
CV_Error( CV_StsError, "The sequence flags are invalid" ); 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_dt = cvReadStringByName( fs, node, "header_dt", 0 );
header_node = cvGetFileNodeByName( fs, node, "header_user_data" ); header_node = cvGetFileNodeByName( fs, node, "header_user_data" );
@ -4217,8 +4269,7 @@ icvWriteGraph( CvFileStorage* fs, const char* name,
// write header // write header
cvStartWriteStruct( fs, name, CV_NODE_MAP, CV_TYPE_NAME_GRAPH ); cvStartWriteStruct( fs, name, CV_NODE_MAP, CV_TYPE_NAME_GRAPH );
sprintf( buf, "%08x", graph->flags ); cvWriteString(fs, "flags", CV_IS_GRAPH_ORIENTED(graph) ? "oriented" : "", 1);
cvWriteString( fs, "flags", buf, 1 );
cvWriteInt( fs, "vertex_count", vtx_count ); cvWriteInt( fs, "vertex_count", vtx_count );
vtx_dt = icvGetFormat( (CvSeq*)graph, "vertex_dt", vtx_dt = icvGetFormat( (CvSeq*)graph, "vertex_dt",
@ -4349,12 +4400,28 @@ icvReadGraph( CvFileStorage* fs, CvFileNode* node )
edge_count = cvReadIntByName( fs, node, "edge_count", -1 ); edge_count = cvReadIntByName( fs, node, "edge_count", -1 );
if( !flags_str || vtx_count == -1 || edge_count == -1 || !edge_dt ) 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 ); flags = CV_SET_MAGIC_VAL + CV_GRAPH;
if( endptr == flags_str ||
(flags & (CV_SEQ_KIND_MASK|CV_MAGIC_MASK)) != (CV_GRAPH|CV_SET_MAGIC_VAL)) if( isxdigit(flags_str[0]) )
CV_Error( CV_StsError, "Invalid graph signature" ); {
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_dt = cvReadStringByName( fs, node, "header_dt", 0 );
header_node = cvGetFileNodeByName( fs, node, "header_user_data" ); header_node = cvGetFileNodeByName( fs, node, "header_user_data" );

View File

@ -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 class CV_Rodrigues2BadArgTest : public CvBadArgTest
@ -406,11 +406,11 @@ protected:
bad_caller = caller; bad_caller = caller;
bad_caller.jacobian = &bad_jac_c2; bad_caller.jacobian = &bad_jac_c2;
errors += run_test_case( CV_StsUnmatchedFormats, "Bad jacobian format", bad_caller ); errors += run_test_case( CV_StsUnmatchedFormats, "Bad jacobian format", bad_caller );
bad_caller = caller; bad_caller = caller;
bad_caller.jacobian = &bad_jac_c3; 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; Mat bad_src_cpp2(1, 1, CV_32F); CvMat bad_src_c2 = bad_src_cpp2;
bad_caller = caller; bad_caller = caller;
@ -439,12 +439,12 @@ protected:
dst_cpp.create(3, 1, CV_32F); dst_c = dst_cpp; 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 = caller;
bad_caller.dst = &bad_dst_c5; bad_caller.dst = &bad_dst_c5;
errors += run_test_case( CV_StsBadSize, "Bad dst format", bad_caller ); errors += run_test_case( CV_StsBadSize, "Bad dst format", bad_caller );
if (errors) if (errors)
ts->set_failed_test_info(CvTS::FAIL_MISMATCH); ts->set_failed_test_info(CvTS::FAIL_MISMATCH);
@ -478,17 +478,17 @@ protected:
struct C_Caller struct C_Caller
{ {
CvMat* objectPoints; CvMat* objectPoints;
CvMat* r_vec; CvMat* r_vec;
CvMat* t_vec; CvMat* t_vec;
CvMat* A; CvMat* A;
CvMat* distCoeffs; CvMat* distCoeffs;
CvMat* imagePoints; CvMat* imagePoints;
CvMat* dpdr; CvMat* dpdr;
CvMat* dpdt; CvMat* dpdt;
CvMat* dpdf; CvMat* dpdf;
CvMat* dpdc; CvMat* dpdc;
CvMat* dpdk; CvMat* dpdk;
double aspectRatio; double aspectRatio;
void operator()() void operator()()
@ -504,234 +504,234 @@ protected:
memset(&zeros, 0, sizeof(zeros)); memset(&zeros, 0, sizeof(zeros));
C_Caller caller, bad_caller; C_Caller caller, bad_caller;
CvMat objectPoints_c, r_vec_c, t_vec_c, A_c, distCoeffs_c, imagePoints_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; dpdr_c, dpdt_c, dpdf_c, dpdc_c, dpdk_c;
const int n = 10; const int n = 10;
Mat imagePoints_cpp(1, n, CV_32FC2); imagePoints_c = imagePoints_cpp; Mat imagePoints_cpp(1, n, CV_32FC2); imagePoints_c = imagePoints_cpp;
Mat objectPoints_cpp(1, n, CV_32FC3); Mat objectPoints_cpp(1, n, CV_32FC3);
randu(objectPoints_cpp, Scalar::all(1), Scalar::all(10)); randu(objectPoints_cpp, Scalar::all(1), Scalar::all(10));
objectPoints_c = objectPoints_cpp; objectPoints_c = objectPoints_cpp;
Mat t_vec_cpp(Mat::zeros(1, 3, CV_32F)); t_vec_c = t_vec_cpp; Mat t_vec_cpp(Mat::zeros(1, 3, CV_32F)); t_vec_c = t_vec_cpp;
Mat r_vec_cpp; Mat r_vec_cpp;
Rodrigues(Mat::eye(3, 3, CV_32F), r_vec_cpp); r_vec_c = 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 A_cpp = camMat.clone(); A_c = A_cpp;
Mat distCoeffs_cpp = distCoeffs.clone(); distCoeffs_c = distCoeffs_cpp; Mat distCoeffs_cpp = distCoeffs.clone(); distCoeffs_c = distCoeffs_cpp;
Mat dpdr_cpp(2*n, 3, CV_32F); dpdr_c = dpdr_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 dpdt_cpp(2*n, 3, CV_32F); dpdt_c = dpdt_cpp;
Mat dpdf_cpp(2*n, 2, CV_32F); dpdf_c = dpdf_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 dpdc_cpp(2*n, 2, CV_32F); dpdc_c = dpdc_cpp;
Mat dpdk_cpp(2*n, 4, CV_32F); dpdk_c = dpdk_cpp; Mat dpdk_cpp(2*n, 4, CV_32F); dpdk_c = dpdk_cpp;
caller.aspectRatio = 1.0; caller.aspectRatio = 1.0;
caller.objectPoints = &objectPoints_c; caller.objectPoints = &objectPoints_c;
caller.r_vec = &r_vec_c; caller.r_vec = &r_vec_c;
caller.t_vec = &t_vec_c; caller.t_vec = &t_vec_c;
caller.A = &A_c; caller.A = &A_c;
caller.distCoeffs = &distCoeffs_c; caller.distCoeffs = &distCoeffs_c;
caller.imagePoints = &imagePoints_c; caller.imagePoints = &imagePoints_c;
caller.dpdr = &dpdr_c; caller.dpdr = &dpdr_c;
caller.dpdt = &dpdt_c; caller.dpdt = &dpdt_c;
caller.dpdf = &dpdf_c; caller.dpdf = &dpdf_c;
caller.dpdc = &dpdc_c; caller.dpdc = &dpdc_c;
caller.dpdk = &dpdk_c; caller.dpdk = &dpdk_c;
/********************/ /********************/
int errors = 0; int errors = 0;
bad_caller = caller; bad_caller = caller;
bad_caller.objectPoints = 0; 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 = caller;
bad_caller.r_vec = 0; 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 = caller;
bad_caller.t_vec = 0; 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 = caller;
bad_caller.A = 0; 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 = caller;
bad_caller.imagePoints = 0; bad_caller.imagePoints = 0;
errors += run_test_case( CV_StsBadArg, "Zero imagePoints", bad_caller ); 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_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_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; 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 = caller;
bad_caller.r_vec = &bad_r_vec_c1; 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 = caller;
bad_caller.r_vec = &bad_r_vec_c2; 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 = caller;
bad_caller.r_vec = &bad_r_vec_c3; bad_caller.r_vec = &bad_r_vec_c3;
errors += run_test_case( CV_StsBadArg, "Bad rvec format", bad_caller ); 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_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_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; Mat bad_t_vec_cpp3(1, 1, CV_32FC2); CvMat bad_t_vec_c3 = bad_t_vec_cpp3;
bad_caller = caller; bad_caller = caller;
bad_caller.t_vec = &bad_t_vec_c1; 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 = caller;
bad_caller.t_vec = &bad_t_vec_c2; 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 = caller;
bad_caller.t_vec = &bad_t_vec_c3; bad_caller.t_vec = &bad_t_vec_c3;
errors += run_test_case( CV_StsBadArg, "Bad tvec format", bad_caller ); 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_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; Mat bad_A_cpp2(2, 2, CV_32F); CvMat bad_A_c2 = bad_A_cpp2;
bad_caller = caller; bad_caller = caller;
bad_caller.A = &bad_A_c1; 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 = caller;
bad_caller.A = &bad_A_c2; bad_caller.A = &bad_A_c2;
errors += run_test_case( CV_StsBadArg, "Bad A format", bad_caller ); 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_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_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; Mat bad_distCoeffs_cpp3(1, 7, CV_32F); CvMat bad_distCoeffs_c3 = bad_distCoeffs_cpp3;
bad_caller = caller; bad_caller = caller;
bad_caller.distCoeffs = &zeros; 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 = caller;
bad_caller.distCoeffs = &bad_distCoeffs_c1; 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 = caller;
bad_caller.distCoeffs = &bad_distCoeffs_c2; 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 = caller;
bad_caller.distCoeffs = &bad_distCoeffs_c3; bad_caller.distCoeffs = &bad_distCoeffs_c3;
errors += run_test_case( CV_StsBadArg, "Bad distCoeffs format", bad_caller ); 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_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_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; Mat bad_dpdr_cpp3(dpdr_cpp.cols, 7, CV_32F); CvMat bad_dpdr_c3 = bad_dpdr_cpp3;
bad_caller = caller; bad_caller = caller;
bad_caller.dpdr = &zeros; 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 = caller;
bad_caller.dpdr = &bad_dpdr_c1; 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 = caller;
bad_caller.dpdr = &bad_dpdr_c2; 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 = caller;
bad_caller.dpdr = &bad_dpdr_c3; 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 = caller;
bad_caller.dpdt = &zeros; 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 = caller;
bad_caller.dpdt = &bad_dpdr_c1; 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 = caller;
bad_caller.dpdt = &bad_dpdr_c2; 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 = caller;
bad_caller.dpdt = &bad_dpdr_c3; bad_caller.dpdt = &bad_dpdr_c3;
errors += run_test_case( CV_StsBadArg, "Bad dpdt format", bad_caller ); 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; Mat bad_dpdf_cpp2(dpdr_cpp.cols+1, 2, CV_32F); CvMat bad_dpdf_c2 = bad_dpdf_cpp2;
bad_caller = caller; bad_caller = caller;
bad_caller.dpdf = &zeros; 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 = caller;
bad_caller.dpdf = &bad_dpdr_c1; 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 = caller;
bad_caller.dpdf = &bad_dpdf_c2; 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 = caller;
bad_caller.dpdf = &bad_dpdr_c3; 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 = caller;
bad_caller.dpdc = &zeros; 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 = caller;
bad_caller.dpdc = &bad_dpdr_c1; 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 = caller;
bad_caller.dpdc = &bad_dpdf_c2; 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 = caller;
bad_caller.dpdc = &bad_dpdr_c3; 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 = caller;
bad_caller.dpdk = &zeros; 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 = caller;
bad_caller.dpdk = &bad_dpdr_c1; 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 = caller;
bad_caller.dpdk = &bad_dpdf_c2; 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 = caller;
bad_caller.dpdk = &bad_dpdr_c3; 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 = caller;
bad_caller.distCoeffs = 0; 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) if (errors)
ts->set_failed_test_info(CvTS::FAIL_MISMATCH); ts->set_failed_test_info(CvTS::FAIL_MISMATCH);