Files
Aislo/resources/tester/test_73_1_b08_hydro_pending.py
T
eomsangdonandClaude Opus 5.5 dc2c27313c feat(B08): 수리집수면적표 박스암거 사각 단면 장 · 세월교 · 물넘이 월류 높이 장(73-11 · 73-12)
- 박스 = 내공 B · H · 수심비(기본 0.8) · n(기본 0.013) · A = B·h · P = B + 2h · Manning · Qd 판정
- 세월교 · 물넘이포장 = 월류 폭(기본 10 m) · 경사(1/10) · n(0.017) → 월류 높이 자동(ford_depth)
- ford_depth = fordHeightM 파이썬 짝(두 파일 머리 · 거울 시험 test_73_11) · 관 몫 안 뺌 · 여유 없음
- [저장]에 새 칸 · 빈 장 없앰 · 물넘이포장은 관 장에서 옮김

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W4uKaV4ZBhsJN4GHG7yRj4
2026-10-07 09:09:25 +09:00

38 lines
1.4 KiB
Python

"""B08 수리집수면적표 — 박스암거 · 세월교 지점은 따로 장(73-1 빈 장 → 73-11 · 73-12 계산 장)."""
from __future__ import annotations
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parents[2]
sys.path.insert(0, str(ROOT))
from B08_Quantity.B08_Quantity_Hydro_Defaults import station_rows # noqa: E402
from common_util.common_util_drainage_pipes import PipePoint # noqa: E402
def _point(chainage: float, facility: str) -> PipePoint:
point = PipePoint.__new__(PipePoint)
point.chainage_m = chainage
point.facility = facility
return point
def test_박스_세월교만_빈_장_탭_수는_그_구조물_수() -> None:
points = [
_point(173.0, "ford_bridge"),
_point(85.0, "pipe"),
_point(300.0, "box_culvert"),
_point(352.0, "ford_bridge"),
_point(400.0, "ford_pavement"),
]
rows = station_rows(points)
assert [r["chainage_m"] for r in rows] == [85.0, 173.0, 300.0, 352.0, 400.0]
# 73-11 · 73-12 뒤 — 빈 장 대신 박스 · 월류 장(물넘이포장도 월류 장)
special = [r for r in rows if r["sheet"] != "pipe"]
assert len(special) == 4 # 세월교 2 · 박스 1 · 물넘이 1
assert {r["kind"] for r in special} == {"세월교", "박스암거", "물넘이포장"}
assert [r["facility"] for r in rows if r["sheet"] == "pipe"] == ["pipe"]
assert all(r["kind"] == "" for r in rows if r["sheet"] == "pipe")