- 평면 오른쪽 횡단 판 = 계산 묶음 그 측점(stationSection — B06 카드 · 새 노선 상세와 같은 함수) · cross 차례마다 다시 그림(노선 · 계획고) · 노선이 바뀌면 전후 - 서버 POST route/cross-preview · fetchCrossPreview · 편집기 안 refresh 두 줄 지움 - 시험 test_365(판 계획고 · 면적 · 표본 = 카드 · 서버 길 없음) · cross_width · 133-1 · 224-2 고침 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TteK8mfYZetk5P3bEZkyVZ
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""계획노선 편집 창 — **측점 반폭 선 길이**(계획서 22-1) 회귀검증.
|
|
|
|
파란 선 = 우측 패널 「횡단 반폭(m)」 적용값 양쪽. 적용한 적이 없으면 원지반 선 범위
|
|
(계산 묶음 그 측점 표본 · 365-3).
|
|
Node 헬퍼(`helper_b05_routeedit_cross_width.cjs`)가 TS 를 트랜스파일해 돌린다.
|
|
"""
|
|
|
|
import json
|
|
import os
|
|
import subprocess
|
|
|
|
import pytest
|
|
|
|
HERE = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def results():
|
|
proc = subprocess.run(
|
|
["node", os.path.join(HERE, "helper_b05_routeedit_cross_width.cjs")],
|
|
capture_output=True,
|
|
text=True,
|
|
timeout=60,
|
|
)
|
|
assert proc.returncode == 0, proc.stderr
|
|
return json.loads(proc.stdout)
|
|
|
|
|
|
def test_측점을_고르기_전에는_선이_없다(results):
|
|
assert results["before"] is None
|
|
|
|
|
|
def test_적용한_적_없으면_원지반_범위_양쪽(results):
|
|
assert results["empty"]["watched"] == {"chainageM": 100, "leftM": 20, "rightM": 20}
|
|
|
|
|
|
def test_적용값이_있으면_그_값_양쪽(results):
|
|
assert results["applied15"]["watched"] == {"chainageM": 100, "leftM": 15, "rightM": 15}
|
|
|
|
|
|
def test_노선이_여럿이면_최신_노선_값_다른_프로젝트는_무시(results):
|
|
assert results["latestRoute"]["watched"]["leftM"] == 8.5
|
|
|
|
|
|
def test_망가진_값은_기본값으로(results):
|
|
assert results["badValue"]["watched"]["rightM"] == 20
|