Merge pull request #15 from bricerebsamen/stamp_rounding_error
🏁 Thanks! 🏁 `catkin build pcl_conversions -v --make-args run_tests` --- ``` [100%] Built target tests -- run_tests.py: execute commands /home/username/rospcl_ws/devel/lib/pcl_conversions/pcl_conversions-test --gtest_output=xml:/home/username/rospcl_ws/build/pcl_conversions/test_results/pcl_conversions/gtest-pcl_conversions-test.xml [==========] Running 3 tests from 2 test cases. [----------] Global test environment set-up. [----------] 2 tests from PCLConversionTests [ RUN ] PCLConversionTests.imageConversion [ OK ] PCLConversionTests.imageConversion (0 ms) [ RUN ] PCLConversionTests.pointcloud2Conversion [ OK ] PCLConversionTests.pointcloud2Conversion (0 ms) [----------] 2 tests from PCLConversionTests (0 ms total) [----------] 1 test from PCLConversionStamp [ RUN ] PCLConversionStamp.Stamps [ OK ] PCLConversionStamp.Stamps (0 ms) [----------] 1 test from PCLConversionStamp (0 ms total) [----------] Global test environment tear-down [==========] 3 tests from 2 test cases ran. (0 ms total) [ PASSED ] 3 tests. ```
This commit is contained in:
commit
4675fefe36
@ -79,13 +79,13 @@ namespace pcl_conversions {
|
||||
inline
|
||||
void fromPCL(const pcl::uint64_t &pcl_stamp, ros::Time &stamp)
|
||||
{
|
||||
stamp.fromNSec(pcl_stamp * 1e3); // Convert from us to ns
|
||||
stamp.fromNSec(pcl_stamp * 1000ull); // Convert from us to ns
|
||||
}
|
||||
|
||||
inline
|
||||
void toPCL(const ros::Time &stamp, pcl::uint64_t &pcl_stamp)
|
||||
{
|
||||
pcl_stamp = stamp.toNSec() / 1e3; // Convert from ns to us
|
||||
pcl_stamp = stamp.toNSec() / 1000ull; // Convert from ns to us
|
||||
}
|
||||
|
||||
inline
|
||||
|
||||
@ -100,6 +100,49 @@ TEST_F(PCLConversionTests, pointcloud2Conversion) {
|
||||
|
||||
} // namespace
|
||||
|
||||
|
||||
struct StampTestData
|
||||
{
|
||||
const ros::Time stamp_;
|
||||
ros::Time stamp2_;
|
||||
|
||||
explicit StampTestData(const ros::Time &stamp)
|
||||
: stamp_(stamp)
|
||||
{
|
||||
pcl::uint64_t pcl_stamp;
|
||||
pcl_conversions::toPCL(stamp_, pcl_stamp);
|
||||
pcl_conversions::fromPCL(pcl_stamp, stamp2_);
|
||||
}
|
||||
};
|
||||
|
||||
TEST(PCLConversionStamp, Stamps)
|
||||
{
|
||||
{
|
||||
const StampTestData d(ros::Time(1.000001));
|
||||
EXPECT_TRUE(d.stamp_==d.stamp2_);
|
||||
}
|
||||
|
||||
{
|
||||
const StampTestData d(ros::Time(1.999999));
|
||||
EXPECT_TRUE(d.stamp_==d.stamp2_);
|
||||
}
|
||||
|
||||
{
|
||||
const StampTestData d(ros::Time(1.999));
|
||||
EXPECT_TRUE(d.stamp_==d.stamp2_);
|
||||
}
|
||||
|
||||
{
|
||||
const StampTestData d(ros::Time(1423680574, 746000000));
|
||||
EXPECT_TRUE(d.stamp_==d.stamp2_);
|
||||
}
|
||||
|
||||
{
|
||||
const StampTestData d(ros::Time(1423680629, 901000000));
|
||||
EXPECT_TRUE(d.stamp_==d.stamp2_);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
try {
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user