diff --git a/B05_Profile/B05_Profile_UI_RouteEdit_Initial_Model.ts b/B05_Profile/B05_Profile_UI_RouteEdit_Initial_Model.ts index bfc290474..33c364519 100644 --- a/B05_Profile/B05_Profile_UI_RouteEdit_Initial_Model.ts +++ b/B05_Profile/B05_Profile_UI_RouteEdit_Initial_Model.ts @@ -602,12 +602,14 @@ export function endsLine(choice: InitialChoice | null): string { return `시종점 높이 차가 상한을 넘음(평균 ${fixed(choice.endsGradePct ?? null, 1, "%")}) — 종단으로 못 맞춤 · 노선을 늘려야 함`; } -/** 상한을 풀었을 때만 — 「지형상 14% 로 못 이어져 상한을 23.5% 로 풂」. 아니면 빈 글. */ +/** 탐색 링크 한도를 풀었을 때만 — 「탐색 링크 한도 14.0 → 23.5% 로 풂(지형상 14.0% 로 못 이음 · 4 m 마디)」. 아니면 빈 글. + * 엔진 탐색 격자(4 m) 링크 기울기 한도 — 원지반 기울기(참고 · 측점 20 m)와 잣대가 다름(421-3). */ export function relaxedLine(choice: InitialChoice | null): string { const bound = choice?.terrainBoundPct; if (bound === null || bound === undefined) return ""; - const limit = fixed(choice?.criteria?.maxGradePct ?? null, 1, "%"); - return `지형상 ${limit} 로 못 이어져 상한을 ${fixed(bound, 1, "%")} 로 풂`; + const limitPct = choice?.criteria?.maxGradePct ?? null; + const limit = fixed(limitPct, 1, "%"); + return `탐색 링크 한도 ${fixed(limitPct, 1, "")} → ${fixed(bound, 1, "%")} 로 풂(지형상 ${limit} 로 못 이음 · 4 m 마디)`; } /** 캐시에서 마지막 초기값을 읽는다. 없거나 꼴이 틀리면 null(= 예상노선 추적). */ diff --git a/B05_Profile/B05_Profile_UI_RouteEdit_Recommend_Help.ts b/B05_Profile/B05_Profile_UI_RouteEdit_Recommend_Help.ts index 9fa47c008..605d85a07 100644 --- a/B05_Profile/B05_Profile_UI_RouteEdit_Recommend_Help.ts +++ b/B05_Profile/B05_Profile_UI_RouteEdit_Recommend_Help.ts @@ -130,8 +130,8 @@ const LINES_HELP: Array<{ name: string; text: string }> = [ text: "시점 · 종점 높이 차 ÷ 노선 연장이 상한을 넘으면 알림 — 종단으로 못 맞춤 · 노선을 늘려야 함", }, { - name: "상한을 풂", - text: "지형상 상한 안으로는 시점 · 종점을 이을 수 없어 꼭 필요한 만큼만 상한을 올린 경우", + name: "탐색 링크 한도를 풂", + text: "노선 찾기(4 m 마디 원지반)에서 상한 안 링크로는 시점 · 종점을 못 이어 꼭 필요한 만큼만 링크 한도를 올린 경우 — 원지반 기울기(참고 · 측점 20 m)와 잣대가 달라 값이 다를 수 있음", }, { name: "거의 같은 노선", diff --git a/resources/tester/test_b05_routeedit_initial.py b/resources/tester/test_b05_routeedit_initial.py index 0dfa3efff..479001a1f 100644 --- a/resources/tester/test_b05_routeedit_initial.py +++ b/resources/tester/test_b05_routeedit_initial.py @@ -105,7 +105,9 @@ def test_제약_못_지킨_구간과_상한_풂(results): "제약 못 지킨 구간 7곳: No.0+0.0 R 5.0m(곡선 둘 자리 모자람)" ) assert labels["violationsMany"].endswith(" 외 2곳") - assert labels["relaxed"] == "지형상 14.0% 로 못 이어져 상한을 23.5% 로 풂" + assert ( + labels["relaxed"] == "탐색 링크 한도 14.0 → 23.5% 로 풂(지형상 14.0% 로 못 이음 · 4 m 마디)" + ) assert labels["notRelaxed"] == "" diff --git a/resources/tester/test_b05_routeedit_initial_roundtrip.py b/resources/tester/test_b05_routeedit_initial_roundtrip.py index d6c878eb3..9b6334e1e 100644 --- a/resources/tester/test_b05_routeedit_initial_roundtrip.py +++ b/resources/tester/test_b05_routeedit_initial_roundtrip.py @@ -233,7 +233,7 @@ def test_제약_못_지킨_구간이_목록과_화면_줄에(rounds): assert applied["violations"].startswith(head), applied["violations"] if answer.get("relaxed"): bound = f"{answer['terrain_bound_pct']:.1f}%" - assert applied["relaxed"].endswith(f"상한을 {bound} 로 풂"), applied["relaxed"] + assert f"→ {bound} 로 풂(" in applied["relaxed"], applied["relaxed"] else: assert applied["relaxed"] == "" smooth = answer["criteria"]["grade_smooth_m"]