Files
solvecraft/fixtures/nlib.math/coverage.json
T
Brett Lawson 95d0cb5273 difftest: coverage cases for sixteen green nlib units
From the same llvm-cov run of `difftest --green`: 102 fixture cases
(fixtures/<unit>/coverage.json, each citing the upstream branch and the
Rust line it covers) execute 54 previously uncovered spans in
srf_offset, math, crv_nurb, srf_nurb, srf_adv_p4/p5/p6, crv_adv_p2,
crv_fit_p1/p2, crv_tool_p2, crv_common, crv_geom, geom, srf_tool_p1 and
srf_tool_p3: offset normal fallbacks and pole cases, NL_NUM_ERR
quadratic branches, degenerate Bezier segments and curvature overflow,
Coons and railed-surface G1/twist mismatches, weights out of range in
knot removal, closed-curve Newton steps and tiny-sweep quartic arcs.
Each case was checked to reach its branch. In the other 21 green nlib
units every uncovered span is Rust-only or defensive (reasons kept with
the coverage notes). No runner or library changes.

All sixteen units PASS with 0 failures and 0 deferred; --perturb
SENSITIVE on all sixteen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 12:10:34 -07:00

203 lines
3.7 KiB
JSON

{
"cases": [
{
"name": "cov_quadratic_linear_div_overflow",
"upstream_ref": "source/SMLib/src/NL_Math.cpp:2574 N_SolveQuadraticEq NL_NUM_ERR (coverage: nurbs/math.rs:688)",
"inputs": {
"op": "quadratic",
"a": 0.0,
"b": 1e-11,
"c": 1e+300
}
},
{
"name": "cov_quadratic_b0_div_overflow",
"upstream_ref": "source/SMLib/src/NL_Math.cpp:2588 N_SolveQuadraticEq NL_NUM_ERR (coverage: nurbs/math.rs:695)",
"inputs": {
"op": "quadratic",
"a": 1e-11,
"b": 0.0,
"c": 1e+300
}
},
{
"name": "cov_quadratic_c0_div_overflow",
"upstream_ref": "source/SMLib/src/NL_Math.cpp:2608 N_SolveQuadraticEq NL_NUM_ERR (coverage: nurbs/math.rs:707)",
"inputs": {
"op": "quadratic",
"a": 1e-11,
"b": 1e+300,
"c": 0.0
}
},
{
"name": "cov_quadratic_q_over_a_bad",
"upstream_ref": "source/SMLib/src/NL_Math.cpp:2653 N_SolveQuadraticEq NL_NUM_ERR (coverage: nurbs/math.rs:725)",
"inputs": {
"op": "quadratic",
"a": 1e-11,
"b": 1e+200,
"c": 1.0
}
},
{
"name": "cov_quadratic_c_over_q_bad",
"upstream_ref": "source/SMLib/src/NL_Math.cpp:2656 N_SolveQuadraticEq NL_NUM_ERR (coverage: nurbs/math.rs:728)",
"inputs": {
"op": "quadratic",
"a": 2.0,
"b": 1e+200,
"c": 1.0
}
},
{
"name": "cov_float_op_mul_second_bound",
"upstream_ref": "source/SMLib/src/NL_Math.cpp:2708 N_FloatOpIsBad multiplication, y > BIGD/x but x <= BIGD/y (coverage: nurbs/math.rs:798)",
"inputs": {
"op": "float_op",
"x": 8.10499453712534e+28,
"y": 2.2180065965842307e+279,
"flag": 3
}
},
{
"name": "cov_for_back_pts_lower_left_input_error",
"upstream_ref": "source/SMLib/src/NL_Math.cpp:7605 N_RealMatrixForBack triangular type NL_INP_ERR (coverage: nurbs/math.rs:1665)",
"inputs": {
"op": "for_back_pts",
"a": {
"n": 1,
"m": 1,
"mtp": "lower_left",
"bw": 2,
"rows": [
[
2.0,
0.0
],
[
1.0,
3.0
]
]
},
"decompose": false,
"rhs": [
[
1,
2,
3
],
[
4,
5,
6
]
]
}
},
{
"name": "cov_for_back_pts_upper_right_input_error",
"upstream_ref": "source/SMLib/src/NL_Math.cpp:7605 N_RealMatrixForBack triangular type NL_INP_ERR (coverage: nurbs/math.rs:1665)",
"inputs": {
"op": "for_back_pts",
"a": {
"n": 1,
"m": 1,
"mtp": "upper_right",
"bw": 2,
"rows": [
[
2.0,
1.0
],
[
0.0,
3.0
]
]
},
"decompose": false,
"rhs": [
[
1,
2,
3
],
[
4,
5,
6
]
]
}
},
{
"name": "cov_for_back_cpts_lower_left_input_error",
"upstream_ref": "source/SMLib/src/NL_Math.cpp:7605 N_RealMatrixForBack triangular type NL_INP_ERR (coverage: nurbs/math.rs:1665)",
"inputs": {
"op": "for_back_cpts",
"a": {
"n": 1,
"m": 1,
"mtp": "lower_left",
"bw": 2,
"rows": [
[
2.0,
0.0
],
[
1.0,
3.0
]
]
},
"decompose": false,
"rhs": [
[
1,
2,
3,
1
],
[
4,
5,
6,
2
]
]
}
},
{
"name": "cov_right_for_back_upper_right_input_error",
"upstream_ref": "source/SMLib/src/NL_Math.cpp:7852 N_RealMatrixRightForBack triangular type NL_INP_ERR (coverage: nurbs/math.rs:1665)",
"inputs": {
"op": "right_for_back",
"a": {
"n": 1,
"m": 1,
"mtp": "upper_right",
"bw": 2,
"rows": [
[
2.0,
1.0
],
[
0.0,
3.0
]
]
},
"decompose": false,
"y": [
1.0,
2.0
]
}
}
]
}