fix: correct EM observation painter geometry

This commit is contained in:
梁薄云
2026-08-07 10:58:18 +08:00
parent d019b08074
commit 37c27bdb1b
3 changed files with 149 additions and 15 deletions
@@ -4,6 +4,7 @@ using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using MultiWheelC.TrajectoryPlanning.CoarsePath;
using MultiWheelC.TrajectoryPlanning.CoarsePath.Facade;
@@ -22,6 +23,7 @@ internal static class TrajectoryObservationVisualizationChecks
VerifiesHandoffUsesSharedReferenceSAndSurvivesProjectionFailure();
VerifiesDynamicSnapshotContainsObservationEvidenceWithoutCyclePoints();
VerifiesFullModeSnapshotPublishesSingleCurrentTrajectoryAndBoundaryMarkers();
VerifiesPainterBoundarySemanticsMatchWeb();
VerifiesWebPublisherFusesFaultWithoutStoppingObserverTicks();
VerifiesWebPublisherGatesAtConfiguredCadenceAndSkipsDisabledOutput();
}
@@ -386,6 +388,24 @@ internal static class TrajectoryObservationVisualizationChecks
Verification.Equal(0, factoryCalls, "disabled web visualization does not build dynamic snapshots");
}
private static void VerifiesPainterBoundarySemanticsMatchWeb()
{
string presentationPath = Path.Combine(Directory.GetCurrentDirectory(), "ClumsyPilot",
"ParkrobTrajplanner", "tarjplanner_movementtest", "TrajectoryObservationPresentation.cs");
string source = new UTF8Encoding(false, true).GetString(File.ReadAllBytes(presentationPath));
Verification.True(source.Contains("DrawBoundaryMarkers"),
"observer painter draws shared boundary markers");
foreach (string expected in new[]
{
"计划起点", "车辆", "换向点 ", " / s_end", "终点 / s_end",
})
{
Verification.True(source.Contains(expected),
"observer painter boundary semantics include " + expected);
}
}
private static PlanningVisualizationStaticSnapshot CreateStaticSnapshot(TrajectoryObservationSettings settings)
{
TrajectoryObservationBootstrapResult bootstrap = Bootstrap(settings);