@ -8,11 +8,9 @@
# include "../src/orbital_mechanics.h"
# include <cmath>
// This test documents a bug: when a true anomaly trigger is set to 0 (periapsis),
// the maneuver doesn't execute because the spacecraft moves past periapsis before
// the trigger check happens (trigger check occurs after physics update).
// The expected behavior is that the maneuver should execute when at periapsis.
TEST_CASE ( " Prograde burn at periapsis preserves periapsis distance " , " [maneuver][periapsis][bug] " ) {
// Test prograde burn at periapsis (true anomaly = 0)
// Verifies that the maneuver executes correctly when starting at periapsis
TEST_CASE ( " Prograde burn at periapsis preserves periapsis distance " , " [maneuver][periapsis] " ) {
const double TIME_STEP = 60.0 ;
SimulationState * sim = create_simulation ( 10 , 10 , 100 , TIME_STEP ) ;
@ -76,11 +74,6 @@ TEST_CASE("Prograde burn at periapsis raises apoapsis not periapsis", "[maneuver
update_simulation ( sim ) ;
// Skip verification if bug not fixed
if ( ! sim - > maneuvers [ 0 ] . executed ) {
SKIP ( " Maneuver didn't execute - known bug " ) ;
}
double final_sma = craft - > orbit . semi_major_axis ;
double final_ecc = craft - > orbit . eccentricity ;
double final_periapsis = final_sma * ( 1.0 - final_ecc ) ;
@ -107,11 +100,6 @@ TEST_CASE("Burn location equals new periapsis after prograde burn", "[maneuver][
update_simulation ( sim ) ;
// Skip verification if bug not fixed
if ( ! sim - > maneuvers [ 0 ] . executed ) {
SKIP ( " Maneuver didn't execute - known bug " ) ;
}
double final_periapsis = craft - > orbit . semi_major_axis * ( 1.0 - craft - > orbit . eccentricity ) ;
INFO ( " Burn radius: " < < burn_radius ) ;