cadcraft/docs
Lion 64b7825d08
Property-based and hostile-input tests for geometry numerics (gaps.md S6) (#733)
* Property-based and hostile-input tests for geometry numerics (gaps.md S6)

A deterministic xorshift64* generator (no new dependency) drives a few
thousand cases per property in crates/geom/src/property_tests.rs:

- line/line: hits lie on both lines, parameters reproduce the point,
  swapping the operands gives the same point, finite results agree with
  the infinite parameters
- line/circle and circle/circle: hits lie on both curves, results are
  symmetric, properly crossing circles match the closed form; hostile
  inputs (NaN, infinities, subnormals, raw bit patterns, 1e300) never
  panic and the guarded functions return only finite hits or none
- segments: extending only adds hits
- closest points: fixed point of closest, perpendicular inside the
  segment, endpoints outside
- arcs: at(0)/at(1) are the endpoints at radii from 1e-6 to 1e6; the
  three-point arc keeps {start, end} = {p1, p3} and contains p2 (the
  CCW-only storage swaps the pair when p2 is on the clockwise side, as
  DXF stores arcs) and matches the circumradius closed form; collinear
  inputs are rejected
- bounds and vector identities
- known answers at 1e6-1e7 coordinates hold to 1e-9 relative

gaps.md S6 removed and geometry-parity.md's Tests section updated in
the same change.

* docs: drop the sentence the new numerics tests make stale

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Brandon Thomas <echelon@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 05:16:44 -04:00
..
brand M0: CADCraft skeleton and vertical slice 2026-10-05 23:22:25 -04:00
images README screenshots, alpha/parity assessment in ROADMAP, MLEADER written to DXF as LEADER + MTEXT 2026-10-06 02:12:34 -04:00
architecture.md Add German (de) interface language (#573) 2026-10-11 14:36:40 -04:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#3) 2026-10-07 21:16:30 -04:00
control-protocol.md docs: clarify engine commands in control protocol (#845) (#873) 2026-10-13 04:38:29 -04:00
file-format-parity.md DXF: associative hatches in blocks keep their boundary; boundaries carry the hatch reactor (#871) 2026-10-13 04:46:29 -04:00
gaps.md Property-based and hostile-input tests for geometry numerics (gaps.md S6) (#733) 2026-10-13 05:16:44 -04:00
geometry-parity.md Property-based and hostile-input tests for geometry numerics (gaps.md S6) (#733) 2026-10-13 05:16:44 -04:00
hardware-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#205) 2026-10-10 14:13:04 -04:00
localization-parity.md i18n(pt-BR): complete the Brazilian Portuguese catalog (#791) 2026-10-13 04:45:43 -04:00
localization.md i18n(pt-BR): complete the Brazilian Portuguese catalog (#791) 2026-10-13 04:45:43 -04:00
mcp.md cadcraft-cli mcp: --lazy and --launch for clients that start before the app (#756) 2026-10-13 04:34:14 -04:00
parity-checklist.md MLEADEREDIT, MLEADERALIGN, MLEADERCOLLECT (#816) 2026-10-13 04:37:26 -04:00
plot-styles.md Plot styles: apply line end, join and fill styles (part of #564) (#566) 2026-10-11 13:13:32 -04:00
plotters.md Plotting: honor model-space center and X/Y offsets (#751) 2026-10-13 04:34:04 -04:00
releasing.md Release prep: 0.5.0 and Linux riscv64 release build (#423) 2026-10-10 19:15:06 -04:00
roadmap.md docs: refresh gaps.md and parity docs for landed features (#625) 2026-10-11 20:11:37 -04:00
target-app-parity.md Hatch and Gradient dialog (create and edit) (#753) 2026-10-13 04:34:09 -04:00
ui-parity.md Hatch and Gradient dialog (create and edit) (#753) 2026-10-13 04:34:09 -04:00