Files
Aislo/resources/tester/test_b09_work_items_ax.py
T
eomsangdonandClaude Opus 5 fc649316c6 feat(b09): 일위대가 호표 성분 소계 절사 · 내역 줄 성분별 절사 — 골든셋 네 벌 다 섬
- TRUNCATED_KINDS 에 UNIT_PRICE(B) 더함 · 비율 줄(공구손료·제잡비·품 할증)도 0.1원 절사
- 내역 줄 bill_line — 성분마다 절사(수량 × 성분 단가), 합계 = 셋의 합 · 직접비 밑수도 자른 성분
- 묶음 줄·구조물도 일위대가 표(하위 양식 포함)도 같은 규칙 — 성분 소계 원 미만 절사
- 골든셋 ① 일위대가표 성분 소계 477/510(93.5%) · 안 맞는 19 호표 = 영월 반올림 원본 17 · 영덕 적용률 줄 서식 2
- 골든셋 ① 설계내역서 줄 321 전수 일치
- 검증 프로젝트 내역 본체 122,870,975 → 122,848,989 · 전체 시험 1614 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 00:53:31 +09:00

28 lines
1.2 KiB
Python

"""산림 품셈에 절이 없는 공종 `AX-WK-*` (명세 2장 ② 갈래 WK · 2026-09-13).
지키는 것 — 모르타르 배합 1:3 = 보통인부 0.66인/㎥(건설 품셈 건축 9-1-1, 모래체가름 포함) ·
시멘트·모래는 자재 단가 층이 없어 금액에 안 들고 「안 붙은 줄」로 드러남.
"""
from __future__ import annotations
from decimal import Decimal
from B09_Estimation.B09_Estimation_UnitPrice import cached_build
from B09_Estimation.B09_Estimation_WorkItems_AX import MORTAR_MIX
def test_모르타르_배합은_보통인부_066인이고_자재는_드러내기만() -> None:
build = cached_build()
title = build.book.title(f"B-{MORTAR_MIX}")
assert (title.name, title.spec, title.unit) == ("모르타르 배합", "1:3", "㎥")
money = build.book.resolve(f"B-{MORTAR_MIX}")
wage = build.book.resolve("1002").labor # 보통인부
# 일위대가 호표 성분 소계는 원 미만 절사(명세 7장 · PLAN 6장 ①).
assert money.labor == (wage * Decimal("0.66")).to_integral_value("ROUND_FLOOR")
assert money.material == 0
assert [label.split(" —")[0] for label in build.unattached[MORTAR_MIX]] == [
"시멘트 510 kg",
"모래 1.10 ㎥",
]