mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-22 12:03:33 +08:00
Takeoff: add proper unit test
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include <Takeoff.hpp>
|
||||
#include <drivers/drv_hrt.h>
|
||||
|
||||
TEST(TakeoffTest, Initialization)
|
||||
{
|
||||
@@ -40,10 +41,38 @@ TEST(TakeoffTest, Initialization)
|
||||
EXPECT_EQ(takeoff.getTakeoffState(), TakeoffState::disarmed);
|
||||
}
|
||||
|
||||
// TEST(TakeoffTest, Ramp)
|
||||
// {
|
||||
// Takeoff takeoff;
|
||||
// takeoff.updateTakeoffState(true, false, true, 1.f, false);
|
||||
// takeoff.updateThrustRamp(1.f, 0.1f);
|
||||
// EXPECT_EQ(takeoff.getTakeoffState(), TakeoffState::disarmed);
|
||||
// }
|
||||
TEST(TakeoffTest, RegularTakeoffRamp)
|
||||
{
|
||||
Takeoff takeoff;
|
||||
takeoff.setSpoolupTime(1.f);
|
||||
takeoff.setTakeoffRampTime(2.0);
|
||||
takeoff.generateInitialRampValue(.5f, 1.f);
|
||||
|
||||
// disarmed, landed, don't want takeoff
|
||||
takeoff.updateTakeoffState(false, true, false, 1.f, false, 0);
|
||||
EXPECT_EQ(takeoff.getTakeoffState(), TakeoffState::disarmed);
|
||||
|
||||
// armed, not landed anymore, don't want takeoff
|
||||
takeoff.updateTakeoffState(true, false, false, 1.f, false, 500_ms);
|
||||
EXPECT_EQ(takeoff.getTakeoffState(), TakeoffState::spoolup);
|
||||
|
||||
// armed, not landed, don't want takeoff yet, spoolup time passed
|
||||
takeoff.updateTakeoffState(true, false, false, 1.f, false, 2_s);
|
||||
EXPECT_EQ(takeoff.getTakeoffState(), TakeoffState::ready_for_takeoff);
|
||||
|
||||
// armed, not landed, want takeoff
|
||||
takeoff.updateTakeoffState(true, false, true, 1.f, false, 3_s);
|
||||
EXPECT_EQ(takeoff.getTakeoffState(), TakeoffState::rampup);
|
||||
|
||||
// armed, not landed, want takeoff, ramping up
|
||||
takeoff.updateTakeoffState(true, false, true, 1.f, false, 4_s);
|
||||
EXPECT_EQ(takeoff.updateRamp(.5f, 1.5f), 0.f);
|
||||
EXPECT_EQ(takeoff.updateRamp(.5f, 1.5f), .5f);
|
||||
EXPECT_EQ(takeoff.updateRamp(.5f, 1.5f), 1.f);
|
||||
EXPECT_EQ(takeoff.updateRamp(.5f, 1.5f), 1.5f);
|
||||
EXPECT_EQ(takeoff.updateRamp(.5f, 1.5f), 1.5f);
|
||||
|
||||
// armed, not landed, want takeoff, rampup time passed
|
||||
takeoff.updateTakeoffState(true, false, true, 1.f, false, 6500_ms);
|
||||
EXPECT_EQ(takeoff.getTakeoffState(), TakeoffState::flight);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user