From baa24381162ea1e19a8a94e63a0bc6523c53b86f Mon Sep 17 00:00:00 2001 From: umsangdon Date: Wed, 7 Oct 2026 08:30:41 +0900 Subject: [PATCH] =?UTF-8?q?test(structure):=2073-10=20=EC=98=9B=20?= =?UTF-8?q?=EA=B8=B0=EB=8C=80=EA=B0=92=20=EC=A0=95=EB=A6=AC=20=E2=80=94=20?= =?UTF-8?q?=EC=84=B8=EC=9B=94=EA=B5=90=20=EB=A0=A8=202=20=C2=B7=20?= =?UTF-8?q?=EB=AC=BC=EB=84=98=EC=9D=B4=20=EA=B2=BD=EC=82=AC=EA=B0=81=203?= =?UTF-8?q?=C2=B0=20=C2=B7=20=EB=82=B4=EA=B3=B5=20=EC=A4=84=20=EC=88=A8?= =?UTF-8?q?=EA=B9=80=20=C2=B7=20=EA=B4=80=EA=B2=BD=20=EB=B9=88=20=EB=B0=B0?= =?UTF-8?q?=EA=B4=80=20=C2=B7=20=ED=95=84=EC=88=98=20=EC=B9=B8=20=EB=B9=88?= =?UTF-8?q?=20=EB=B3=B4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ --- resources/tester/test_b06_adjust_single_form.py | 3 ++- resources/tester/test_b06_detail_options.py | 9 +++++---- resources/tester/test_b06_facility_default_notes.py | 3 ++- resources/tester/test_b06_ford_set.py | 7 ++++--- resources/tester/test_b06_pavement_and_ford.py | 8 +++++--- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/resources/tester/test_b06_adjust_single_form.py b/resources/tester/test_b06_adjust_single_form.py index 0935a1dcb..682ce6482 100644 --- a/resources/tester/test_b06_adjust_single_form.py +++ b/resources/tester/test_b06_adjust_single_form.py @@ -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"] diff --git a/resources/tester/test_b06_detail_options.py b/resources/tester/test_b06_detail_options.py index e6da982fa..207f7ab82 100644 --- a/resources/tester/test_b06_detail_options.py +++ b/resources/tester/test_b06_detail_options.py @@ -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_큰돌쌓기에_메_찰_구분이_있다(): diff --git a/resources/tester/test_b06_facility_default_notes.py b/resources/tester/test_b06_facility_default_notes.py index 3b7045668..a962e0af9 100644 --- a/resources/tester/test_b06_facility_default_notes.py +++ b/resources/tester/test_b06_facility_default_notes.py @@ -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: diff --git a/resources/tester/test_b06_ford_set.py b/resources/tester/test_b06_ford_set.py index 7491de397..7d031e73f 100644 --- a/resources/tester/test_b06_ford_set.py +++ b/resources/tester/test_b06_ford_set.py @@ -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) diff --git a/resources/tester/test_b06_pavement_and_ford.py b/resources/tester/test_b06_pavement_and_ford.py index f8d82c7ab..975cc3fc3 100644 --- a/resources/tester/test_b06_pavement_and_ford.py +++ b/resources/tester/test_b06_pavement_and_ford.py @@ -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):