fix(m02-df): 변환 변수 예시값 = 시험입력 · 없으면 왼쪽 시험 계산 기본값(master_auto)

- 고르기 첫 값 · 범위 아래 끝 · 표에서 가장 낮은 값 — /logic/auto 와 같은 규칙(GF000004 횡단경사 55) · 글 수 → 수

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VBToTCGk5dqDKeXCEP3vhk
This commit is contained in:
2026-10-02 01:36:27 +09:00
co-authored by Claude Opus 5.5
parent 1ee1668368
commit d1df48c45f
2 changed files with 17 additions and 7 deletions
+13 -6
View File
@@ -87,12 +87,19 @@ class _Flow:
self.links.append(one | ({"rule": rule} if rule else {}))
def design(self) -> None:
"""설계 값 상자 — 예시값 = 줄의 시험입력 · 없으면 check_master.시험입력 기본."""
given = store.cm.시험입력(self.row)
try:
given = mf._inputs(self.row, given) # 글로 적힌 수 → 수(옛 엔진과 같음)
except mf.FormulaError:
pass
"""설계 값 상자 — 예시값 = 줄의 시험입력 · 없으면 왼쪽 시험 계산 기본값(master_auto)."""
given = store.mau.values(self.master, self.row)
given.update(self.row.get("시험입력") or {})
for (
k,
v,
) in given.items(): # 글로 적힌 수 → 수(고르기 값은 그대로 · 옛 엔진 _inputs 와 같음)
spec = self.specs.get(k) or {}
if isinstance(v, str) and "고르기" not in spec:
try:
given[k] = Decimal(v.strip())
except ArithmeticError:
pass
variables = []
for s in self.row.get("입력") or []:
pick = s.get("고르기")
+4 -1
View File
@@ -275,7 +275,7 @@ def test_전수_대조_옛_셈_같음() -> None:
def test_변수_예시값_합계_끝수() -> None:
_copy()
got = _shape("GF000007", "GF000226")
got = _shape("GF000007", "GF000226", "GF000004")
for key, one in got.items():
flow = one["flow"]
design = next(b for b in flow["boxes"] if b["id"] == "in-design")
@@ -284,3 +284,6 @@ def test_변수_예시값_합계_끝수() -> None:
box = next(b for b in got["GF000226"]["flow"]["boxes"] if b["id"] == "in-design")
vars226 = {v["name"]: v["example"] for v in box["input"]["variables"]}
assert vars226["직경"] == 60 # 줄의 시험입력(글 「60.0」 → 수)
box = next(b for b in got["GF000004"]["flow"]["boxes"] if b["id"] == "in-design")
vars4 = {v["name"]: v["example"] for v in box["input"]["variables"]}
assert vars4["횡단경사"] == 55 # 왼쪽 시험 계산 기본값(master_auto)