fix(536-1): E06 들림 안전율 -0.0 → 0 · E05 암반검토 측점 표 머리 줄 쪽마다
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -59,7 +59,7 @@ def _summary(rock: dict[str, Any]) -> str:
|
||||
|
||||
|
||||
def fill_rock(sheet: dict[str, Any], rock: dict[str, Any], labels: dict) -> None:
|
||||
"""s11 — 1. 조건 · 요약(5~9 행) · 2. 절리군(한 줄씩 · 13 행 서식) · 3. 측점(17 행 서식)."""
|
||||
"""s11 — 1. 조건 · 요약(5~9 행) · 2. 절리군(한 줄씩 · 13 행 서식) · 3. 측점(17 행 서식 · 머리 줄 쪽마다)."""
|
||||
s = rock["settings"]
|
||||
d = rock_model.DEFAULT_SETTINGS
|
||||
lateral = (s["lateral_planar_deg"], s["lateral_toppling_deg"])
|
||||
@@ -143,6 +143,7 @@ def fill_rock(sheet: dict[str, Any], rock: dict[str, Any], labels: dict) -> None
|
||||
|
||||
# 3. 측점별 판정
|
||||
r = head(r + 1, 15)
|
||||
sheet["인쇄"]["머리행"] = [r - 1, r - 1] # 측점 표 머리 줄 = 쪽마다
|
||||
for entry in rock["stations"]:
|
||||
r = _station_rows(sheet, put_row, r, entry, labels)
|
||||
|
||||
|
||||
@@ -274,7 +274,7 @@ def _gamma_for(resolved: dict | None, materials: dict, override: float | None) -
|
||||
def _fmt(value: float | None) -> float | None:
|
||||
if value is None or not math.isfinite(value):
|
||||
return None
|
||||
return round(value, 4)
|
||||
return round(value, 4) + 0.0 # -0.0 → 0.0(들림 · 볼트 없음)
|
||||
|
||||
|
||||
def _cases_for(slope: dict, joints: list[dict], kin: dict, settings: dict, gamma: float, conds):
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
|
||||
- 6 행 · 10 행 서식을 줄마다 복사 · 저장본 = (측점 · 종류 · 비탈)마다 가장 최근 하나.
|
||||
|
||||
## s11 암반검토 (프로그램 몫 · E06 암반 해석 저장본 · 없으면 시트를 뺌)
|
||||
## s11 암반검토 (프로그램 몫 · E06 암반 해석 저장본 · 없으면 시트를 뺌 · 측점 표 머리 줄 쪽마다 반복)
|
||||
|
||||
| 칸 | 내용 |
|
||||
| --- | --- |
|
||||
|
||||
@@ -227,6 +227,11 @@ def test_wedge_gravity_water_and_bolt():
|
||||
assert bolted["F"] > dry["F"]
|
||||
|
||||
|
||||
def test_fmt_negative_zero():
|
||||
assert str(model._fmt(-0.0)) == "0.0" # 들림 · 볼트 없음 = 0(「-0.0」 아님)
|
||||
assert model._fmt(math.inf) is None
|
||||
|
||||
|
||||
def test_wedge_not_formed():
|
||||
# 교선이 사면보다 가파름 → 사면으로 안 나옴
|
||||
assert _wedge((141, 75), (219, 75), (180, 50), 35) is None
|
||||
@@ -480,6 +485,7 @@ def test_e05_rock_sheet(monkeypatch):
|
||||
assert "기본값 · 사용자 확정 전" in cells["B7"]["값"] and "½" in cells["B7"]["값"]
|
||||
assert cells["B9"]["값"].startswith("깎기 비탈 1")
|
||||
assert cells["A13"]["값"] == doc["sets"][0]["name"]
|
||||
assert sheet["인쇄"]["머리행"] == [16, 16] and cells["A16"]["값"] == "측점" # 절리 한 줄
|
||||
rows = [r for r in range(17, 40) if cells.get(f"A{r}", {}).get("값") == "STA"]
|
||||
assert len(rows) == len(stations[0]["cases"]) + len(stations[0]["kinematic"]["toppling"])
|
||||
for r, case in zip(rows, stations[0]["cases"]):
|
||||
|
||||
Reference in New Issue
Block a user