- 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
28 lines
1.2 KiB
Python
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 ㎥",
|
|
]
|