- 624-3 도구줄 = 공용 표 「b05」 · 아래 줄 = 공용 겹 줄(띠 · 올린 임도망도 숨김 · 처음 = 등고선 · 하천) · 범례 = 공용 legendRows(상태 글판 위) - 노선 띠 300 m 자르기 = B05 자기 칸(등고선 · 하천 · 1 m)만 · 그 밖 겹 = 안 자르는 둘째 GL 칸(맨 밑 · 켠 겹 있을 때만 · GL 만) · 등고선 끔 = 등고 글도 숨김 - 626-1 추천 보기 = 도구줄 아이콘 + 아래 판(영선 · 토공 최소 · 기울기 최소 · 비중 계산 · 끔) — route_recommend 저장본(지금 설계 지형) 선만 · 다시 셈 · 쓰기 없음 - 지형 칩 → 확인창 → 새 POST /route/design-terrain(설계 지형만 바꿈 · 노선 저장 체인 다시 · 노선 · 초기값 · 추천 저장본 그대로 · 잠금 · 실패 되돌림) - 걷음 — 추천 모달(_Recommend · _Help · _Map · CSS) · 좌측 「노선 추천」 칸 · saveRecommendedRoute · UI_RouteReset(서버 as_initial 길 · 시험은 남김) - 부품 상자 — createPickMenu(아이콘 고르기 메뉴 · 판 = body fixed · ✓) - 낡은 시험 고침 · 지움 — 모달 · 좌측 칸 · [적용] 화면 배선을 보던 시험(283 · 346_3 · 349 · 364_4 · 383_1 · 390_5 · 418 · 421 · 421_2 · 476_2 · 509_2 · 509_5 · 551_2 · 600_3 · b05_routeedit_initial · design_view_parity · modal_top · 133_1 · 133_2) · test_508_2 · helper_283 지움(모달 전용) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
56 lines
2.5 KiB
Python
56 lines
2.5 KiB
Python
"""PLAN 624-3 — B05 평면도에 공용 지도 부품(도구줄 표 · 겹 줄 · 범례 · 지형 칩)(요구 530 · 결정 A② · A③ · A⑦ · A⑨).
|
|
|
|
- 도구줄 = 공용 표 「b05」 · 아래 줄 = 공용 겹 줄 · 범례 = 공용 `legendRows`.
|
|
- 노선 띠 300 m 자르기 = B05 자기 칸(등고선 · 하천)만 · 그 밖 겹 = 안 자르는 둘째 GL 칸.
|
|
- B05 화면 파일은 D03 파일을 안 부름 · 큰 파일은 안 늘어남.
|
|
"""
|
|
|
|
import re
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
B05 = ROOT / "B05_Profile"
|
|
read = lambda path: path.read_text(encoding="utf-8") # noqa: E731
|
|
|
|
|
|
def test_도구줄_표_겹_줄_범례() -> None:
|
|
chrome = read(B05 / "B05_Profile_UI_RouteEdit_Chrome.ts")
|
|
assert 'mapToolGroups("b05", {' in chrome
|
|
assert "toolRows.append(mapTools.root, layers.bar)" in chrome
|
|
assert "info.prepend(layers.legend)" in chrome
|
|
layers = read(B05 / "B05_Profile_UI_RouteEdit_Layers.ts")
|
|
assert 'page: "b05"' in layers and "legendRows(" in layers and "mapLayerSpecs(" in layers
|
|
|
|
|
|
def test_띠_자르기는_등고선_하천만() -> None:
|
|
gl = read(B05 / "B05_Profile_UI_RouteEdit_Gl.ts")
|
|
assert "container.style.clipPath" in gl # B05 자기 칸(등고선 · 하천 · 1 m)
|
|
assert 'gl.setVisible("contour", own.contour)' in gl
|
|
assert 'gl.setVisible("sheets", own.stream)' in gl
|
|
assert "layers.follow(meta, normalizer, toScreen" in gl
|
|
layers = read(B05 / "B05_Profile_UI_RouteEdit_Layers.ts")
|
|
assert "clipPath" not in layers # 공용 겹 칸은 안 자름
|
|
assert 'const OWN: readonly MapLayerKey[] = ["contour", "stream"]' in layers
|
|
|
|
|
|
def test_처음_겹_숨긴_겹() -> None:
|
|
src = read(ROOT / "A00_Common" / "map" / "map_layer_list.ts")
|
|
b05 = re.search(r"b05: \{(.*?)\},", src, re.S).group(1)
|
|
assert 'hide: ["bands", "forestRoadFile"]' in b05 and 'on: ["contour", "stream"]' in b05
|
|
|
|
|
|
def test_D03_안_부름_파일_한도() -> None:
|
|
for name in (
|
|
"B05_Profile_UI_RouteEdit_Layers.ts",
|
|
"B05_Profile_UI_RouteEdit_Gl.ts",
|
|
"B05_Profile_UI_RouteEdit_Chrome.ts",
|
|
"B05_Profile_UI_RouteEdit_RecPreview.ts",
|
|
"B05_Profile_UI_RouteEdit_Terrain.ts",
|
|
):
|
|
src = read(B05 / name)
|
|
assert "D03_PlanAnalysis" not in src, name
|
|
assert len(src.splitlines()) <= 700, name
|
|
assert len(read(B05 / "B05_Profile_UI_RouteEdit.ts").splitlines()) <= 694
|
|
d03 = read(ROOT / "D03_PlanAnalysis" / "D03_PlanAnalysis_Api.ts")
|
|
assert 'export * from "../A00_Common/map/map_layer_api";' in d03
|