feat(b09): 단가산출 Q 식 — f·Q 소수 2자리 확정 뒤 나눔 · D 줄 0.1원·머리 원 미만 절사
- fix2(사사오입 0.01) — 굴착기·도자·다짐 작업량, 암 평균 Q, 표 직접 작업량 - TRUNCATED_KINDS 에 PRICE_BASIS(D) 더함 — B 는 다음 차례 - 골든셋 ③ 단가산출근거 실무 6건 208 호표 전수 일치(제외 소계·% 줄·산근 참조·계약단가 읽기) · 회귀 3,545.5 → 3,545 - 검증 프로젝트 내역 본체 122,924,846 → 122,870,975 · 전체 시험 1606 통과 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
This commit is contained in:
@@ -29,6 +29,8 @@ import re
|
||||
from decimal import Decimal
|
||||
from typing import Any
|
||||
|
||||
from B09_Estimation.B09_Estimation_MachineProductivity import fix2
|
||||
|
||||
_ZERO = Decimal(0)
|
||||
|
||||
#: 계수 이름 — 표 첫 칸이 「V(다짐속도,km/hr)」처럼 기호+설명이거나 「A」처럼 기호뿐이다.
|
||||
@@ -105,19 +107,13 @@ def capacity_per_hour(factors: dict[str, Decimal], formula: str = FORMULA_ROLLER
|
||||
"""시간당 작업량(㎥/시간). **식이 둘**이라 어느 식인지 함께 받는다.
|
||||
|
||||
롤러 `Q = 1000 × V × W × E × D × f / N` · 콤펙터 `Q = A × N × H × f × E / P`
|
||||
⚠ f 와 Q 는 **소수 2자리로 확정**(명세 7장 — 원값으로 나누면 성분 단가가 어긋남).
|
||||
"""
|
||||
f = fix2(factors["f"])
|
||||
if formula == FORMULA_PLATE:
|
||||
return (
|
||||
factors["A"] * factors["N"] * factors["H"] * factors["f"] * factors["E"] / factors["P"]
|
||||
)
|
||||
return (
|
||||
Decimal(1000)
|
||||
* factors["V"]
|
||||
* factors["W"]
|
||||
* factors["E"]
|
||||
* factors["D"]
|
||||
* factors["f"]
|
||||
/ factors["N"]
|
||||
return fix2(factors["A"] * factors["N"] * factors["H"] * f * factors["E"] / factors["P"])
|
||||
return fix2(
|
||||
Decimal(1000) * factors["V"] * factors["W"] * factors["E"] * factors["D"] * f / factors["N"]
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user