From 6588db2cb213ee72a73f27736ab4fade7a37083f Mon Sep 17 00:00:00 2001 From: umsangdon Date: Thu, 8 Oct 2026 12:04:28 +0900 Subject: [PATCH] =?UTF-8?q?fix(M02):=20=EA=B5=AC=EC=A1=B0=EB=AC=BC?= =?UTF-8?q?=EC=A7=91=EA=B3=84=ED=91=9C=20=EA=B8=B8=EC=9D=B4=20=3D=20?= =?UTF-8?q?=EA=B5=AC=EA=B0=84=ED=98=95=EC=9D=80=20=EC=8B=9C=EC=9E=91~?= =?UTF-8?q?=EC=A2=85=EB=A3=8C=20=EB=A8=BC=EC=A0=80(87-2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 옛 length_m 이 앞서 범위를 고쳐도 집계 길이가 안 따라오던 흠 고침 · 점형은 입력 길이 그대로 - 시험: test_m02_table_fill 길이 우선순위 하나 더함 Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ --- M02_MasterTemplete/M02_Table_Fill.py | 8 ++++---- resources/tester/test_m02_table_fill.py | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/M02_MasterTemplete/M02_Table_Fill.py b/M02_MasterTemplete/M02_Table_Fill.py index 4d41ea46b..b0d13902e 100644 --- a/M02_MasterTemplete/M02_Table_Fill.py +++ b/M02_MasterTemplete/M02_Table_Fill.py @@ -194,11 +194,11 @@ def _label(key: str, value: Any) -> str: def _length(item: dict[str, Any]) -> float | None: - stated = _number(item["options"].get("length_m")) - if stated: - return stated + # 구간형은 시작~종료가 먼저(노면공 87-2) — 옛 length_m 은 범위를 고쳐도 안 따라옴 start, end = _number(item.get("start_m")), _number(item.get("end_m")) - return abs(end - start) if start is not None and end is not None else None + if start is not None and end is not None: + return abs(end - start) + return _number(item["options"].get("length_m")) or None def _source_value(source: dict[str, Any], item: dict[str, Any]) -> float | None: diff --git a/resources/tester/test_m02_table_fill.py b/resources/tester/test_m02_table_fill.py index df9aab5ae..e2ec9e675 100644 --- a/resources/tester/test_m02_table_fill.py +++ b/resources/tester/test_m02_table_fill.py @@ -216,3 +216,11 @@ def test_측점이_없어진_손_값은_맨_아래_비고_줄로(project: Path) assert last["값"] == {"sta": "NO.27+15", "h_intake": 1, "memo": "설계에서 측점 없어짐"} kept = fill.strip_design(doc) assert kept["줄"][-1]["값"]["h_intake"] == 1 # 다음 저장에도 남음 + + +def test_집계_길이는_구간형이면_시작_종료가_먼저(project: Path) -> None: + # 노면공 87-2 — 범위를 고쳐도 옛 length_m 이 안 앞섬 + moved = {"start_m": 200, "end_m": 245, "options": {"length_m": 30}} + assert fill._length(moved) == 45 + assert fill._length({"options": {"length_m": 12}}) == 12 # 점형 · 구간 없음 = 입력 길이 + assert fill._length({"options": {}}) is None