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:
@@ -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("고르기")
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user