diff --git a/ClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest/README.md b/ClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest/README.md index 73c680f..51ef7a9 100644 --- a/ClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest/README.md +++ b/ClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest/README.md @@ -51,7 +51,7 @@ for driving and has no driving capability; any future execution mode requires a ## Operator launch and stop checklist -The vehicle UI entry is `EM杞ㄨ抗瑙勫垝瑙傚療闂幆娴嬭瘯`. It is an observation session only; it has no chassis, +The vehicle UI entry is `EM轨迹规划观察闭环测试`. It is an observation session only; it has no chassis, motor, steering, brake, or gear output. Before starting: diff --git a/ClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryObservationChecks.cs b/ClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryObservationChecks.cs index 5de09a1..c3cf774 100644 --- a/ClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryObservationChecks.cs +++ b/ClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryObservationChecks.cs @@ -18,6 +18,7 @@ internal static class TrajectoryObservationChecks { VerifiesObservationSourceHasNoActuatorCalls(); VerifiesObservationSourceUsesRequiredOperatorText(); + VerifiesOperatorDocumentationUsesExactUiEntry(); VerifiesStartGoalBoundsUseOnlyConfiguredPadding(); RejectsObstacleOutsideConfiguredBounds(); VerifiesLsAndStUsePublishedTrajectoryData(); @@ -64,6 +65,22 @@ internal static class TrajectoryObservationChecks "observation MovementTest uses required gear-switch notice"); } + private static void VerifiesOperatorDocumentationUsesExactUiEntry() + { + string sourceDirectory = Path.Combine(Directory.GetCurrentDirectory(), "ClumsyPilot", + "ParkrobTrajplanner", "tarjplanner_movementtest"); + string movementTestSource = Path.Combine(sourceDirectory, "MovementTest.TrajectoryObservationTest.cs"); + string readmePath = Path.Combine(sourceDirectory, "README.md"); + string movementTestText = new UTF8Encoding(false, true).GetString(File.ReadAllBytes(movementTestSource)); + string readmeText = new UTF8Encoding(false, true).GetString(File.ReadAllBytes(readmePath)); + const string uiEntry = "EM轨迹规划观察闭环测试"; + + Verification.True(movementTestText.Contains("[MovementTest(name = \"" + uiEntry + "\")]"), + "observation MovementTest has the exact UI entry"); + Verification.True(readmeText.Contains(uiEntry), + "observation README has the exact UI entry"); + } + private static void VerifiesStartGoalBoundsUseOnlyConfiguredPadding() { var settings = new TrajectoryObservationSettings