From d6ea49d52048e7dd95857e53a0f55b3ae32c63ff Mon Sep 17 00:00:00 2001 From: pleroy Date: Tue, 7 Nov 2023 22:42:08 +0100 Subject: [PATCH] Change a flight plan test to systematically trigger the generation of a negative period, and change the checks into warnings. --- astronomy/orbital_elements_body.hpp | 7 +++++-- ksp_plugin_test/flight_plan_test.cpp | 7 +++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/astronomy/orbital_elements_body.hpp b/astronomy/orbital_elements_body.hpp index 1122234d1b..a51ecdc243 100644 --- a/astronomy/orbital_elements_body.hpp +++ b/astronomy/orbital_elements_body.hpp @@ -565,8 +565,11 @@ inline absl::Status OrbitalElements::ComputePeriodsAndPrecession() { nodal_period_ = 2 * π * Radian * Δt³ / (12 * ʃ_ut_dt); nodal_precession_ = 12 * ʃ_Ωt_dt / Δt³; - CHECK_LT(0 * Second, anomalistic_period_); - CHECK_LT(0 * Second, nodal_period_); + // TODO(egg): Fix the unwinding and turn these into CHECKs. + LOG_IF(WARNING, anomalistic_period_ <= 0 * Second) + << "Incorrect anomalistic period " << anomalistic_period_; + LOG_IF(WARNING, nodal_period_ <= 0 * Second) + << "Incorrect nodal period " << nodal_period_; return absl::OkStatus(); } diff --git a/ksp_plugin_test/flight_plan_test.cpp b/ksp_plugin_test/flight_plan_test.cpp index 591ecfa8a9..ff0f95d480 100644 --- a/ksp_plugin_test/flight_plan_test.cpp +++ b/ksp_plugin_test/flight_plan_test.cpp @@ -1,9 +1,11 @@ #include "ksp_plugin/flight_plan.hpp" +#include #include #include #include #include +#include #include "astronomy/epoch.hpp" #include "base/not_null.hpp" @@ -70,6 +72,7 @@ using namespace principia::testing_utilities::_approximate_quantity; using namespace principia::testing_utilities::_is_near; using namespace principia::testing_utilities::_matchers; using namespace principia::testing_utilities::_numerics; +using namespace std::chrono_literals; class FlightPlanTest : public testing::Test { protected: @@ -562,6 +565,10 @@ TEST_F(FlightPlanTest, Serialization) { EXPECT_EQ(t0_ + 42 * Second, flight_plan_read->desired_final_time()); EXPECT_EQ(2, flight_plan_read->number_of_manœuvres()); EXPECT_EQ(5, flight_plan_read->number_of_segments()); + + // This sleep causes the analyzer to continue running and produce an + // anomalistic period of -1.42708553168389347e+01 s. + std::this_thread::sleep_for(5s); } TEST_F(FlightPlanTest, Copy) {