15 #include <gtest/gtest.h>
29 struct LandmarkMapCartesianTest :
public ::testing::Test {
31 Eigen::Vector3d{0.0, 1.0, 2.0}, Eigen::Vector3d{10.0, 11.0, 12.0}};
34 TEST_F(LandmarkMapCartesianTest, SmokeTest) {
38 TEST_F(LandmarkMapCartesianTest, SimpleMapLoading) {
47 ASSERT_TRUE(nearest.has_value());
48 EXPECT_NEAR(0.0, (landmark_10 - *nearest).norm(), 1e-6);
52 const auto nearest = uut.find_nearest_landmark({1.0, 2.0, 3.0}, 1);
53 ASSERT_TRUE(nearest.has_value());
54 EXPECT_NEAR(0.0, (landmark_20 - *nearest).norm(), 1e-6);
58 const auto nearest = uut.find_nearest_landmark({1.0, 2.0, 3.0}, 99);
59 ASSERT_FALSE(nearest.has_value());
63 TEST_F(LandmarkMapCartesianTest, EmptyMap) {
66 ASSERT_FALSE(nearest.has_value());
69 struct LandmarkMapBearingTest :
public ::testing::Test {
71 Eigen::Vector3d{0.0, 1.0, 2.0}, Eigen::Vector3d{10.0, 11.0, 12.0}};
77 {{+9.0, +0.0, +1.0}, 0},
78 {{+0.0, +9.0, +1.0}, 0},
79 {{+0.0, +0.0, +9.0}, 0},
81 {{-9.0, +0.0, +1.0}, 1},
82 {{+0.0, -9.0, +1.0}, 1},
83 {{+0.0, +0.0, -9.0}, 1},
85 {{+0.0, +0.0, -9.0}, 2},
91 TEST_F(LandmarkMapBearingTest, MapLimits) {
92 ASSERT_DOUBLE_EQ(uut.map_limits().min().x(), 0.0);
93 ASSERT_DOUBLE_EQ(uut.map_limits().max().x(), 10.0);
94 ASSERT_DOUBLE_EQ(uut.map_limits().min().y(), 1.0);
95 ASSERT_DOUBLE_EQ(uut.map_limits().max().y(), 11.0);
96 ASSERT_DOUBLE_EQ(uut.map_limits().min().z(), 2.0);
97 ASSERT_DOUBLE_EQ(uut.map_limits().max().z(), 12.0);
100 TEST_F(LandmarkMapBearingTest, TrivialQuery1) {
103 ASSERT_TRUE(nearest.has_value());
104 EXPECT_NEAR(0.0, (*nearest - expected_bearing).norm(), 1e-6);
107 TEST_F(LandmarkMapBearingTest, TrivialQuery2) {
110 ASSERT_TRUE(nearest.has_value());
111 EXPECT_NEAR(0.0, (*nearest - expected_bearing).norm(), 1e-6);
114 TEST_F(LandmarkMapBearingTest, FeatureInTotallyDifferentDirection) {
118 ASSERT_TRUE(nearest.has_value());
119 EXPECT_NEAR(0.0, (*nearest - expected_bearing).norm(), 1e-6);
122 TEST_F(LandmarkMapBearingTest, NoSuchFeature) {
125 ASSERT_FALSE(nearest.has_value());