From 5cea617036003af0f1a85169879b26fccbdd4f29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E8=96=84=E4=BA=91?= Date: Tue, 28 Jul 2026 17:17:34 +0800 Subject: [PATCH] test: cover smoothing request snapshots --- .../tests/verify_path_smoothing_contracts.ps1 | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/ClumsyPilot/tests/verify_path_smoothing_contracts.ps1 b/ClumsyPilot/tests/verify_path_smoothing_contracts.ps1 index 7554071..b6b36a6 100644 --- a/ClumsyPilot/tests/verify_path_smoothing_contracts.ps1 +++ b/ClumsyPilot/tests/verify_path_smoothing_contracts.ps1 @@ -219,19 +219,41 @@ Assert-ReadOnlyCollection $request.Segments 'Request segments must be immutable. $requestCoarsePath.SetValue($null, 0) $requestSegments.SetValue($null, 0) $vehicle.LengthMeters = [double]9.99 +$vehicle.WidthMeters = [double]9.99 +$vehicle.SafetyMarginMeters = [double]9.99 $vehicle.MaximumCurvaturePerMeter = [double]0.1 +$vehicle.MinimumTurningRadiusMeters = [double]9.99 +$requestConfiguration.Method = [Enum]::Parse($methodType, 'PiecewiseQuintic') $requestConfiguration.OutputSpacingMeters = [double]0.99 +$requestConfiguration.MaximumCollisionCheckStepMeters = [double]0.99 +$requestConfiguration.MinimumClearanceReserveMeters = [double]0.99 +$requestConfiguration.SmoothingStrength = [double]0.99 +$requestConfiguration.AllowFallbackToCoarsePath = $false $requestConfiguration.CubicBSpline.EndpointTangentScale = [double]0.99 +$requestConfiguration.LocalCubicBezier.CornerHeadingThresholdRadians = [double]0.99 +$requestConfiguration.LocalCubicBezier.MaximumWindowLengthMeters = [double]0.99 $requestConfiguration.LocalCubicBezier.HandleLengthRatio = [double]0.99 $requestConfiguration.PiecewiseQuintic.KnotSpacingMeters = [double]0.99 +$requestConfiguration.PiecewiseQuintic.MinimumKnotSpacingMeters = [double]0.99 Assert-True ($null -ne $request.CoarsePath[0]) 'Request must copy the coarse-path collection.' Assert-True ($null -ne $request.Segments[0]) 'Request must copy the segment collection.' Assert-Near 0.80 $request.Vehicle.LengthMeters 'Request must snapshot vehicle parameters.' +Assert-Near 0.60 $request.Vehicle.WidthMeters 'Request must snapshot vehicle width.' +Assert-Near 0.05 $request.Vehicle.SafetyMarginMeters 'Request must snapshot vehicle safety margin.' Assert-Near (1.0 / 1.20) $request.Vehicle.MaximumCurvaturePerMeter 'Request must snapshot nullable vehicle curvature.' +Assert-True ($null -eq $request.Vehicle.MinimumTurningRadiusMeters) 'Request must snapshot nullable vehicle turning radius.' +Assert-Equal 'CubicBSpline' $request.Configuration.Method.ToString() 'Request must snapshot smoothing method.' Assert-Near 0.05 $request.Configuration.OutputSpacingMeters 'Request must snapshot common configuration.' +Assert-Near 0.025 $request.Configuration.MaximumCollisionCheckStepMeters 'Request must snapshot collision configuration.' +Assert-Near 0.02 $request.Configuration.MinimumClearanceReserveMeters 'Request must snapshot clearance configuration.' +Assert-Near 1.0 $request.Configuration.SmoothingStrength 'Request must snapshot smoothing strength.' +Assert-Equal $true $request.Configuration.AllowFallbackToCoarsePath 'Request must snapshot fallback configuration.' Assert-Near (1.0 / 3.0) $request.Configuration.CubicBSpline.EndpointTangentScale 'Request must snapshot B-spline options.' +Assert-Near ([Math]::PI / 18.0) $request.Configuration.LocalCubicBezier.CornerHeadingThresholdRadians 'Request must snapshot Bezier threshold.' +Assert-Near 0.60 $request.Configuration.LocalCubicBezier.MaximumWindowLengthMeters 'Request must snapshot Bezier window length.' Assert-Near (1.0 / 3.0) $request.Configuration.LocalCubicBezier.HandleLengthRatio 'Request must snapshot Bezier options.' Assert-Near 0.50 $request.Configuration.PiecewiseQuintic.KnotSpacingMeters 'Request must snapshot quintic options.' +Assert-Near 0.10 $request.Configuration.PiecewiseQuintic.MinimumKnotSpacingMeters 'Request must snapshot quintic minimum spacing.' $request.Vehicle.WidthMeters = [double]9.99 $request.Vehicle.SafetyMarginMeters = [double]9.99 $request.Vehicle.MinimumTurningRadiusMeters = [double]9.99