解决编译问题

This commit is contained in:
Tian jianyong 2024-12-20 16:49:15 +08:00
parent 1c318f6e3c
commit 7f551e28ae
3 changed files with 13 additions and 13 deletions

View File

@ -110,7 +110,7 @@ if(EXISTS "${CMAKE_SOURCE_DIR}/tests")
FetchContent_MakeAvailable(googletest)
else()
# CentOS 使 gtest
find_package(GTest REQUIRED)
find_package(GTest 1.8 REQUIRED)
endif()
enable_testing()

View File

@ -9,7 +9,7 @@
class MockControllableVehicles : public ControllableVehicles {
public:
MockControllableVehicles() : ControllableVehicles("") {}
MOCK_METHOD(bool, isControllable, (const std::string& vehicleNo), (const));
MOCK_CONST_METHOD1(isControllable, bool(const std::string& vehicleNo));
};
// Mock AirportBounds 类
@ -33,7 +33,7 @@ public:
system_config.collision_detection.prediction.time_window = 30.0; // 设置预测时间窗口为30秒
}
MOCK_METHOD(AreaType, getAreaType, (const Vector2D& position), (const));
MOCK_CONST_METHOD1(getAreaType, AreaType(const Vector2D& position));
const AreaConfig& getAreaConfig(AreaType type) const override {
auto it = areaConfigs_.find(type);
@ -165,7 +165,7 @@ TEST_F(BasicCollisionTest, ParallelMotion) {
auto result = detector_->checkCollision(v1, v2, 30.0);
EXPECT_FALSE(result.willCollide) << "平行运动且距离大于碰撞半径的物体不应该检测为碰";
EXPECT_FALSE(result.willCollide) << "平行运动且距离大于碰撞半径的物体不应该检测为碰<EFBFBD><EFBFBD>";
EXPECT_EQ(result.type, CollisionType::PARALLEL) << "应该识别为平行运动";
// 增加更多验证
@ -195,7 +195,7 @@ TEST_F(BasicCollisionTest, CrossingPaths) {
// 添加航向角度差的调试日志
double angle_diff = std::abs(v1.heading - v2.heading);
Logger::debug("航向<EFBFBD><EFBFBD><EFBFBD>度差检查:");
Logger::debug("航向度差检查:");
Logger::debug("v1 航向: " + std::to_string(v1.heading));
Logger::debug("v2 航向: " + std::to_string(v2.heading));
Logger::debug("航向角度差: " + std::to_string(angle_diff));
@ -401,7 +401,7 @@ TEST_F(BasicCollisionTest, QN002AircraftCrossing) {
// 记录详细的测试信息
Logger::debug("QN002-AC001 碰撞测试结果:");
Logger::debug("类型: ", static_cast<int>(result.type));
Logger::debug("<EFBFBD><EFBFBD>类型: ", static_cast<int>(result.type));
Logger::debug("最小距离: ", result.minDistance, "m");
Logger::debug("碰撞时间: ", result.timeToCollision, "s");
Logger::debug("碰撞点: (", result.collisionPoint.x, ",", result.collisionPoint.y, ")");
@ -460,7 +460,7 @@ TEST_F(BasicCollisionTest, CrossingBeforeAndAfter) {
Logger::debug("无人车位置: (", vehicle.position.x, ",", vehicle.position.y, ")");
Logger::debug("交叉点位置: (", crossPoint.x, ",", crossPoint.y, ")");
ASSERT_FALSE(risks.empty()) << "交叉前应该检测到撞风险";
ASSERT_FALSE(risks.empty()) << "交叉前应该检测到<EFBFBD><EFBFBD>撞风险";
EXPECT_EQ(risks[0].level, RiskLevel::WARNING) << "交叉前应该是预警级别";
// 2. 测试交叉过程中
@ -477,7 +477,7 @@ TEST_F(BasicCollisionTest, CrossingBeforeAndAfter) {
risks = detector_->detectCollisions();
// 记录详细的测试信息
Logger::debug("交叉过程碰撞检测:");
Logger::debug("交叉过程<EFBFBD><EFBFBD>碰撞检测:");
Logger::debug("航空器位置: (", aircraft.position.x, ",", aircraft.position.y, ")");
Logger::debug("无人车位置: (", vehicle.position.x, ",", vehicle.position.y, ")");
@ -504,7 +504,7 @@ TEST_F(BasicCollisionTest, CrossingBeforeAndAfter) {
EXPECT_TRUE(risks.empty()) << "航空器通过远离安全距离后,应该解除冲突";
// 4. 测试无车继续运动
// 4. 测试无<EFBFBD><EFBFBD><EFBFBD>车继续运动
// 无人车向北移动到交叉点
vehicle.position = {crossPoint.x, crossPoint.y};

View File

@ -11,7 +11,7 @@
class MockControllableVehicles : public ControllableVehicles {
public:
MockControllableVehicles() : ControllableVehicles("") {} // 使用空字符串,避免加载实际配置
MOCK_METHOD(bool, isControllable, (const std::string& vehicleNo), (const));
MOCK_CONST_METHOD1(isControllable, bool(const std::string& vehicleNo));
};
// Mock AirportBounds 类
@ -31,7 +31,7 @@ public:
areaConfigs_[AreaType::TEST_ZONE] = config;
}
MOCK_METHOD(AreaType, getAreaType, (const Vector2D& position), (const));
MOCK_CONST_METHOD1(getAreaType, AreaType(const Vector2D& position));
const AreaConfig& getAreaConfig(AreaType type) const override {
auto it = areaConfigs_.find(type);
@ -199,7 +199,7 @@ TEST_F(CollisionDetectorTest, PerpendicularCrossingPathsCollision) {
EXPECT_TRUE(collisionResult.willCollide) << "垂直交叉路径的车辆应该检测到碰撞";
// 测试2不同速度比
v1.speed = 5.0; // 降速度
v1.speed = 5.0; // 降<EFBFBD><EFBFBD><EFBFBD>速度
v2.speed = 15.0; // 提高速度
collisionResult = detector_->checkCollision(v1, v2, 30.0);
EXPECT_TRUE(collisionResult.willCollide) << "不同速度的垂直交叉路径车辆应该检测到碰撞";
@ -265,7 +265,7 @@ TEST_F(CollisionDetectorTest, TailgatingCollision) {
v2.type = MovingObjectType::UNMANNED;
v2.isControllable = true;
// 测试1同向
// 测试1同向<EFBFBD><EFBFBD>
auto collisionResult = detector_->checkCollision(v1, v2, 30.0);
EXPECT_FALSE(collisionResult.willCollide) << "同向同速的车辆不应该检测到碰撞";