feat: validate EM terminal world pose

This commit is contained in:
梁薄云
2026-08-07 08:01:18 +08:00
parent 0bba8d7e61
commit e844fe00a8
6 changed files with 249 additions and 11 deletions
@@ -22,6 +22,7 @@ internal static class EmPlanningServiceChecks
VerifiesNoProgressPublishesNoTrajectory();
VerifiesTimeoutFallbackAndCancellationSemantics();
VerifiesPublicationFailureAndDebugIsolation();
VerifiesPublicationGateStatusMappings();
}
private static void VerifiesForwardReverseAndBoundarySuccessesAreDeterministic()
@@ -427,6 +428,20 @@ internal static class EmPlanningServiceChecks
VerifySuccess(debugIsolated, debugRequest, EmTerminalType.Goal, "debug-sink isolation");
}
private static void VerifiesPublicationGateStatusMappings()
{
Verification.Equal(EmPlanningStatus.TerminalPoseMismatch,
EmPlanningService.MapPublicationFailure(EmTrajectoryValidationFailure.TerminalPoseMismatch),
"terminal-pose validator failure has its precise service status");
EmPlanningRequest sampleLimited = CreateRequest(TravelDirection.Forward, 0d, false, false);
sampleLimited.Configuration.Scheduling.MaximumPublishedSampleCount = 2;
EmPlanningResult sampleLimitResult = new EmPlanningService(new ScriptedPipelineSolver(PipelineSolverMode.Success)).Plan(
sampleLimited, CancellationToken.None);
VerifyFailure(sampleLimitResult, EmPlanningStatus.FullSegmentResourceLimitExceeded,
"sample-limit publication failure");
}
private static void VerifiesPreviousTrajectoryIsALongitudinalSoftReference()
{
EmPlanningRequest request = CreateRequest(TravelDirection.Forward, 0d, false, false);