diff options
| author | Dawsyn Schraiber <[email protected]> | 2024-05-09 01:20:17 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-05-09 01:20:17 -0400 |
| commit | 90c4d94b13472114daab71d3e368660224423c90 (patch) | |
| tree | 2a56c3780e6ba2f157ce15f2356134cff5035694 /test/actuationPlanTest.cpp | |
| parent | d695dce1a7ea28433db8e893025d1ec66fb077b2 (diff) | |
| download | active-drag-system-90c4d94b13472114daab71d3e368660224423c90.tar.gz active-drag-system-90c4d94b13472114daab71d3e368660224423c90.tar.bz2 active-drag-system-90c4d94b13472114daab71d3e368660224423c90.zip | |
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 <[email protected]>
Co-authored-by: Cian Capacci <[email protected]>
Diffstat (limited to 'test/actuationPlanTest.cpp')
| -rw-r--r-- | test/actuationPlanTest.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
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 <iostream> +#include <gtest/gtest.h> +#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 |
