From 90c4d94b13472114daab71d3e368660224423c90 Mon Sep 17 00:00:00 2001 From: Dawsyn Schraiber <32221234+dawsynth@users.noreply.github.com> Date: Thu, 9 May 2024 01:20:17 -0400 Subject: 02/24/2024 Test Launch Version (BB Black) (#11) * Adding a 90% completed, compilable but untested ADS * Made basic changes to actuator & sensor. Also added motor class * Removed unnecessary .cpp files * Updated sensor & actuator classes, finished ads, added variable time step to kalman filter, set up all tests for future assertions * Relocated 'main' to 'active-drag-system.cpp'. Added more info to README * Removed main.cpp * Added more details to README * Changed some function parameters from pass-by-pointer to pass-by-reference. Also removed the std namespace * Started writing the test cases * Updated the .gitignore file * Removed some files that should be gitignored * Up to date with Jazz's pull request * Test Launch Branch Created; PRU Servo Control with Test Program * Added I2C device class and register IDs for MPL [INCOMPLETE SENSOR IMPLEMENTATION] Needs actual data getting function implementation for both sensors and register IDs for BNO, will implement shortly. * Partial implementation of MPL sensor Added startup method, still needs fleshed out data getters and setters and finished I2C implementation. MOST LIKELY WILL HAVE COMPILATION ISSUES. * *Hypothetically* complete MPL implementation NEEDS HARDWARE TESTING * IMU Header and init() method implementation Needs like, all data handling still lol * Hypothetically functional (Definitely won't compile) * We ball? --------- Co-authored-by: Jazz Jackson Co-authored-by: Cian Capacci <46614295+BeeGuyDude@users.noreply.github.com> --- test/actuationPlanTest.cpp | 54 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 test/actuationPlanTest.cpp (limited to 'test/actuationPlanTest.cpp') diff --git a/test/actuationPlanTest.cpp b/test/actuationPlanTest.cpp new file mode 100644 index 0000000..72410b0 --- /dev/null +++ b/test/actuationPlanTest.cpp @@ -0,0 +1,54 @@ +#include +#include +#include "../include/surfaceFitModel.hpp" +#include "../include/actuationPlan.hpp" +#include "../include/rocketUtils.hpp" + + +class ActuationPlanTest : public ::testing::Test { + + protected: + + ActuationPlanTest() { + + SurfaceFitModel sfm = SurfaceFitModel(); + plan = new ActuationPlan(sfm); + } + + //~ActuationPlanTest() {} + + ActuationPlan *plan; +}; + + +/** + * @brief Tests running the Actuation Plan + * + * **/ +TEST_F(ActuationPlanTest, runPlan) { + + Vehicle rocket; + + rocket.imuInitFail = false; + rocket.imuReadFail = false; + rocket.altiInitFail = false; + rocket.altiReadFail = false; + + // Test when Vehicle Status: Glide + rocket.fail_time = (time_t)(-1); + rocket.deploy_time = time(nullptr); + rocket.status = GLIDE; + rocket.filtered_altitude = 1; + rocket.filtered_velocity = 2; + plan->runPlan(rocket); + EXPECT_NEAR(rocket.deployment_angle, 120.0, 0.01); + EXPECT_NE(rocket.fail_time, (time_t)(-1)); + + // Test when Vehicle Status: Apogee + rocket.deploy_time = time(nullptr); + rocket.status = APOGEE; + rocket.filtered_altitude = 1; + rocket.filtered_velocity = 2; + plan->runPlan(rocket); + EXPECT_NEAR(rocket.deployment_angle, 110.0, 0.01); +} \ No newline at end of file -- cgit v1.2.3