40 #ifndef PCL_TEST_MACROS 41 #define PCL_TEST_MACROS 64 template <
typename V1,
typename V2>
67 SCOPED_TRACE(
"EXPECT_EQ_VECTORS failed");
68 EXPECT_EQ (v1.size (), v2.size ());
69 size_t length = v1.size ();
70 for (
size_t i = 0; i < length; ++i)
71 EXPECT_EQ (v1[i], v2[i]);
74 template <
typename V1,
typename V2,
typename Scalar>
77 SCOPED_TRACE(
"EXPECT_NEAR_VECTORS failed");
78 EXPECT_EQ (v1.size (), v2.size ());
79 size_t length = v1.size ();
80 for (
size_t i = 0; i < length; ++i)
81 EXPECT_NEAR (v1[i], v2[i], epsilon);
87 template <
typename Po
int1T,
typename Po
int2T>
88 ::testing::AssertionResult
XYZEQ (
const char* expr1,
93 if ((p1).getVector3fMap ().cwiseEqual ((p2).getVector3fMap ()).all ())
94 return ::testing::AssertionSuccess ();
95 return ::testing::AssertionFailure ()
96 <<
"Value of: " << expr2 <<
".getVector3fMap ()" << std::endl
97 <<
" Actual: " << p2.getVector3fMap ().transpose () << std::endl
98 <<
"Expected: " << expr1 <<
".getVector3fMap ()" << std::endl
99 <<
"Which is: " << p1.getVector3fMap ().transpose ();
102 template <
typename Po
int1T,
typename Po
int2T>
103 ::testing::AssertionResult
XYZNear (
const char* expr1,
105 const char* abs_error_expr,
110 const Eigen::Vector3f diff = ((p1).getVector3fMap () -
111 (p2).getVector3fMap ()).cwiseAbs ();
112 if ((diff.array () < abs_error).all ())
113 return ::testing::AssertionSuccess ();
114 return ::testing::AssertionFailure ()
115 <<
"Some of the element-wise differences exceed " << abs_error_expr
116 <<
" (which evaluates to " << abs_error <<
")" << std::endl
117 <<
"Difference: " << diff.transpose () << std::endl
118 <<
" Value of: " << expr2 <<
".getVector3fMap ()" << std::endl
119 <<
" Actual: " << p2.getVector3fMap ().transpose () << std::endl
120 <<
" Expected: " << expr1 <<
".getVector3fMap ()" << std::endl
121 <<
" Which is: " << p1.getVector3fMap ().transpose ();
124 template <
typename Po
int1T,
typename Po
int2T>
125 ::testing::AssertionResult
NormalEQ (
const char* expr1,
130 if ((p1).getNormalVector3fMap ().cwiseEqual ((p2).getNormalVector3fMap ()).all ())
131 return ::testing::AssertionSuccess ();
132 return ::testing::AssertionFailure ()
133 <<
"Value of: " << expr2 <<
".getNormalVector3fMap ()" << std::endl
134 <<
" Actual: " << p2.getNormalVector3fMap ().transpose () << std::endl
135 <<
"Expected: " << expr1 <<
".getNormalVector3fMap ()" << std::endl
136 <<
"Which is: " << p1.getNormalVector3fMap ().transpose ();
139 template <
typename Po
int1T,
typename Po
int2T>
142 const char* abs_error_expr,
147 const Eigen::Vector3f diff = ((p1).getNormalVector3fMap () -
148 (p2).getNormalVector3fMap ()).cwiseAbs ();
149 if ((diff.array () < abs_error).all ())
150 return ::testing::AssertionSuccess ();
151 return ::testing::AssertionFailure ()
152 <<
"Some of the element-wise differences exceed " << abs_error_expr
153 <<
" (which evaluates to " << abs_error <<
")" << std::endl
154 <<
"Difference: " << diff.transpose () << std::endl
155 <<
" Value of: " << expr2 <<
".getNormalVector3fMap ()" << std::endl
156 <<
" Actual: " << p2.getNormalVector3fMap ().transpose () << std::endl
157 <<
" Expected: " << expr1 <<
".getNormalVector3fMap ()" << std::endl
158 <<
" Which is: " << p1.getNormalVector3fMap ().transpose ();
161 template <
typename Po
int1T,
typename Po
int2T>
162 ::testing::AssertionResult
RGBEQ (
const char* expr1,
167 if ((p1).getRGBVector3i ().cwiseEqual ((p2).getRGBVector3i ()).all ())
168 return ::testing::AssertionSuccess ();
169 return ::testing::AssertionFailure ()
170 <<
"Value of: " << expr2 <<
".getRGBVector3i ()" << std::endl
171 <<
" Actual: " << p2.getRGBVector3i ().transpose () << std::endl
172 <<
"Expected: " << expr1 <<
".getRGBVector3i ()" << std::endl
173 <<
"Which is: " << p1.getRGBVector3i ().transpose ();
176 template <
typename Po
int1T,
typename Po
int2T>
177 ::testing::AssertionResult
RGBAEQ (
const char* expr1,
182 if ((p1).getRGBAVector4i ().cwiseEqual ((p2).getRGBAVector4i ()).all ())
183 return ::testing::AssertionSuccess ();
184 return ::testing::AssertionFailure ()
185 <<
"Value of: " << expr2 <<
".getRGBAVector4i ()" << std::endl
186 <<
" Actual: " << p2.getRGBAVector4i ().transpose () << std::endl
187 <<
"Expected: " << expr1 <<
".getRGBAVector4i ()" << std::endl
188 <<
"Which is: " << p1.getRGBAVector4i ().transpose ();
199 #define EXPECT_XYZ_EQ(expected, actual) \ 200 EXPECT_PRED_FORMAT2(::pcl::test::internal::XYZEQ, \ 201 (expected), (actual)) 205 #define ASSERT_XYZ_EQ(expected, actual) \ 206 ASSERT_PRED_FORMAT2(::pcl::test::internal::XYZEQ, \ 207 (expected), (actual)) 211 #define EXPECT_XYZ_NEAR(expected, actual, abs_error) \ 212 EXPECT_PRED_FORMAT3(::pcl::test::internal::XYZNear, \ 213 (expected), (actual), abs_error) 217 #define ASSERT_XYZ_NEAR(expected, actual, abs_error) \ 218 EXPECT_PRED_FORMAT3(::pcl::test::internal::XYZNear, \ 219 (expected), (actual), abs_error) 223 #define EXPECT_NORMAL_EQ(expected, actual) \ 224 EXPECT_PRED_FORMAT2(::pcl::test::internal::NormalEQ, \ 225 (expected), (actual)) 229 #define ASSERT_NORMAL_EQ(expected, actual) \ 230 ASSERT_PRED_FORMAT2(::pcl::test::internal::NormalEQ, \ 231 (expected), (actual)) 236 #define EXPECT_NORMAL_NEAR(expected, actual, abs_error) \ 237 EXPECT_PRED_FORMAT3(::pcl::test::internal::NormalNear, \ 238 (expected), (actual), abs_error) 243 #define ASSERT_NORMAL_NEAR(expected, actual, abs_error) \ 244 EXPECT_PRED_FORMAT3(::pcl::test::internal::NormalNear, \ 245 (expected), (actual), abs_error) 249 #define EXPECT_RGB_EQ(expected, actual) \ 250 EXPECT_PRED_FORMAT2(::pcl::test::internal::RGBEQ, \ 251 (expected), (actual)) 255 #define ASSERT_RGB_EQ(expected, actual) \ 256 ASSERT_PRED_FORMAT2(::pcl::test::internal::RGBEQ, \ 257 (expected), (actual)) 261 #define EXPECT_RGBA_EQ(expected, actual) \ 262 EXPECT_PRED_FORMAT2(::pcl::test::internal::RGBAEQ, \ 263 (expected), (actual)) 267 #define ASSERT_RGBA_EQ(expected, actual) \ 268 ASSERT_PRED_FORMAT2(::pcl::test::internal::RGBAEQ, \ 269 (expected), (actual)) ::testing::AssertionResult NormalNear(const char *expr1, const char *expr2, const char *abs_error_expr, const Point1T &p1, const Point2T &p2, double abs_error)
::testing::AssertionResult RGBAEQ(const char *expr1, const char *expr2, const Point1T &p1, const Point2T &p2)
void EXPECT_EQ_VECTORS(const V1 &v1, const V2 &v2)
::testing::AssertionResult XYZEQ(const char *expr1, const char *expr2, const Point1T &p1, const Point2T &p2)
void EXPECT_NEAR_VECTORS(const V1 &v1, const V2 &v2, const Scalar &epsilon)
::testing::AssertionResult RGBEQ(const char *expr1, const char *expr2, const Point1T &p1, const Point2T &p2)
::testing::AssertionResult NormalEQ(const char *expr1, const char *expr2, const Point1T &p1, const Point2T &p2)
::testing::AssertionResult XYZNear(const char *expr1, const char *expr2, const char *abs_error_expr, const Point1T &p1, const Point2T &p2, double abs_error)