section_test.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #include <gtest/gtest.h>
  2. #include <rs_driver/driver/decoder/section.hpp>
  3. using namespace robosense::lidar;
  4. TEST(TestAzimuthSection, ctorFull)
  5. {
  6. AzimuthSection sec(0, 36000);
  7. ASSERT_TRUE(sec.in(0));
  8. ASSERT_TRUE(sec.in(10));
  9. ASSERT_TRUE(sec.in(36000));
  10. }
  11. TEST(TestAzimuthSection, ctor)
  12. {
  13. AzimuthSection sec(10, 20);
  14. ASSERT_EQ(sec.start_, 10);
  15. ASSERT_EQ(sec.end_, 20);
  16. ASSERT_FALSE(sec.in(5));
  17. ASSERT_TRUE(sec.in(10));
  18. ASSERT_TRUE(sec.in(15));
  19. ASSERT_FALSE(sec.in(20));
  20. ASSERT_FALSE(sec.in(25));
  21. }
  22. TEST(TestAzimuthSection, ctorCrossZero)
  23. {
  24. AzimuthSection sec(35000, 10);
  25. ASSERT_EQ(sec.start_, 35000);
  26. ASSERT_EQ(sec.end_, 10);
  27. ASSERT_FALSE(sec.in(34999));
  28. ASSERT_TRUE(sec.in(35000));
  29. ASSERT_TRUE(sec.in(0));
  30. ASSERT_FALSE(sec.in(10));
  31. ASSERT_FALSE(sec.in(15));
  32. }
  33. TEST(TestAzimuthSection, ctorBeyondRound)
  34. {
  35. AzimuthSection sec(36100, 36200);
  36. ASSERT_EQ(sec.start_, 100);
  37. ASSERT_EQ(sec.end_, 200);
  38. }
  39. TEST(TestDistanceSection, ctor)
  40. {
  41. DistanceSection sec(0.5, 200, 0.75, 150);
  42. ASSERT_EQ(sec.min_, 0.75);
  43. ASSERT_EQ(sec.max_, 150);
  44. ASSERT_FALSE(sec.in(0.45));
  45. ASSERT_TRUE(sec.in(0.75));
  46. ASSERT_TRUE(sec.in(0.8));
  47. ASSERT_TRUE(sec.in(150));
  48. ASSERT_FALSE(sec.in(150.5));
  49. }
  50. TEST(TestDistanceSection, ctorZeroUserDistance)
  51. {
  52. DistanceSection sec(0.5, 200, 0.0, 0.0);
  53. ASSERT_EQ(sec.min_, 0.5);
  54. ASSERT_EQ(sec.max_, 200);
  55. }
  56. TEST(TestDistanceSection, ctorNegtiveUserDistance)
  57. {
  58. DistanceSection sec(0.5, 200, -0.1, -0.2);
  59. ASSERT_EQ(sec.min_, 0.5);
  60. ASSERT_EQ(sec.max_, 200);
  61. }