41 #include <visp3/core/vpConfig.h>
43 #ifdef VISP_HAVE_CATCH2
47 #include <visp3/core/vpPoseVector.h>
49 #define CATCH_CONFIG_RUNNER
54 void checkSize(
const vpPoseVector &pose,
const std::vector<double> &ref)
56 REQUIRE(pose.
size() == 6);
59 REQUIRE(pose.
size() == ref.size());
62 void checkData(
const vpPoseVector &pose,
const std::vector<double> &ref)
64 for (
unsigned int i = 0; i < pose.
size(); i++) {
65 REQUIRE(pose[i] == Approx(ref[i]).epsilon(std::numeric_limits<double>::epsilon()));
70 TEST_CASE(
"vpPoseVector size",
"[vpColVector]")
73 REQUIRE(pose.
size() == 6);
77 for (
unsigned int i = 0; i < pose.
getRows(); i++) {
78 REQUIRE(pose[i] == Approx(0).epsilon(std::numeric_limits<double>::epsilon()));
82 TEST_CASE(
"vpPoseVector value assignment",
"[vpColVector]")
85 std::vector<double> ref(6);
86 pose[0] = ref[0] = 0.1;
87 pose[1] = ref[1] = 0.2;
88 pose[2] = ref[2] = 0.3;
97 TEST_CASE(
"vpPoseVector constructor",
"[vpColVector]")
99 std::vector<double> ref(6);
107 vpPoseVector pose(ref[0], ref[1], ref[2], ref[3], ref[4], ref[5]);
109 checkSize(pose, ref);
110 checkData(pose, ref);
113 TEST_CASE(
"vpPoseVector copy constructor",
"[vpColVector]")
117 vpPoseVector pose1(ref[0], ref[1], ref[2], ref[3], ref[4], ref[5]);
120 checkSize(pose2, ref);
121 checkData(pose2, ref);
124 TEST_CASE(
"vpPoseVector object assignment",
"[vpColVector]")
128 vpPoseVector pose1(ref[0], ref[1], ref[2], ref[3], ref[4], ref[5]);
131 checkSize(pose2, ref);
132 checkData(pose2, ref);
135 TEST_CASE(
"vpPoseVector set",
"[vpColVector]")
139 vpPoseVector pose1(ref[0], ref[1], ref[2], ref[3], ref[4], ref[5]);
141 pose2.
set(pose1[0], pose1[1], pose1[2], pose1[3], pose1[4], pose1[5]);
143 checkSize(pose2, ref);
144 checkData(pose2, ref);
147 TEST_CASE(
"vpPoseVector constructor t, tu",
"[vpColVector]")
155 checkSize(pose, ref);
156 checkData(pose, ref);
159 TEST_CASE(
"vpPoseVector buildFrom t, tu",
"[vpColVector]")
168 checkSize(pose, ref);
169 checkData(pose, ref);
172 TEST_CASE(
"vpPoseVector constructor vpHomogeneousMatrix",
"[vpColVector]")
181 checkSize(pose, ref);
182 checkData(pose, ref);
185 TEST_CASE(
"vpPoseVector buildFrom vpHomogeneousMatrix",
"[vpColVector]")
195 checkSize(pose, ref);
196 checkData(pose, ref);
199 TEST_CASE(
"vpPoseVector constructor t, R",
"[vpColVector]")
208 checkSize(pose, ref);
209 checkData(pose, ref);
212 TEST_CASE(
"vpPoseVector buildFrom t, R",
"[vpColVector]")
222 checkSize(pose, ref);
223 checkData(pose, ref);
226 int main(
int argc,
char *argv[])
228 Catch::Session session;
231 session.applyCommandLine(argc, argv);
233 int numFailed = session.run();
243 int main() {
return EXIT_SUCCESS; }
unsigned int getCols() const
unsigned int size() const
Return the number of elements of the 2D array.
unsigned int getRows() const
Implementation of an homogeneous matrix and operations on such kind of matrices.
static double rad(double deg)
Implementation of a pose vector and operations on poses.
void set(double tx, double ty, double tz, double tux, double tuy, double tuz)
vpPoseVector buildFrom(double tx, double ty, double tz, double tux, double tuy, double tuz)
Implementation of a rotation matrix and operations on such kind of matrices.
Implementation of a rotation vector as axis-angle minimal representation.
Class that consider the case of a translation vector.