test(structure): 73-10 옛 기대값 정리 — 세월교 련 2 · 물넘이 경사각 3° · 내공 줄 숨김 · 관경 빈 배관 · 필수 칸 빈 보기

- test_b06_ford_set: 정의 기본 2련(65-4) · 소유 측점 붙기 = 관경 적은 배관으로(54-39 관경 빈 값 = 관 없음)
- test_b06_pavement_and_ford · test_b06_facility_default_notes: 경사각 빈 값 = 정의 기본 3° → % · 「경사각 3」 기본값 목록(65-5 · 66-2)
- test_b06_adjust_single_form: 집수정 내공 줄 화면 숨김(54-40)
- test_b06_detail_options: optionControl 셋째 인자(52-12) · 필수 · 기본값 칸 빈 보기 없음(54-43)
- 코드 그대로 · 대상 77 파일 394 통과 2 건너뜀

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ
This commit is contained in:
2026-10-07 08:30:41 +09:00
co-authored by Claude Opus 5.5
parent 5e24a83810
commit baa2438116
5 changed files with 18 additions and 12 deletions
@@ -39,7 +39,8 @@ def test_조정_창에는_값_칸이_없다(out) -> None:
def test_폼과_같은_값은_사본_줄로_만들지_않는다(out) -> None:
"""형태 · 높이 · 길이 · 전 · 후 · 관경 · 날개벽은 폼 칸 — 사본은 폼에 없는 줄만."""
assert out["dock"]["outlet"] == ["options", "readout", "tier"]
assert out["dock"]["basin"] == ["basin-size", "basin-size", "options", "readout"]
# 집수정 내공 줄은 화면에서 숨김(54-40 · 값 · 그림 그대로)
assert out["dock"]["basin"] == ["options", "readout"]
assert out["dock"]["ford"] == ["readout", "wall-height"]
assert out["dock"]["box"] == ["readout"]
+5 -4
View File
@@ -47,10 +47,11 @@ def test_기본값_없는_필수_항목은_빈_칸으로_연다():
fields = (PROJECT_ROOT / "B05_Profile" / "B05_Profile_UI_Structures_Fields.ts").read_text(
encoding="utf-8"
)
# 2026-09-14 — 칸 만들기가 `optionControl` 로 옮겨감 · 고르기 칸은 **늘** 빈 보기(브레인 판정 ①).
# 필수 칸의 글자는 그대로 「— 선택 —」이다.
assert "optionControl(option, values[option.key])" in panel
assert '? "— 선택 —"' in fields and 'select([["", blank]' in fields
# 칸 만들기 = `optionControl` · 값은 저장 값만(52-12 셋째 인자 = 정의 이름).
# 54-43 — 필수 · 기본값 있는 칸은 빈 보기 없음 · 그 밖은 빈 글 빈 보기(「— 선택 —」 글 걷음).
assert "optionControl(option, values[option.key]" in panel
assert 'const must = !!option.required || fallback !== ""' in fields
assert '...(must ? [] : [["", ""]' in fields
def test_큰돌쌓기에_메_찰_구분이_있다():
@@ -51,7 +51,8 @@ def test_세월교_월류_폭_관경도_적힌다() -> None:
def test_물넘이_월류_높이가_비면_파임_없음() -> None:
spec = _ford_pavement_set({})
assert spec["depth_m"] is None
assert spec["defaulted"] == ["월류 폭 5"]
# 경사각 빈 값 = 정의 기본 3°(65-5 · 66-2)
assert spec["defaulted"] == ["월류 폭 5", "경사각 3"]
def test_카드_머리가_목록과_까닭을_보인다() -> None:
+4 -3
View File
@@ -26,12 +26,12 @@ from B06_Section.B06_Section_Engine_Culvert import ( # noqa: E402
def test_ford_set_defaults() -> None:
"""저장 옵션이 없으면 레지스트리 기본값(파형강관 Ø1000·월류 폭 10m)을 쓴다."""
"""저장 옵션이 없으면 레지스트리 기본값(파형강관 Ø1000·월류 폭 10m·2련 · 65-4)을 쓴다."""
spec = _ford_set(None)
assert spec["type"] == "ford"
assert spec["pipe_kind"] == "파형강관"
assert spec["diameter_m"] == 1.0
assert spec["pipe_count"] == 1
assert spec["pipe_count"] == 2
assert spec["span_m"] == 10.0
assert spec["slab_thickness_m"] == FORD_SLAB_THICKNESS_M
assert spec["wall_thickness_m"] == FORD_WALL_THICKNESS_M
@@ -64,9 +64,10 @@ def test_attach_ford_only_owner_station(tmp_path: Path) -> None:
(pipe_points / "pipe_points.json").write_text(
'{"points": ['
'{"chainage_m": 100.0, "facility": "ford_bridge", "options": {"ford_width_m": 10}},'
'{"chainage_m": 200.0, "facility": "pipe", "options": {}}]}',
'{"chainage_m": 200.0, "facility": "pipe", "options": {"pipe_diameter_mm": 1000}}]}',
encoding="utf-8",
)
# 관경 빈 배관 = 관 없음(54-39) — 관경을 적은 배관으로 붙는 자리를 잼
sections = [{"chainage_m": value} for value in (94.0, 95.5, 100.0, 104.5, 106.0, 200.0, 201.0)]
attached = attach_culvert_sets(tmp_path, sections)
@@ -7,13 +7,14 @@
"""
import json
import math
from B06_Section.B06_Section_Engine_Culvert import (
FORD_PAVEMENT_DEFAULT_WIDTH_M,
attach_culvert_sets,
load_culvert_sets,
)
from B06_Section.B06_Section_Router_Design import pavement_ranges, paved_at
from B06_Section.B06_Section_Router_Design import paved_at, pavement_ranges
def _write_pipe_points(root, points):
@@ -55,12 +56,13 @@ def test_ford_pavement_becomes_its_own_spec(tmp_path):
def test_ford_pavement_without_values_keeps_default_width_and_no_depth(tmp_path):
"""깊이는 지어내지 않는다 — 없으면 None이라 화면이 파임을 그리지 않는다."""
"""깊이는 지어내지 않는다 — 없으면 None이라 화면이 파임을 그리지 않는다.
경사는 빈 값이면 정의 기본 3° → %(65-5 · 66-2)."""
_write_pipe_points(tmp_path, [{"chainage_m": 50.0, "facility": "ford_pavement"}])
(spec,) = load_culvert_sets(tmp_path).values()
assert spec["span_m"] == FORD_PAVEMENT_DEFAULT_WIDTH_M
assert spec["depth_m"] is None
assert spec["slope_pct"] is None
assert spec["slope_pct"] == round(math.tan(math.radians(3)) * 100.0, 4)
def test_ford_pavement_attaches_to_every_section_in_span(tmp_path):