From d9f06913f1ef2084b025e7b379bdf3ead559c937 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Wed, 16 Sep 2026 14:06:36 +0900 Subject: [PATCH] =?UTF-8?q?feat(z01):=20=EB=8F=8C=EC=8C=93=EA=B8=B0=20?= =?UTF-8?q?=ED=91=9C=EC=A4=80=EA=B2=BD=EC=82=AC=20=ED=91=9C=EC=97=90=20?= =?UTF-8?q?=EC=95=8C=EB=A6=BC=20=ED=95=9C=20=EC=A4=84=20=E2=80=94=20?= =?UTF-8?q?=EA=B3=A0=EC=B9=98=EB=A9=B4=20=ED=9A=A1=EB=8B=A8=20=EB=8F=84?= =?UTF-8?q?=EB=A9=B4=20=EB=AA=A8=EC=96=91=EB=8F=84=20=ED=95=A8=EA=BB=98=20?= =?UTF-8?q?=EB=B0=94=EB=80=9C(B06=20=EC=9D=B4=20=EA=B0=99=EC=9D=80=20?= =?UTF-8?q?=EA=B0=92=EC=9C=BC=EB=A1=9C=20=EB=B2=BD=20=EA=B8=B0=EC=9A=B8?= =?UTF-8?q?=EA=B8=B0=EB=A5=BC=20=EA=B7=B8=EB=A6=BC)=20=C2=B7=20=EC=95=84?= =?UTF-8?q?=ED=99=89=20=EC=A4=91=20=EA=B7=B8=EB=A6=BC=EC=97=90=EB=8F=84=20?= =?UTF-8?q?=EB=8B=BF=EB=8A=94=20=ED=95=98=EB=82=98=20=C2=B7=20=EB=AC=B8?= =?UTF-8?q?=EA=B5=AC=EB=8A=94=20=EC=84=9C=EB=B2=84=EA=B0=80=20=EB=83=84(?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EC=82=AC=EC=A0=84=EC=9D=B4=20=EC=83=9D?= =?UTF-8?q?=EA=B8=B0=EB=A9=B4=20=EB=91=90=20=EB=B2=8C=20=C2=B7=20=EB=B8=8C?= =?UTF-8?q?=EB=A0=88=EC=9D=B8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn --- Z01_MasterData/Z01_MasterData_BasePrices.py | 7 ++++++- resources/tester/test_z01_base_tables.py | 11 +++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Z01_MasterData/Z01_MasterData_BasePrices.py b/Z01_MasterData/Z01_MasterData_BasePrices.py index 1157d334..fcd75a28 100644 --- a/Z01_MasterData/Z01_MasterData_BasePrices.py +++ b/Z01_MasterData/Z01_MasterData_BasePrices.py @@ -338,9 +338,14 @@ def _sorted(rows: list[dict[str, Any]], column: str, desc: bool) -> list[dict[st return sorted(filled, key=lambda r: _order_key(r[column]), reverse=desc) + empty +#: 돌쌓기 표준경사는 B06 횡단설계가 같은 값으로 기울기를 그림 — 아홉 중 **그림에도 닿는** 하나(브레인). +_SLOPE_NOTICE = "고치면 횡단 도면 모양도 함께 바뀜 — B06 횡단설계가 같은 값으로 벽 기울기를 그림" +_EXTRA_NOTICE = {"rate": _RATE_NOTICE, "masonry_slope": _SLOPE_NOTICE} + + def notice(kind: str) -> list[str]: """표 수준 알림 — 화면이 따로 가지면 문구가 두 벌이 됨(브레인 ③).""" - return [_SCOPE_NOTICE] + ([_RATE_NOTICE] if kind == "rate" else []) + return [_SCOPE_NOTICE] + ([_EXTRA_NOTICE[kind]] if kind in _EXTRA_NOTICE else []) def spec(kind: str, columns: list[str]) -> dict[str, Any]: diff --git a/resources/tester/test_z01_base_tables.py b/resources/tester/test_z01_base_tables.py index 429320b9..97671f68 100644 --- a/resources/tester/test_z01_base_tables.py +++ b/resources/tester/test_z01_base_tables.py @@ -75,6 +75,17 @@ def test_아홉이_기초단가와_같은_길로_섬(client: TestClient) -> None assert table["source"] == [], kind # 출처표엔 아직 이 아홉이 없음 — 빈 목록(모양은 그대로) +def test_돌쌓기_경사는_도면에도_닿는다고_알림(client: TestClient) -> None: + """아홉 중 하나만 수량 말고 **그림**에도 닿음 — 화면이 사전을 가지면 문구가 두 벌(브레인).""" + slope = _get(client, "masonry_slope", size=1)["notice"] + assert any("횡단 도면" in line for line in slope) and len(slope) == 2 + assert all( + not any("횡단 도면" in line for line in _get(client, kind, size=1)["notice"]) + for kind in NEW_KINDS + if kind != "masonry_slope" + ) + + def test_값표만_태우고_이음표는_안_태움(client: TestClient) -> None: formwork = " ".join(_ids(_get(client, "formwork_reuse", size=500))) assert "type_map" not in formwork and "euroform_type/classes" in formwork