kernel-cases: a join that meets nothing keeps the tool as a lump (#2896)

The case expected two bodies for a combine join of an arm 0.01 mm clear of a
ring. A join's tool that meets no target goes into the target as a separate
lump and the tool body is consumed (doc eval Operation::Join; the engine test
join_meeting_nothing_keeps_the_first_body): one body, Ring, of two shells,
with the volumes' sum. The case's point, nothing fuses, is kept: shells 2 and
the summed volume.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017itGh5fpMEousnZ91cYcVt
This commit is contained in:
jyviko
2026-10-21 23:55:26 -04:00
parent f10dfd8d06
commit 2d3d0a081b
@@ -4,7 +4,8 @@
],
"what": "a join of a ring and an arm whose R5 convex tip stops 0.01 mm short of the ring's outer wall: nothing overlaps, so nothing fuses",
"source": "analytic",
"method": "ring pi*(30^2-24^2)*6 and arm 6*(350+12.5*pi) are 0.01 mm apart (arm tip at x=30.01): the join has nothing to fuse, so the two bodies stay apart (body_count 2) and V is the sum of the two",
"body_count": 2,
"volume_mm3": 8442.875567597792
"method": "ring pi*(30^2-24^2)*6 and arm 6*(350+12.5*pi) are 0.01 mm apart (arm tip at x=30.01): the join has nothing to fuse, so V is the sum of the two and the arm stays a separate shell. A combine's join of a tool that meets no target keeps it in the target as a separate lump (crates/doc eval.rs, Operation::Join; engine test join_meeting_nothing_keeps_the_first_body), and the tool body is consumed: one body (Ring) of two shells",
"body_count": 1,
"volume_mm3": 8442.875567597792,
"shells": 2
}