feat(master_data): 건설품셈 공통 7장(돌공사) 로직 7줄 · 시험 4개
- 메쌓기 · 찰쌓기 · 메붙임 · 찰붙임 · 전석쌓기 · 전석깔기 · 석재판 습식 - 굴착기+부착용집게 줄은 값 칸 이름으로 막힘 · 7-4-2 · 7-4-3 범위규칙이 글 - 견본 검사에 건설 3·4·7장 · 산림 6·8장 더함 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
This commit is contained in:
@@ -15,11 +15,16 @@ SAMPLES = [
|
||||
"계수_건설품셈_공통8장.json",
|
||||
"계수_산림품셈_9장.json",
|
||||
"기계_건설품셈.json",
|
||||
"로직_건설품셈_공통3장.json",
|
||||
"로직_건설품셈_공통4장.json",
|
||||
"로직_건설품셈_공통7장.json",
|
||||
"로직_건설품셈_공통8장.json",
|
||||
"로직_산림품셈_03장.json",
|
||||
"로직_산림품셈_04장.json",
|
||||
"로직_산림품셈_05장.json",
|
||||
"로직_산림품셈_06장.json",
|
||||
"로직_산림품셈_07장.json",
|
||||
"로직_산림품셈_08장.json",
|
||||
"로직_산림품셈_10장.json",
|
||||
"로직_산림품셈_11장.json",
|
||||
"로직_산림품셈_13장.json",
|
||||
@@ -197,6 +202,35 @@ def test_방제_벌목조재_감_할증(whole):
|
||||
assert got["줄"][0]["수량"].quantize(Decimal("0.000001")) == want.quantize(Decimal("0.000001"))
|
||||
|
||||
|
||||
def test_건설_석재판_습식_공구손료(whole):
|
||||
"""공통 7-4-1 — 바닥부 테라조판 석공 3 · 줄눈공 1 · 보통인부 2 ÷ 15㎡ · 공구손료 인력품 2%."""
|
||||
got = mf.run(whole, "건설품셈:7-4-1 습식공법", {"시공부위": "바닥부", "자재": "테라조판"})
|
||||
assert [line["수량"] for line in got["줄"][:3]] == [Decimal(3) / 15, Decimal(1) / 15, Decimal(2) / 15]
|
||||
assert got["경비"] == got["노무비"] * Decimal("0.02")
|
||||
|
||||
|
||||
def test_건설_정원석_난이도_가산(whole):
|
||||
"""공통 4-4-1 — 쌓기 20ton 미만 조경공 1.212 × 1.1 · 굴착기 0.7㎥ 0.657hr 그대로."""
|
||||
given = {"작업": "쌓기", "중량": "20ton 미만", "난이도가산": 10, "지역": "전국평균", "보정작업": "해당 없음"}
|
||||
got = mf.run(whole, "건설품셈:4-4-1 정원석 쌓기 및 놓기", given)
|
||||
assert [line["수량"] for line in got["줄"][:2]] == [Decimal("1.3332"), Decimal("0.657")]
|
||||
|
||||
|
||||
def test_건설_벌목_집재거리_가산(whole):
|
||||
"""공통 3-9-1 — 나무높이 6m 벌목부 2.8 · 집재 250m = 100m 초과 두 번 × 30%."""
|
||||
got = mf.run(whole, "건설품셈:3-9-1 벌목", {"나무높이": 6, "집재거리": 250})
|
||||
assert got["줄"][0]["수량"] == Decimal("4.48")
|
||||
|
||||
|
||||
def test_건설_흙깎기_암_치즐(whole):
|
||||
"""공통 3-2-3 — 풍화암 65㎥/일 · 굴착기+대형브레이커 8/65 시간 · 치즐 1%."""
|
||||
given = {"암분류": "풍화암", "집토": "안 함", "지역": "전국평균", "보정작업": "해당 없음"}
|
||||
got = mf.run(whole, "건설품셈:3-2-3 흙깎기(기계) 암", given)
|
||||
brk = got["줄"][1]
|
||||
assert brk["수량"] == Decimal(8) / 65
|
||||
assert got["줄"][-1]["금액"] == brk["금액"] / 100
|
||||
|
||||
|
||||
def test_범위_입력은_막음(whole):
|
||||
with pytest.raises(mf.FormulaError):
|
||||
mf.run(
|
||||
|
||||
Reference in New Issue
Block a user