41#include <visp3/core/vpConfig.h>
43#ifdef VISP_HAVE_CATCH2
47#include <visp3/core/vpPoseVector.h>
49#define CATCH_CONFIG_RUNNER
54void checkSize(
const vpPoseVector &pose,
const std::vector<double> &ref)
56 REQUIRE(pose.
size() == 6);
59 REQUIRE(pose.
size() == ref.size());
62void 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()));
70TEST_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()));
82TEST_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;
97TEST_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);
113TEST_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);
124TEST_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);
135TEST_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);
147TEST_CASE(
"vpPoseVector constructor t, tu",
"[vpColVector]")
155 checkSize(pose, ref);
156 checkData(pose, ref);
159TEST_CASE(
"vpPoseVector buildFrom t, tu",
"[vpColVector]")
168 checkSize(pose, ref);
169 checkData(pose, ref);
172TEST_CASE(
"vpPoseVector constructor vpHomogeneousMatrix",
"[vpColVector]")
181 checkSize(pose, ref);
182 checkData(pose, ref);
185TEST_CASE(
"vpPoseVector buildFrom vpHomogeneousMatrix",
"[vpColVector]")
195 checkSize(pose, ref);
196 checkData(pose, ref);
199TEST_CASE(
"vpPoseVector constructor t, R",
"[vpColVector]")
208 checkSize(pose, ref);
209 checkData(pose, ref);
212TEST_CASE(
"vpPoseVector buildFrom t, R",
"[vpColVector]")
222 checkSize(pose, ref);
223 checkData(pose, ref);
226int main(
int argc,
char *argv[])
228 Catch::Session session;
231 session.applyCommandLine(argc, argv);
233 int numFailed = session.run();
243int 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.