diff --git a/M02_MasterTemplete/DataFlow/M02_DF_Convert.py b/M02_MasterTemplete/DataFlow/M02_DF_Convert.py index 37153d371..949f0f2d3 100644 --- a/M02_MasterTemplete/DataFlow/M02_DF_Convert.py +++ b/M02_MasterTemplete/DataFlow/M02_DF_Convert.py @@ -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("고르기") diff --git a/resources/tester/test_m02_df_convert.py b/resources/tester/test_m02_df_convert.py index 35486a4af..1305f70ef 100644 --- a/resources/tester/test_m02_df_convert.py +++ b/resources/tester/test_m02_df_convert.py @@ -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)