"""10-A — 우리가 정한 SW 규칙을 화면에 드러내기(B08 몫) · 2026-09-14 사용자 확정 · PLAN 12장. 훑기(21건) 결과 안 보이거나 반만 보이던 자리만 채움 — 칸 밑 근거 한 줄 · 사유 문구 · 제안 회색. 번호는 PLAN 10장 「✅ 사용자 확정 — SW 규칙」 줄 차례(PLAN 4장 10-A 절에 목록). """ from pathlib import Path ROOT = Path(__file__).resolve().parents[2] B08 = ROOT / "B08_Quantity" def _read(name: str) -> str: return (B08 / name).read_text(encoding="utf-8") def test_3_뒷채움_폭_칸_신설은_B05_등록부_몫() -> None: assert "칸을 새로 두는 것은 B05 등록부 몫" in _read( "B08_Quantity_Engine_UnitQuantity_Masonry.py" ) def test_4_하위_일위대가_깊이_한도를_미리_보인다() -> None: assert "하위 일위대가는 5단까지" in _read("B08_Quantity_UI_StructureSheet_UnitPrice.ts") def test_5_계수_열과_돌_종류는_다른_축() -> None: assert "돌 종류는 그대로" in _read("B08_Quantity_UI_StructureSheet_Spec.ts") def test_9_고친_식은_양식과_프로젝트에_묶임() -> None: assert "제원(높이 등)을 바꿔도 따라감" in _read("B08_Quantity_UI_StructureSheet_Formula.ts") def test_16_양식_반올림은_m당_값에() -> None: assert "반올림은 m당 값에 걸고" in _read("B08_Quantity_UI_StructureSheet.ts") def test_22_제근_굴착기_크기_칸() -> None: page = _read("B08_Quantity_UI_Page.ts") side = _read("B08_Quantity_UI_Side_RootRemoval.ts") assert "root_removal_excavator_m3: draft.root_removal_excavator_m3" in page assert "root_removal_excavator_m3: (stored.root_removal_excavator_m3" in page assert "appendRootRemovalFields(" in page assert "choices.suggested" in side and "createButton(" in side assert side.count("= suggested.value") == 2 # 단추 안에서만 넣음(비우면 「안 정함」)