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:
@@ -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"]
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user