fix: stabilize stopped-start EM planning and add txt diagnostics
This commit is contained in:
@@ -23,6 +23,7 @@ internal static class TrajectoryObservationChecks
|
||||
{
|
||||
TrajectoryObservationSettingsChecks.Run();
|
||||
TrajectoryObservationSegmentChecks.Run();
|
||||
VerifiesTrajectoryObservationReportWriterCreatesTxt();
|
||||
VerifiesPainterPoseGeometryReplacesLargeArrow();
|
||||
TrajectoryObservationVisualizationChecks.Run();
|
||||
VerifiesObservationSourceHasNoActuatorCalls();
|
||||
@@ -47,6 +48,7 @@ internal static class TrajectoryObservationChecks
|
||||
VerifiesPresentationTextDescribesObservationWithoutSendingCommand();
|
||||
VerifiesPlanningDiagnosticsKeepRawFailureReason();
|
||||
VerifiesPublishedPlanningDiagnosticsIncludeTrajectorySummary();
|
||||
VerifiesCurveReportIncludesLsStSpeedAccelerationAndJerk();
|
||||
VerifiesEmptyChartsReceivePersistentPlanningDiagnostic();
|
||||
VerifiesLsPresentationUsesPathSOnHorizontalAxis();
|
||||
VerifiesPainterStAxesUsePathSAndTimeUnits();
|
||||
@@ -81,6 +83,29 @@ internal static class TrajectoryObservationChecks
|
||||
}
|
||||
}
|
||||
|
||||
private static void VerifiesTrajectoryObservationReportWriterCreatesTxt()
|
||||
{
|
||||
string reportDirectory = Path.Combine(Path.GetTempPath(),
|
||||
"em-trajectory-report-" + Guid.NewGuid().ToString("N"));
|
||||
try
|
||||
{
|
||||
var writer = new TrajectoryObservationReportWriter(17L, reportDirectory);
|
||||
writer.Append("cycle=1 status=SolverTimedOut primal=140.918");
|
||||
string reportPath = writer.Save();
|
||||
|
||||
Verification.True(File.Exists(reportPath), "trajectory observation txt report exists");
|
||||
string text = File.ReadAllText(reportPath);
|
||||
Verification.True(text.Contains("session=17"), "report includes session identity");
|
||||
Verification.True(text.Contains("OBSERVE_ONLY"), "report records observation-only boundary");
|
||||
Verification.True(text.Contains("SolverTimedOut"), "report includes cycle failure");
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (Directory.Exists(reportDirectory))
|
||||
Directory.Delete(reportDirectory, true);
|
||||
}
|
||||
}
|
||||
|
||||
private static void VerifiesObservationSourceUsesRequiredOperatorText()
|
||||
{
|
||||
string movementTestSource = Path.Combine(Directory.GetCurrentDirectory(), "ClumsyPilot",
|
||||
@@ -960,6 +985,25 @@ internal static class TrajectoryObservationChecks
|
||||
}
|
||||
}
|
||||
|
||||
private static void VerifiesCurveReportIncludesLsStSpeedAccelerationAndJerk()
|
||||
{
|
||||
DateTimeOffset effectiveAt = new DateTimeOffset(2026, 8, 5, 0, 0, 0, TimeSpan.Zero);
|
||||
EmTrajectory trajectory = CreatePublishedTrajectory(effectiveAt);
|
||||
DirectionSegmentView segment = CreateStraightSegment();
|
||||
TrajectoryObservationCharts charts = TrajectoryObservationCharts.Build(trajectory, segment, 0.5d);
|
||||
|
||||
string text = TrajectoryObservationDiagnostics.CreateCurveReport(charts, trajectory).Text;
|
||||
|
||||
foreach (string section in new[]
|
||||
{
|
||||
"LS_CURVE", "ST_CURVE", "SPEED_CURVE", "ACCELERATION_CURVE", "JERK_CURVE",
|
||||
"referenceS(m)", "time(s)", "signedSpeed(m/s)", "acceleration(m/s2)", "jerk(m/s3)",
|
||||
})
|
||||
{
|
||||
Verification.True(text.Contains(section), "curve report includes " + section);
|
||||
}
|
||||
}
|
||||
|
||||
private static void VerifiesEmptyChartsReceivePersistentPlanningDiagnostic()
|
||||
{
|
||||
string presentationPath = Path.Combine(Directory.GetCurrentDirectory(), "ClumsyPilot",
|
||||
|
||||
Reference in New Issue
Block a user