feat(master_data): 건설품셈 토목 3장(터널) 로직 5줄 · 자체 재료 1개 · 계수 칸 이름·범위규칙 정리
- 3-2-5 터널굴착 1발파당 인력: 공법군 6 · 싸이클 시간(분) 입력 × 인원 ÷ 60 ÷ 8 · 장대터널 α1 · 병렬터널 59% · 잡재료·경장비 3% - 3-3-1 철재거푸집 · 3-4-1 터널 방수(방수시트 재료_자체) · 3-4-2 작업대차 · 3-4-3 암반청소 - 계수 토목 3장: 칸 이름 빈칸 정리(갱구에서뚫기점까지의거리 · 바닥및인버트) · α1 범위규칙을 엔진이 읽는 「초과·이하」로 - 막힘: 3-2-1~3-2-4 싸이클·능력·천공속도·장비조합 기준표(설계자 계산) · 3-1-2 여굴(수량 기준) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
This commit is contained in:
@@ -70,78 +70,78 @@
|
||||
"기준": "갱구에서 뚫기점까지의 거리(m)",
|
||||
"출처": "건설품셈 토목 3-1-1 주④",
|
||||
"조건": {
|
||||
"갱구에서 뚫기점까지의 거리": "범위"
|
||||
"갱구에서뚫기점까지의거리": "범위"
|
||||
},
|
||||
"값칸": {
|
||||
"할증률": "%"
|
||||
},
|
||||
"범위규칙": "까지 = 이하 · 마지막 「5,000m 이상」 만 이상",
|
||||
"범위규칙": "초과·이하",
|
||||
"줄": [
|
||||
{
|
||||
"갱구에서 뚫기점까지의 거리": [
|
||||
"갱구에서뚫기점까지의거리": [
|
||||
500,
|
||||
1000
|
||||
],
|
||||
"할증률": 10
|
||||
},
|
||||
{
|
||||
"갱구에서 뚫기점까지의 거리": [
|
||||
"갱구에서뚫기점까지의거리": [
|
||||
1000,
|
||||
1500
|
||||
],
|
||||
"할증률": 20
|
||||
},
|
||||
{
|
||||
"갱구에서 뚫기점까지의 거리": [
|
||||
"갱구에서뚫기점까지의거리": [
|
||||
1500,
|
||||
2000
|
||||
],
|
||||
"할증률": 30
|
||||
},
|
||||
{
|
||||
"갱구에서 뚫기점까지의 거리": [
|
||||
"갱구에서뚫기점까지의거리": [
|
||||
2000,
|
||||
2500
|
||||
],
|
||||
"할증률": 40
|
||||
},
|
||||
{
|
||||
"갱구에서 뚫기점까지의 거리": [
|
||||
"갱구에서뚫기점까지의거리": [
|
||||
2500,
|
||||
3000
|
||||
],
|
||||
"할증률": 50
|
||||
},
|
||||
{
|
||||
"갱구에서 뚫기점까지의 거리": [
|
||||
"갱구에서뚫기점까지의거리": [
|
||||
3000,
|
||||
3500
|
||||
],
|
||||
"할증률": 60
|
||||
},
|
||||
{
|
||||
"갱구에서 뚫기점까지의 거리": [
|
||||
"갱구에서뚫기점까지의거리": [
|
||||
3500,
|
||||
4000
|
||||
],
|
||||
"할증률": 70
|
||||
},
|
||||
{
|
||||
"갱구에서 뚫기점까지의 거리": [
|
||||
"갱구에서뚫기점까지의거리": [
|
||||
4000,
|
||||
4500
|
||||
],
|
||||
"할증률": 80
|
||||
},
|
||||
{
|
||||
"갱구에서 뚫기점까지의 거리": [
|
||||
"갱구에서뚫기점까지의거리": [
|
||||
4500,
|
||||
5000
|
||||
],
|
||||
"할증률": 90
|
||||
},
|
||||
{
|
||||
"갱구에서 뚫기점까지의 거리": [
|
||||
"갱구에서뚫기점까지의거리": [
|
||||
5000,
|
||||
null
|
||||
],
|
||||
@@ -184,7 +184,7 @@
|
||||
"값칸": {
|
||||
"아치": "㎝",
|
||||
"측벽": "㎝",
|
||||
"바닥 및 인버트": "㎝"
|
||||
"바닥및인버트": "㎝"
|
||||
},
|
||||
"줄": [
|
||||
{
|
||||
@@ -197,7 +197,7 @@
|
||||
12,
|
||||
18
|
||||
],
|
||||
"바닥 및 인버트": [
|
||||
"바닥및인버트": [
|
||||
10,
|
||||
15
|
||||
]
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -87,6 +87,7 @@
|
||||
{ "열쇠": "결속선", "이름": "결속선", "규격": "", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)" },
|
||||
{ "열쇠": "에폭시", "이름": "에폭시", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "건설품셈 토목 1-9-4 낙석방지망 재료(참고자료) · 포켓식만" },
|
||||
{ "열쇠": "IV전선 2.0㎜", "이름": "IV전선", "규격": "2.0㎜", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 토목 6-7-5 강관압입추진공 조명시설" },
|
||||
{ "열쇠": "백열등 100W", "이름": "백열등", "규격": "100W", "단위": "EA", "값": null, "출처": "자체", "비고": "건설품셈 토목 6-7-5 강관압입추진공 조명시설" }
|
||||
{ "열쇠": "백열등 100W", "이름": "백열등", "규격": "100W", "단위": "EA", "값": null, "출처": "자체", "비고": "건설품셈 토목 6-7-5 강관압입추진공 조명시설" },
|
||||
{ "열쇠": "일체식 방수시트", "이름": "일체식 방수시트", "규격": "부직포 부착 터널 방수시트", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 토목 3-4-1 터널 방수 재료량" }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ SAMPLES = [
|
||||
"로직_건설품셈_공통8장.json",
|
||||
"로직_건설품셈_토목1장.json",
|
||||
"로직_건설품셈_토목2장.json",
|
||||
"로직_건설품셈_토목3장.json",
|
||||
"로직_건설품셈_토목6장.json",
|
||||
"로직_산림품셈_03장.json",
|
||||
"로직_산림품셈_04장.json",
|
||||
@@ -291,6 +292,20 @@ def test_토목_관부설_시공조건_요율(whole):
|
||||
assert round(got["줄"][0]["수량"], 4) == round(Decimal(3) / (Decimal(13) * Decimal("1.33")), 4)
|
||||
|
||||
|
||||
def test_토목_터널굴착_장대할증(whole):
|
||||
"""토목 3-2-5 — A군 싸이클 480분 · 갱구 1,200m(α1 20%) = 1인 × 480/60/8 × 1.2."""
|
||||
given = {
|
||||
"공법군": "발파굴착A군",
|
||||
"싸이클": 480,
|
||||
"착암공인원": 3,
|
||||
"보통인부인원": 3,
|
||||
"갱구거리": 1200,
|
||||
"병렬터널": "아님",
|
||||
}
|
||||
got = mf.run(whole, "건설품셈:3-2-5 작업인원", given)
|
||||
assert got["줄"][0]["수량"] == Decimal("1.2")
|
||||
|
||||
|
||||
def test_범위_입력은_막음(whole):
|
||||
with pytest.raises(mf.FormulaError):
|
||||
mf.run(
|
||||
|
||||
Reference in New Issue
Block a user