From b916397141457e7c3a18782a202ea12327c10f61 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Mon, 19 Oct 2026 17:02:56 +0900 Subject: [PATCH] =?UTF-8?q?fix(476-2=20=EC=B6=94=EC=B2=9C=20=EC=B4=88?= =?UTF-8?q?=EA=B8=B0=20=EC=A2=85=EB=8B=A8):=20=EC=B4=88=EA=B8=B0=20?= =?UTF-8?q?=EC=A2=85=EB=8B=A8=20=ED=95=9C=20=EC=A4=84=20=3D=20=EC=95=8C?= =?UTF-8?q?=EB=A6=BC=20N=EA=B1=B4=20=C2=B7=20=EC=95=8C=EB=A6=BC=20?= =?UTF-8?q?=EA=B8=80=EC=9D=80=20=EB=A7=88=EC=9A=B0=EC=8A=A4=20=EC=98=AC?= =?UTF-8?q?=EB=A6=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 화면 확인(검증_sub1) 알림 37~94건이 한 줄에 다 붙어 줄이 넘침. Co-Authored-By: Claude Opus 5.5 --- B05_Profile/B05_Profile_UI_RouteEdit_Recommend.ts | 1 + B05_Profile/B05_Profile_UI_RouteEdit_Recommend_Profile.ts | 6 ++++-- resources/tester/helper_476_2_initial_profile.cjs | 1 + resources/tester/test_476_2_recommend_initial_line.py | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/B05_Profile/B05_Profile_UI_RouteEdit_Recommend.ts b/B05_Profile/B05_Profile_UI_RouteEdit_Recommend.ts index 23cca6df3..1c8cf5d97 100644 --- a/B05_Profile/B05_Profile_UI_RouteEdit_Recommend.ts +++ b/B05_Profile/B05_Profile_UI_RouteEdit_Recommend.ts @@ -441,6 +441,7 @@ export function openRecommendModal(params: RecommendParams): void { const initial = view?.initialProfile ?? null; const initialShape = initial && !("error" in initial) ? initial : null; line("initial").textContent = initialLine(initial); + line("initial").title = initialShape?.warnings.join("\n") ?? ""; line("initial").classList.toggle("is-warn", !!initial && "error" in initial); line("initial").hidden = !initial; const svg = profileSvg(balance, initialShape); diff --git a/B05_Profile/B05_Profile_UI_RouteEdit_Recommend_Profile.ts b/B05_Profile/B05_Profile_UI_RouteEdit_Recommend_Profile.ts index 3ab830d7c..b96c4cf5e 100644 --- a/B05_Profile/B05_Profile_UI_RouteEdit_Recommend_Profile.ts +++ b/B05_Profile/B05_Profile_UI_RouteEdit_Recommend_Profile.ts @@ -113,7 +113,8 @@ export function parseInitialProfile(raw: unknown): InitialProfile | { error: str }; } -/** 한 줄 — 「초기 종단: 꼭짓점 12 · 종단곡선 10 · 직선화 3 · 최대 종단경사 11.2%(L 20)」 · 실패면 이유. */ +/** 한 줄 — 「초기 종단: 꼭짓점 12 · 종단곡선 10 · 직선화 3 · 최대 종단경사 11.2%(L 20) · 알림 2건」 · + * 실패면 이유. 알림 글은 줄 title(`initialProfile.warnings`). */ export function initialLine(initial: InitialProfile | { error: string } | null): string { if (!initial) return ""; if ("error" in initial) return `초기 종단을 셈하지 못했습니다 — ${initial.error}`; @@ -124,7 +125,8 @@ export function initialLine(initial: InitialProfile | { error: string } | null): initial.curveLengthM !== null ? `(L ${initial.curveLengthM})` : "" }`, ]; - return [parts.join(" · "), ...initial.warnings].join(" · "); + if (initial.warnings.length) parts.push(`알림 ${initial.warnings.length}건`); + return parts.join(" · "); } const m3 = (value: number): string => `${Math.round(value).toLocaleString("ko-KR")}㎥`; diff --git a/resources/tester/helper_476_2_initial_profile.cjs b/resources/tester/helper_476_2_initial_profile.cjs index 0c6a48967..74dc83276 100644 --- a/resources/tester/helper_476_2_initial_profile.cjs +++ b/resources/tester/helper_476_2_initial_profile.cjs @@ -107,6 +107,7 @@ process.stdout.write( failedLine: prof.initialLine(failed.initialProfile), missing: model.normalizeRouteInitial({ ...answer, initial_profile: undefined }, "follow", null) .initialProfile, + warnLine: prof.initialLine(prof.parseInitialProfile({ ...initialRaw, warnings: ["a", "b"] })), shortLine: prof.parseInitialProfile({ ...initialRaw, line: [[0, 100]] }), }), ); diff --git a/resources/tester/test_476_2_recommend_initial_line.py b/resources/tester/test_476_2_recommend_initial_line.py index c8fe799e1..e858c9277 100644 --- a/resources/tester/test_476_2_recommend_initial_line.py +++ b/resources/tester/test_476_2_recommend_initial_line.py @@ -34,6 +34,7 @@ def test_펴기와_캐시_빼기() -> None: def test_한_줄과_실패_글() -> None: out = _out() assert out["line"] == "초기 종단: 꼭짓점 3 · 종단곡선 1 · 직선화 2 · 최대 종단경사 10.0%(L 20)" + assert out["warnLine"].endswith("(L 20) · 알림 2건") # 알림 글은 title assert out["failed"] == {"error": "지반고 종단 — 측점이 모자랍니다"} assert out["failedLine"].startswith("초기 종단을 셈하지 못했습니다 — 지반고 종단")