From 8406fd2367c2a7377204e01ad3ee913f6013cef8 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 7 Nov 2026 20:29:18 +0900 Subject: [PATCH] =?UTF-8?q?fix(802-4b-1):=20M02=20=ED=8C=8C=EC=83=9D=20SK?= =?UTF-8?q?=20=EC=98=B5=EC=85=98=20=EA=B0=92=20=3D=20M01=20=EB=AC=B8?= =?UTF-8?q?=EC=84=9C=20=EA=B8=B0=EB=B3=B8(=EC=9E=90=EC=9E=AC=EC=A7=80?= =?UTF-8?q?=EC=97=AD=20=EC=9E=90=EB=8F=99=EA=B0=92=200=20=E2=86=92=20?= =?UTF-8?q?=ED=8F=AC=ED=95=AD)=20=E2=80=94=20=EB=B0=9B=EC=9D=80=20?= =?UTF-8?q?=EA=B0=92=EC=9D=B4=20=EC=9D=B4=EA=B9=80=20=C2=B7=20=EA=B8=88?= =?UTF-8?q?=EC=95=A1=20=EA=B7=B8=EB=8C=80=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `M02_Doc_Copy.given_of` = M01 수식 탭 기본(`master_equation.given_of` · 자동값 › 기본 제안) › SK 받은 값(빈 값 = 기본) — 옛 = 엔진 자동값만(입력 기본 없는 자재지역 = 0) - SK 파생 · 일위대가 · SC 줄 문서 · 가져온 식 문서 모두 같은 길 · 8004 GC000211 바탕 SK 자재지역 포항 · 계 124,419 그대로 - 시험 test_802_4a 옵션 값 한 건(빈 입력 · 빈 글 = M01 기본 · 울진 = 울진 · 금액 = 옛 셈) · 795_1 · 795_2 · 795_3 · 795_4 · 802_4a · 802_4b1 통과 Co-Authored-By: Claude Opus 5.5 --- M02_MasterTemplete/M02_Doc_Copy.py | 10 +++++----- resources/tester/test_802_4a_m02_doc.py | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/M02_MasterTemplete/M02_Doc_Copy.py b/M02_MasterTemplete/M02_Doc_Copy.py index cfe4bed21..b05fc9229 100644 --- a/M02_MasterTemplete/M02_Doc_Copy.py +++ b/M02_MasterTemplete/M02_Doc_Copy.py @@ -32,7 +32,6 @@ _SCRIPTS = str(Path(__file__).resolve().parents[1] / "resources/master_data/scri if _SCRIPTS not in sys.path: sys.path.insert(0, _SCRIPTS) -import master_auto as mau # noqa: E402 import master_doc as md # noqa: E402 import master_doc_calc as mc # noqa: E402 import master_doc_convert as cv # noqa: E402 @@ -225,14 +224,15 @@ def _apart(doc: dict, lines: list[dict], n: int) -> None: def given_of(whole: Any, code: str, given: Any) -> dict: - """옛 `run_line` 과 같은 입력 — 빈 입력 = 자동값(M01 줄) › 받은 값.""" + """문서 옵션 값 — M01 수식 탭 기본(자동값 › 기본 제안 · `master_equation.given_of`) › + 받은 값(빈 값 = 기본 · 802-4b-1 자재지역 자동값 0 이 「포항」 을 덮던 흠).""" from M01_MasterData import M01_MasterData_Store as m01 + mine = {k: v for k, v in m01._dec(given or {}).items() if v not in (None, "")} try: - auto = {k: v for k, v in mau.values(whole, whole.logic(code)).items() if v is not None} + return cv.meq.given_of(whole, whole.logic(code), mine) except _ERR: - auto = {} - return {**auto, **m01._dec(given or {})} + return mine def apart_of(marks: Any, mats: Any) -> list[int]: diff --git a/resources/tester/test_802_4a_m02_doc.py b/resources/tester/test_802_4a_m02_doc.py index 1c86c5261..537dfe7b6 100644 --- a/resources/tester/test_802_4a_m02_doc.py +++ b/resources/tester/test_802_4a_m02_doc.py @@ -258,3 +258,19 @@ def test_delete_tolerant_and_blank(world): empty = _sk(me) got = _calc(me, _doc(me, empty)) assert got["기준"] is None and "빈 문서" in got["수식셈"]["까닭"] + + +def test_option_value_is_m01_default_not_auto(world): + """파생 SK 옵션 값 = M01 문서 기본(자재지역 · 자동값 0 아님) · 받은 값이 이김 · 금액 = 옛 셈.""" + me = world["personal"] + m01 = next(v for v in dc.folder()[FORM]["변수"] if v["열쇠"] == "자재지역")["연결"]["값"] + for given, want in (({}, m01), ({"자재지역": ""}, m01), ({"자재지역": "울진"}, "울진")): + key = _sk(me, 바탕={"로직": FORM}, 입력값=given) + got = _at(me, path.read, key) + assert next(v for v in got["문서"]["변수"] if v["열쇠"] == "자재지역")["연결"]["값"] == want + token = dsk.OLD.set(True) + try: + old = _sum(me, key) + finally: + dsk.OLD.reset(token) + assert got["셈"]["계"] == old == _sum(me, key)