test: cover smoothing request snapshots

This commit is contained in:
梁薄云
2026-07-28 17:17:34 +08:00
parent 902a7b0cb8
commit 5cea617036
@@ -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