woodshop/tests
rob 7adb7e27fc Phase 3: manufacturing allowance in CutPlan (rough vs final)
Sanding never shrinks the design model; instead the cut plan distinguishes the
rough size you cut from the final size you sand to.

- CutItem gains final_length_in/final_width_in (+ final_len/final_wid/
  has_allowance helpers); length_in/width_in are the ROUGH cut size.
- _cut_items(scene, settings): a finished (finish != raw) board is cut oversize
  by sanding_allowance_in on dimensions actually CUT — length always, width only
  for sheet goods. Dimensional lumber's section width is the stock as delivered,
  not padded (Rob's point). note gains "sand to final".
- ShopSettings.sanding_allowance_in default 1/32"; serialization additive.
- BOM cut list shows "Cut … → final …" and a sanding-allowance footnote.
- tests: raw = no allowance, sanded lumber pads length only, plywood pads width
  too, allowance roundtrips in plan JSON.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 19:08:05 -03:00
..
test_bom_window.py Add project estimate: consumables, labor, and suggested selling price 2026-05-30 16:40:15 -03:00
test_cutlist.py Add plywood (sheet stock) 2026-05-30 12:33:49 -03:00
test_cutplan.py Phase 3: manufacturing allowance in CutPlan (rough vs final) 2026-05-30 19:08:05 -03:00
test_driver.py Carry conversation history so "yes" / "do that" resolve 2026-05-30 15:42:33 -03:00
test_estimate.py Phase 2: finish costs by kind in the estimate 2026-05-30 19:04:44 -03:00
test_geometry.py Add auto-assembly (Make connection) + feature rotation 2026-05-29 17:15:51 -03:00
test_gui_controller.py Carry conversation history so "yes" / "do that" resolve 2026-05-30 15:42:33 -03:00
test_instructions.py Phase 2: structured build instructions (deterministic + optional AI polish) 2026-05-30 14:36:50 -03:00
test_jigs.py Address shop-packet review (consistency, determinism, validation, jigs) 2026-05-30 15:11:02 -03:00
test_layout.py BOM window: tabs + cut-layout nesting + print (phase 1 of shop output) 2026-05-30 13:07:49 -03:00
test_materials.py Phase 1: material + finish fields + color resolver 2026-05-30 19:01:28 -03:00
test_prices.py Add cost estimate (Cost tab) with editable Kent NB price book 2026-05-30 16:23:59 -03:00
test_scene.py Phase 1: material + finish fields + color resolver 2026-05-30 19:01:28 -03:00