Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
34 lines
1.6 KiB
Python
34 lines
1.6 KiB
Python
"""10-A ⑭ 표 형태 66표 까닭을 화면에 — 2026-09-14 사용자 확정 「SW 규칙 · 화면에 드러낼 것」.
|
|
|
|
사람이 가른 표 형태(`_Forms.FORM_JUDGMENTS`)는 원문 근거가 없는 우리 규칙 —
|
|
마스터엔 있으나 화면에 한 번도 안 닿았음. 모양은 서브 10-A 채움과 같게 **칸 밑 회색 한 줄**:
|
|
일위대가 상세(`detail_of` → 화면 hint) · 일위대가가 없는 공종은 내역 「일위대가 없음」 비고.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from B09_Estimation.B09_Estimation_KnownGaps import form_judgment_note
|
|
from B09_Estimation.B09_Estimation_UnitPrice import cached_build, detail_of
|
|
|
|
|
|
def test_판정표가_딸린_일위대가_상세에_까닭_한_줄() -> None:
|
|
build = cached_build()
|
|
code = next(c for c in build.book.titles if c.startswith("B-FP-13-04-04"))
|
|
note = detail_of(build, code)["form_basis_note"]
|
|
assert "F0412" in note and "참조표" in note and "뒷길이 표준" in note, note
|
|
assert "SW 규칙" in note
|
|
|
|
|
|
def test_판정표_없는_공종은_빈_칸() -> None:
|
|
assert form_judgment_note("FP-09-03-02") == ""
|
|
|
|
|
|
def test_일위대가_없는_공종은_내역_비고에_까닭() -> None:
|
|
from B09_Estimation.B09_Estimation_BillOfQuantities import build_bill
|
|
|
|
item = {"work_item_code": "FP-12-38-01", "name": "사용횟수", "spec": "", "unit": "회",
|
|
"quantity": "1", "in_bill": True} # fmt: skip
|
|
rows = build_bill({"work_items": [item], "materials": []}).rows
|
|
line = next(r for r in rows if r.code == "FP-12-38-01")
|
|
assert "F0392" in line.note and "계수표" in line.note, line.note
|