solidcore

Units / geom

geom.tol green

Layer
1
Upstream lines
923
Functions
119
Rust module
geom::tol

Source: crates/solidcore/src/geom/tol.rs

Upstream: source/SMLib/inc/SmRelation.h, source/SMLib/inc/SmTol.h, source/SMLib/src/SmTol.cpp

Notes

CO-PORTED in boolean.topology_intersector_p1 (PR #146): SmTol::UpdateObjectTolerance -> geom::tol::update_object_tolerance (face branch stubs SmFace::SetTolerance UNPORTED(topology.face_p3), SmFace::GetEdges UNPORTED(topology.face_p4)). 119 fns; largest: SmTol::UpdateObjectTolerance, SmTol::GetZoneTol3d, SmRelation::RelatePair, SmTol::MapTo2d; cycle back-edges (call into later units; stub or co-port): geom.vector3d(20), curve.curve_p2(10), intersect.curve_class_p1(9), topology.edge(9), geom.object(6), heal.gap(6), topology.face_p2(6), geom.extent1d(5), geom.extent2d(5), surface.surface_p1(5), surface.surface_p2(5), intersect.point_class(4), topology.brep_p1(4), topology.vertex(4), curve.curve_p4(3), topology.topology(3), curve.crv_on_surf(2), geom.context(2), query.face_p1(2), surface.surface_p7(2), topology.shell(2), blend.fillet_corner_p1(1), blend.fillet_solver_p1(1), geom.local_solve_nd(1), geom.pseudo_box(1), query.brep(1), query.poly(1), surface.surface_p5(1), surface.volume_p1(1), surface.volume_p2(1), topology.face_p3(1), topology.face_p4(1); unit-SCC #22 (220 units); 320 upstream test entry points reach this unit; GREEN: difftest 3435 cases (435 fixture + 3000 generated; MapTo1d / GetScaledZero(SmExtent1d) wired by geom.extent1d), all bit-identical, 0 deferred (the 221 geom.vector3d cases resolved when geom.vector3d landed), max_rel_err 0; 60k-seed run clean; object/curve/surface/topology/extent2d overloads are UNPORTED(<unit>) markers in geom/tol.rs; SmRelation results sorted (upstream hash order, see findings); CO-PORTED in intersect.curve_class_p7 (PR #65): SmTol::IsDegenerate(const SmCurve*, SmExtent1d, SmXSectTol3d*), SmTol::IsClosed(const SmObject*, SmXSectTol3d*) for a curve with the tolerance given -> intersect::curve_class::p7 (private helpers)

Difftest

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

Blocked by

Nothing: no deferred cases.

Report JSON (per-case results)

Dependencies

Depends on: geom.extent3d green geom.vector2d green

Soft dependencies: none

Dependents: blend.fillet_corner_p1 todo blend.fillet_corner_p2 todo blend.fillet_executive_p3 todo blend.fillet_geom_p1 claimed blend.fillet_geom_p2 todo blend.fillet_geom_p4 todo blend.fillet_geom_p6 todo blend.fillet_solver_p1 claimed blend.fillet_solver_p3 todo blend.fillet_standard_solver_p1 claimed blend.hcr claimed boolean.merge_p1 partial boolean.topology_intersector_p1 partial boolean.topology_intersector_p2 claimed boolean.topology_intersector_p3 claimed curve.composite_curve_p1 green curve.crv_in_volume partial curve.curve_cache green curve.curve_p1 partial curve.curve_p4 partial curve.curve_p5 partial curve.curve_p6 green curve.curve_p8 green curve.ellipse_p1 green curve.ellipse_p2 green curve.hyperbola green curve.line green curve.parabola green geom.geom_utility_p1 green geom.geom_utility_p2 green geom.hash_table green geom.periodic_extent1d green geom.point_set green geom.pseudo_box green heal.face_props partial heal.gap partial heal.heal_data_p2 partial heal.stitch_p2 claimed intersect.curve_class_p1 partial intersect.curve_class_p2 claimed intersect.curve_class_p3 partial intersect.curve_class_p4 claimed intersect.curve_class_p5 partial intersect.curve_class_p6 partial intersect.curve_class_p7 partial intersect.curve_class_p8 partial intersect.curve_class_p9 partial intersect.point_class partial intersect.surface_drop_curve partial intersect.surface_drop_lib_p1 partial intersect.surface_drop_lib_p2 green intersect.surface_drop_lib_p3 claimed intersect.surface_intersector_p1 partial intersect.surface_intersector_p3 partial intersect.surface_intersector_p5 partial intersect.surface_tracer partial intersect.topology_solver_p1 partial intersect.topology_solver_p2 partial nurbs.b_spline_curve_n_lib green nurbs.b_spline_curve_p1 green nurbs.b_spline_curve_p2 green nurbs.b_spline_curve_p3 partial nurbs.b_spline_surface_p1 green nurbs.nurbs_crv green offset.offset_geometry_creation claimed primitive.primitive_creation_p1 claimed primitive.primitive_creation_p2 todo primitive.primitive_creation_p3 todo query.api_queries partial query.face_p1 claimed query.face_p2 partial query.face_p3 claimed query.loop green query.poly partial query.tess partial surface.bend_volume green surface.cone_p1 green surface.cone_p2 claimed surface.cone_p3 partial surface.plane_p1 partial surface.plane_p2 partial surface.sphere green surface.surf_of_extrusion_p1 green surface.surf_of_extrusion_p2 partial surface.surf_of_revolution_p1 green surface.surf_of_revolution_p3 partial surface.surface_p1 partial surface.surface_p10 partial surface.surface_p11 partial surface.surface_p2 partial surface.surface_p4 green surface.surface_p5 green surface.surface_p6 green surface.surface_p8 partial surface.surface_p9 partial surface.surface_point_solve_p2 green surface.torus green surface.trim_srf_cache partial surface.unbend_volume green topology.brep_data partial topology.brep_p1 claimed topology.brep_p10 claimed topology.brep_p2 claimed topology.brep_p3 claimed topology.brep_p5 claimed topology.brep_p6 claimed topology.brep_p7 claimed topology.brep_p8 claimed topology.brep_p9 claimed topology.edge partial topology.edgeuse_p1 partial topology.edgeuse_p3 claimed topology.face_p1 partial topology.face_p2 partial topology.face_p3 claimed topology.face_p4 claimed topology.loopuse partial topology.proto_topology_p1 partial topology.proto_topology_p2 partial topology.proto_topology_p3 partial topology.trimming_tools partial topology.vertex partial topology.vertexuse partial

Soft dependents: blend.fillet_corner_p3 todo blend.fillet_custom_solver partial blend.fillet_executive_p1 todo blend.fillet_executive_p2 todo blend.fillet_geom_p3 todo blend.fillet_geom_p5 todo blend.fillet_solver_p2 todo blend.fillet_solver_p5 claimed blend.fillet_standard_solver_p2 todo boolean.merge_p2 todo boolean.merge_p3 todo boolean.merge_p4 todo boolean.merge_p5 partial curve.composite_curve_p2 green curve.conic green curve.crv_on_surf partial curve.curve_p2 green curve.curve_p3 green curve.curve_p7 green curve.curve_p9 green curve.hermite_curve green curve.iso_curve green curve.offset_curve green geom.a_object partial geom.assert_array green geom.axis2_placement green geom.context green geom.extent1d green geom.extent2d green geom.global_solver partial geom.local_solve1d green geom.matrix green geom.polar_box green geom.solution_array partial geom.tools partial geom.transform green geom.vector3d green heal.heal_data_p3 partial heal.stitch_p1 claimed intersect.ray_tracer partial intersect.surface_intersector_p2 partial intersect.surface_intersector_p4 partial intersect.surface_silhouette green mass.integrator partial nurbs.b_spline_surface_n_lib_p1 green nurbs.b_spline_surface_n_lib_p2 partial nurbs.nurbs_srf green offset.offset_executive_p1 claimed offset.offset_executive_p2 claimed primitive.api_curves green query.brep claimed query.edge partial surface.b_spline_volume green surface.offset_surface green surface.surf_of_revolution_p2 partial surface.surface_cache_p1 green surface.surface_cache_p2 partial surface.surface_p3 green surface.surface_p7 partial surface.surface_point_solve_p1 green surface.surface_point_solve_p3 green surface.twist_volume green sweep.rotational_sweep_geometry partial sweep.topology_sweep claimed sweep.trans_sweep_geometry partial topology.brep_cache partial topology.edgeuse_p2 partial topology.shell claimed topology.topology green topology.topology_traverser partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmRelation::SmRelation<TYPE1, TYPE2>SmRelation.h:645[Relation]
SmRelation::GetTypeSmRelation.h:971[Relation::cardinality]
SmRelation::GetTypeStringSmRelation.h:971[Relation::cardinality]
SmRelation::GetSecondsSmRelation.h:10715[Relation::seconds]
SmRelation::GetAllSecondsSmRelation.h:1497[Relation::all_seconds]
SmRelation::GetAllFirstsSmRelation.h:1627[Relation::all_firsts]
SmRelation::RemoveAllSmRelation.h:1766[Relation::remove_all]
SmRelation::RelatePairSmRelation.h:19053[Relation::relate_pair]
SmRelation::RelateToManySmRelation.h:24911[Relation::relate_to_many]
SmRelation::GetSecondSmRelation.h:29521[Relation::second]
SmRelation::IsKindOfSmRelation.h:3505[Relation::cardinality]
SmTol3d::SmTol3dSmTol.h:1473[tol3d]
SmTol3d::operator=SmTol.h:1551[tol3d]
SmTol3d::operator double &SmTol.h:1601
SmZoneTol3d::operator const double &SmTol.h:1711
SmZoneTol3d::operator double &SmTol.h:1711
SmZoneTol3d::operator=SmTol.h:1711[tol3d]
SmXSectTol3d::operator double &SmTol.h:1721
SmXSectTol3d::operator=SmTol.h:1721[tol3d]
SmApproxTol3d::operator const double &SmTol.h:1731
SmApproxTol3d::operator double &SmTol.h:1731
SmApproxTol3d::operator=SmTol.h:1731[tol3d]
SmScaledZero::operator double &SmTol.h:1741
SmScaledZero::operator=SmTol.h:1741[tol3d]
SmTol2d::operator double &SmTol.h:1751
SmTol2d::operator=SmTol.h:1751[tol3d]
SmTol1d::operator double &SmTol.h:1761
SmTol1d::operator=SmTol.h:1761[tol3d]
operator*=SmTol.h:1791[tol_mul]
SmTol::SizeEstimateToZoneTol3dSmTol.h:5679[size_estimate_to_zone_tol_3d]
SmTol::InTolSmTol.h:5961[in_tol]
SmTol::CalcFaceZoneTol3dSmTol.h:6162[calc_face_zone_tol_3d]
SmTol::CalcFaceZoneTol3dSmTol.h:6182[calc_face_zone_tol_3d]
SmTol::CalcEdgeZoneTol3dSmTol.h:62116[calc_edge_zone_tol_3d]
SmTol::CalcEdgeZoneTol3dSmTol.h:63716[calc_edge_zone_tol_3d]
SmTol::CalcVertexZoneTol3dSmTol.h:65416[calc_vertex_zone_tol_3d]
SmTol::CalcVertexZoneTol3dSmTol.h:67016[calc_vertex_zone_tol_3d]
SmTol::GetEffZeroSmTol.h:7451[eff_zero], [eff_zero_sq], [eff_zero_param], [eff_zero_ang_rad]
SmTol::GetEffZeroSqSmTol.h:7461[eff_zero], [eff_zero_sq], [eff_zero_param], [eff_zero_ang_rad]
SmTol::GetEffZeroParamSmTol.h:7471[eff_zero], [eff_zero_sq], [eff_zero_param], [eff_zero_ang_rad]
SmTol::GetEffZeroAngRadSmTol.h:7481[eff_zero], [eff_zero_sq], [eff_zero_param], [eff_zero_ang_rad]
SmTol::GetZoneTol3d_ForXSectResultSmTol.h:7992
SmTol::GetXSectTol3dSmTol.h:8362[xsect_tol_3d_from_zones]
SmTol::GetAngTolRadSmTol.h:8401[ang_tol_rad]
SmTol::GetScaledZeroSqSmTol.h:9702[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSqrtSmTol.h:9742[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.h:9805[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSqSmTol.h:9863[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSqrtSmTol.h:9913[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.h:9967[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSqSmTol.h:10044[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSqrtSmTol.h:10104[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.h:10169[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSqSmTol.h:10265[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSqrtSmTol.h:10335[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetModelSizeEstimateSmTol.cpp:761[model_size_estimate]
SmTol::GetModelSizeEstimateSmTol.cpp:771[model_size_estimate]
SmTol::GetModelSizeEstimateSmTol.cpp:781[model_size_estimate]
SmTol::SetModelSizeEstimateSmTol.cpp:801[set_context_model_size_estimate]
SmTol::SetModelSizeEstimateSmTol.cpp:811[set_context_model_size_estimate]
SmZoneTol3d::SmZoneTol3dSmTol.cpp:1071[zone_tol3d]
SmXSectTol3d::SmXSectTol3dSmTol.cpp:1081[xsect_tol3d]
SmApproxTol3d::SmApproxTol3dSmTol.cpp:1091[approx_tol3d]
SmScaledZero::SmScaledZeroSmTol.cpp:1101[tol3d]
SmTol2d::SmTol2dSmTol.cpp:1111[tol3d]
SmTol1d::SmTol1dSmTol.cpp:1121[tol3d]
SmTol::AreParallelSmTol.cpp:1265[are_parallel]
SmTol::ArePerpendicularSmTol.cpp:1315[are_perpendicular]
SmTol::IsZeroSpeedSmTol.cpp:1437[is_zero_speed]
SmTol::IsDegenerateSmTol.cpp:48513[is_degenerate_vec3]
SmTol::IsDegenerateSmTol.cpp:5199[is_degenerate_vec3]
SmTol::IsDegenerateSmTol.cpp:53433[is_degenerate_vec3]
SmTol::IsClosedSmTol.cpp:61022
SmTol::GetGapGainSmTol.cpp:6405[gap_gain]
SmTol::GetZoneTol3dSmTol.cpp:65116[zone_tol_3d]
SmTol::GetZoneTol3dSmTol.cpp:67314[zone_tol_3d]
SmTol::GetZoneTol3dSmTol.cpp:69316[zone_tol_3d]
SmTol::GetZoneTol3dSmTol.cpp:71516[zone_tol_3d]
SmTol::GetZoneTol3dSmTol.cpp:73780[zone_tol_3d]
SmTol::GetSrcZoneTol3dSmTol.cpp:9021
SmTol::GetSrcZoneTol3dSmTol.cpp:9031
SmTol::GetSrcZoneTol3dSmTol.cpp:9041
SmTol::GetObjZoneTol3dSmTol.cpp:9061
SmTol::GetObjZoneTol3dSmTol.cpp:9071
SmTol::GetApproxTol3dSmTol.cpp:9221[approx_tol_3d]
SmTol::GetApproxTol3dSmTol.cpp:9231[approx_tol_3d]
SmTol::GetApproxTol3dSmTol.cpp:9251[approx_tol_3d]
SmTol::GetApproxTol3dSmTol.cpp:92713[approx_tol_3d]
SmTol::GetXSectTol3dSmTol.cpp:9551[xsect_tol_3d_from_zones]
SmTol::GetXSectTol3dSmTol.cpp:9561[xsect_tol_3d_from_zones]
SmTol::GetXSectTol3dSmTol.cpp:96020[xsect_tol_3d_from_zones]
SmTol::MapTo2dSmTol.cpp:102141
SmTol::MapTo2dSmTol.cpp:107022
SmTol::MapTo2dSmTol.cpp:110241
SmTol::MapTo1dSmTol.cpp:115117[map_to_1d]
SmTol::MapTo1dSmTol.cpp:120519[map_to_1d]
SmTol::UpdateObjectToleranceSmTol.cpp:1232131
SmTol::GetScaledZeroSmTol.cpp:13711[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSqSmTol.cpp:13721[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSqrtSmTol.cpp:13731[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13751[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13761[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13771[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13781[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13793[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13823[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13855[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13901[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13911[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13921[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13931[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13941[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13951[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:13977[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:14046[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:14108[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:14241[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:14251[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
SmTol::GetScaledZeroSmTol.cpp:142622[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]
Module file-header table (51 rows)
RustUpstream
[tol3d]SmTol3d(double), SmScaledZero(double), SmTol2d(double), SmTol1d(double), every operator=(double) of SM_TOL_CALLS, SmTol3d::operator=(const SmTol3d)
[zone_tol3d]SmZoneTol3d(double)
[xsect_tol3d]SmXSectTol3d(double)
[approx_tol3d]SmApproxTol3d(double)
[tol_mul]operator*=(SmTol3d&, double)
(plain f64)operator double&, operator const double& of every tolerance class
[SmallTopoType]SmSmallTopoType
[size_estimate_to_zone_tol_3d]SmTol::SizeEstimateToZoneTol3d
[in_tol]SmTol::InTol(double, const SmTol3d&)
[is_zero], [is_zero_squared], [is_zero_to_tol]SM_IS_ZERO, SM_IS_ZERO_SQUARED, SM_IS_ZERO_TO_TOL (SmMath.h)
[are_same], [are_same_to_tol]SM_ARE_SAME, SM_ARE_SAME_TO_TOL (SmMath.h)
[calc_face_zone_tol_3d]SmTol::CalcFaceZoneTol3d(const SmContext*)
[calc_edge_zone_tol_3d]SmTol::CalcEdgeZoneTol3d(double, double, SmZoneTol3d*, const SmContext*)
[calc_vertex_zone_tol_3d]SmTol::CalcVertexZoneTol3d(double, double, SmZoneTol3d*, const SmContext*)
[eff_zero], [eff_zero_sq], [eff_zero_param], [eff_zero_ang_rad]SmTol::GetEffZero, GetEffZeroSq, GetEffZeroParam, GetEffZeroAngRad
[xsect_tol_3d_from_zones]SmTol::GetXSectTol3d(const SmZoneTol3d&, const SmZoneTol3d&)
[ang_tol_rad]SmTol::GetAngTolRad()
[model_size_estimate]SmTol::GetModelSizeEstimate()
[context_model_size_estimate]SmTol::GetModelSizeEstimate(const SmContext&)
[set_context_model_size_estimate]SmTol::SetModelSizeEstimate(SmContext&, double)
[are_parallel]SmTol::AreParallel
[are_perpendicular]SmTol::ArePerpendicular
[is_zero_speed]SmTol::IsZeroSpeed
[is_degenerate_vec3]SmTol::IsDegenerate(const SmVector3d, SmXSectTol3d*)
[gap_gain]SmTol::GetGapGain
[zone_tol_3d]SmTol::GetZoneTol3d(SmSmallTopoType) (system)
[context_zone_tol_3d]SmTol::GetZoneTol3d(const SmContext*, SmSmallTopoType)
[approx_tol_3d]SmTol::GetApproxTol3d(SmSmallTopoType)
[context_approx_tol_3d]SmTol::GetApproxTol3d(const SmContext*, SmSmallTopoType)
[xsect_tol_3d]SmTol::GetXSectTol3d(SmSmallTopoType)
[context_xsect_tol_3d]SmTol::GetXSectTol3d(const SmContext*, SmSmallTopoType)
[scaled_zero], [scaled_zero_sq], [scaled_zero_sqrt]SmTol::GetScaledZero(), GetScaledZeroSq(), GetScaledZeroSqrt()
[ScaledZero] (f64, [Vec2], [Vec3], [Extent1d], Extent2d, [Extent3d], PseudoBox)SmTol::GetScaledZero(const double), (const SmVector2d&), (const SmVector3d&), (const SmExtent1d&), (const SmExtent2d&) (impl in geom::extent2d), (const SmExtent3d&), (const SmPseudoBox&) (impl in geom::pseudo_box)
[scaled_zero_of_equations]SmTol::GetScaledZero(const SmEvalNFunctionsObject&)
[scaled_zero_of_volume]SmTol::GetScaledZero(const SmVolume&)
[map_to_1d]SmTol::MapTo1d(SmTol3d&, SmVector3d&, const SmExtent1d&)
[scaled_zero_sq_of], [scaled_zero_sqrt_of]unary GetScaledZeroSq<cA>, GetScaledZeroSqrt<cA>
[scaled_zero2], [scaled_zero_sq2], [scaled_zero_sqrt2]binary GetScaledZero<cA,cB>, ...Sq, ...Sqrt
[scaled_zero3], [scaled_zero_sq3], [scaled_zero_sqrt3]tertiary templates
[scaled_zero4], [scaled_zero_sq4], [scaled_zero_sqrt4]quaternary templates
[Relation]SmRelation<TYPE1, TYPE2>
[Relation::new]SmRelation(const SmContext&, SmRelationCardinalityType)
[Relation::cardinality]m_eCardinality (GetType/GetTypeString/IsKindOf are RTTI, see below)
[Relation::relate_pair]RelatePair
[Relation::relate_to_many]RelateToMany
[Relation::remove_all]RemoveAll
[Relation::second]GetSecond
[Relation::seconds]GetSeconds
[Relation::all_firsts]GetAllFirsts
[Relation::all_seconds]GetAllSeconds
[Cardinality]SmRelationCardinalityType

Upstream tests reaching this unit

prog_test:my_test_crv_projected_max, prog_test:my_test_extent3d, prog_test:my_test_vector2d, prog_test:my_test_surface_closest_point, prog_test:my_test_drop_point, prog_test:my_test_matrix