fix(782-3): 8-2 시공능력 로직 「0 이면 기본」 가드 칸 — 견본 자동값 1 로도 엉뚱한 값 안 나오게(분석 635)
- 가드 칸에 범위 [0, 원문 끝] — 견본 자동값 = 0(원문 기본): E입력 [0, 1](원문 E 표 모두 1 이하) · 굴착기 싸이클입력 [0, 30](원문 3 표 13∼30초) · 디젤 해머 α입력 [0, 4.0] · 워터제트 α입력 [0, 1.20] · 펌프준설 q입력 [0, 387] · 그래브 f입력 · k입력 [0, 1.00] · 콘크리트 운반 배출 [0, 4] · 대기 [0, 10] · 하역 [0, 2] - 범위 없는 가드 칸(트랜처 전진 · 후진거리 · 로더 주행거리 · 스테이빌라이저 혼합횟수 · 플랜트싸이클)은 1 이어도 기본의 3배 안 — 그대로 - 압쇄기 · 골재세척 q입력 뺌(원문 q 한 값 · 1 이면 60배 어긋남) · 스테이빌라이저 유효혼합폭 최대(로터폭 − 0.4, 0)(자동값 음수 막음) - 유압 파일 해머 강관 Ta 표 「16이하」 ↔ β 표 「16 이하」 글자 맞춤(16m 이하 줄 못 찾던 흠) · 그래브 N값 고르기 「해당 없음」 끝으로(첫 값 = 표 줄) - 지킴 시험 test_782_3 가드 칸 자동값 덧 · 기존 로직 · 표 · 키 그대로(로직_08장 새 줄만 바뀜) · check_master 전후 같음 · 계산전부 1513 멈춤 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -234,3 +234,32 @@ def test_check_master():
|
||||
for row in files[name]["줄"]:
|
||||
if row["키"] >= "GC001143":
|
||||
mf.run(whole, row["키"], cm.시험입력(row)) # 시험 입력으로 멈춤 없음
|
||||
|
||||
|
||||
GUARD = __import__("re").compile(r"만약\((\w+) > 0, \1,")
|
||||
|
||||
|
||||
def test_가드_칸_자동값(whole):
|
||||
# 분석 635 — 「0 이면 기본」 가드 칸은 견본 자동값 1 로 셈해도 터무니없지 않게:
|
||||
# 범위 [0, 원문 끝] 칸은 자동값 0(= 원문 기본) · 범위 없는 가드 칸은 1 이어도 기본의 10배 안
|
||||
import master_auto as ma
|
||||
|
||||
files = cm.load([LOGIC, LOGIC13])
|
||||
rows = [r for f in files.values() for r in f["줄"] if r["키"] >= "GC001143"]
|
||||
loose = set()
|
||||
for row in rows:
|
||||
auto = ma.values(whole, row)
|
||||
got = mf.run(whole, row["키"], auto)
|
||||
value = got.get("결과", got.get("계"))
|
||||
assert value >= 0, row["키"]
|
||||
spec = {i["이름"]: i for i in row["입력"]}
|
||||
for name in GUARD.findall(" ".join(ma._texts(row))):
|
||||
if "범위" in spec.get(name, {}):
|
||||
assert auto[name] == 0, (row["키"], name)
|
||||
elif name in spec:
|
||||
loose.add(name)
|
||||
base = cm.시험입력(row)
|
||||
zero = mf.run(whole, row["키"], {**base, name: 0})["결과"]
|
||||
one = mf.run(whole, row["키"], {**base, name: 1})["결과"]
|
||||
assert one / zero < 10, (row["키"], name)
|
||||
assert loose == {"전진거리", "후진거리", "주행거리", "혼합횟수", "플랜트싸이클"}
|
||||
|
||||
Reference in New Issue
Block a user