solidcore

Units / curve

curve.curve_p5 partial

Layer
22
Upstream lines
2,299
Functions
19
Rust module
curve::curve::p5

Source: crates/solidcore/src/curve/curve/p5.rs

Upstream: source/SMLib/inc/SmCurve.h, source/SMLib/src/SmCurve.cpp

Notes

PARTIAL: difftest 3097 cases (97 upstream-derived + edge-case fixtures: TestSmCreateRectangle/RegularPolygon edges, my_test_reversed_line_join lines, closest-point inversions, Newton Jacobians; plus 3000 generated over 16 ops), 3095 pass bit-identical, 2 deferred (curve.curve_p2 2: GetNaturalInterval through a solution handle); mass.integrator wired in PR #119: all 28 curved Length cases now pass; 20000-seed run clean; --perturb detects all; wired all 13 UNPORTED(curve.curve_p5) stubs, promoting 12 units to green; upstream CrvsCleanup/TrimGap crash next to a closed curve not generated (see findings); 19 fns; largest: SmFindCCNormalENFO::Evaluate, SmCCIntersectENFO::Evaluate, SmCurve::IsArc, SmCurve::LocalPropertyAnalysis; cycle back-edges (call into later units; stub or co-port): curve.ellipse_p1(2), mass.integrator(2); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit

Difftest

Cases
3,097
Passed
3,095
Deferred
2
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
curve.curve_p2 green2

Report JSON (per-case results)

Dependencies

Depends on: curve.curve_cache green curve.curve_p2 green curve.curve_p4 partial geom.a_object partial geom.extent1d green geom.extent2d green geom.geom_utility_p1 green geom.local_solve1d green geom.matrix green geom.object partial geom.tol green geom.vector3d green nurbs.b_spline_curve_p1 green

Soft dependencies: curve.composite_curve_p1 green curve.conic green curve.crv_in_volume partial curve.crv_on_surf partial curve.ellipse_p2 green curve.hermite_curve green curve.hyperbola green curve.iso_curve green curve.line green curve.offset_curve green curve.parabola green curve.projected_curve green curve.tangent_field green geom.axis2_placement green geom.solution_array partial geom.vector2d green nurbs.b_spline_curve_p3 partial

Dependents: curve.curve_p9 green surface.surf_of_revolution_p3 partial

Soft dependents: blend.fillet_corner_p1 todo blend.fillet_custom_solver partial blend.fillet_geom_p4 todo blend.fillet_solver_p2 todo blend.fillet_solver_p4 claimed blend.fillet_standard_solver_p1 claimed blend.fillet_standard_solver_p2 todo blend.hcr claimed mass.integrator partial offset.offset_executive_p1 claimed offset.offset_geometry_creation claimed primitive.primitive_creation_p1 claimed primitive.primitive_creation_p2 todo primitive.primitive_creation_p3 todo query.loop green surface.cone_p2 claimed surface.plane_p1 partial surface.surf_of_extrusion_p1 green surface.surf_of_revolution_p1 green surface.surf_of_revolution_p2 partial surface.surface_cache_p2 partial surface.surface_p9 partial surface.surface_point_solve_p3 green topology.brep_p1 claimed topology.brep_p3 claimed topology.brep_p5 claimed topology.brep_p9 claimed topology.vertex partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmCurve::SmCurveSmCurve.h:122712[Curve] (construction, [Clone])
SmCurve::SmCurveSmCurve.h:124512[Curve] (construction, [Clone])
SmCurve::CrvsCleanupSmCurve.cpp:110660[crvs_cleanup], [CleanedCurves]
SmCurve::RemoveDuplicateCurvesSmCurve.cpp:132955[remove_duplicate_curves]
SmCurve::EvaluateSTEPPointSmCurve.cpp:355411[Curve::evaluate_step_point]
sm_IsPointSolutionAcrossClosedSeamBoundarySmCurve.cpp:425945[is_point_solution_across_closed_seam_boundary]
sm_FindAdditionalCcTangentGuessSmCurve.cpp:4310134[find_additional_cc_tangent_guess]
SmCurve::CacheMakeOrValidateSmCurve.cpp:9817153[make_curve_cache], [validate_curve_cache]
sm_FindAdditionalCpGuessSmCurve.cpp:1239877[find_additional_cp_guess]
SmCurve::IsArcSmCurve.cpp:13386217[is_arc_base], [Curve::is_arc]
SmCurve::IsLineSmCurve.cpp:1366575[is_line_base], [Curve::is_line]
SmCurve::IsLinearSmCurve.cpp:13754116[Curve::is_linear], [Linearity]
SmCurve::IsDomainBoundarySmCurve.cpp:1446064[Curve::is_domain_boundary]
SmCurve::IsPeriodicSmCurve.cpp:1454022[is_periodic], [Curve::is_periodic]
SmCurve::LengthSmCurve.cpp:14611104[Curve::length], [Curve::length_base]
SmCurve::LocalPropertyAnalysisSmCurve.cpp:15885179[local_property_analysis]
SmCCTangentIntENFO::EvaluateSmCurve.cpp:1617815[CcTangentIntEnfo] (EvalNFunctions)
SmCCIntersectENFO::EvaluateSmCurve.cpp:16589254[CcIntersectEnfo::evaluate_equations]
SmFindCCNormalENFO::EvaluateSmCurve.cpp:17170694[FindCcNormalEnfo::evaluate_equations]
Module file-header table (18 rows)
RustUpstream
[Curve] (construction, [Clone])SmCurve::SmCurve (dimension, copy constructors)
[crvs_cleanup], [CleanedCurves]SmCurve::CrvsCleanup (static)
[remove_duplicate_curves]SmCurve::RemoveDuplicateCurves (static)
[Curve::evaluate_step_point]SmCurve::EvaluateSTEPPoint (virtual)
[is_point_solution_across_closed_seam_boundary]sm_IsPointSolutionAcrossClosedSeamBoundary (static)
[find_additional_cc_tangent_guess]sm_FindAdditionalCcTangentGuess (static)
[make_curve_cache], [validate_curve_cache]SmCurve::CacheMakeOrValidate
[find_additional_cp_guess]sm_FindAdditionalCpGuess (static)
[is_arc_base], [Curve::is_arc]SmCurve::IsArc (virtual: base, circle, line, parabola, hyperbola)
[is_line_base], [Curve::is_line]SmCurve::IsLine (virtual: base, B-spline, line)
[Curve::is_linear], [Linearity]SmCurve::IsLinear
[Curve::is_domain_boundary]SmCurve::IsDomainBoundary (virtual: base, ellipse, line)
[is_periodic], [Curve::is_periodic]SmCurve::IsPeriodic
[Curve::length], [Curve::length_base]SmCurve::Length (virtual: base, line)
[local_property_analysis]SmCurve::LocalPropertyAnalysis
[CcTangentIntEnfo] (EvalNFunctions)SmCCTangentIntENFO::Evaluate (in p3)
[CcIntersectEnfo::evaluate_equations]SmCCIntersectENFO::Evaluate
[FindCcNormalEnfo::evaluate_equations]SmFindCCNormalENFO::Evaluate

Upstream tests reaching this unit

prog_test:my_test_surface_closest_point, prog_test:my_test_drop_point, prog_test:my_test_matrix, prog_test:my_test_reversed_line_join, SM_API_test:TestSmCreateRectangle, SM_API_test:TestSmCreateRegularPolygon