From 2c572253700a4353efbe33b9982cb12affd888c7 Mon Sep 17 00:00:00 2001 From: Brice Rebsamen Date: Wed, 11 Feb 2015 11:29:33 -0800 Subject: [PATCH] Added a test for rounding errors in stamp conversion for some values the test fails. This is because of rounding errors. See #14. --- test/test_pcl_conversions.cpp | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/test/test_pcl_conversions.cpp b/test/test_pcl_conversions.cpp index ba048763..c07720a7 100644 --- a/test/test_pcl_conversions.cpp +++ b/test/test_pcl_conversions.cpp @@ -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);