Merge remote-tracking branch 'origin/sub_laptop_8' into main_laptop_1

This commit is contained in:
2026-10-26 04:00:29 +09:00
5 changed files with 11 additions and 4 deletions
+2 -1
View File
@@ -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)
+1 -1
View File
@@ -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):
@@ -4071,7 +4071,7 @@
"폭": 14
},
"B": {
"폭": 26
"폭": 33
},
"C": {
"폭": 16
@@ -117,7 +117,7 @@
- 6 행 · 10 행 서식을 줄마다 복사 · 저장본 = (측점 · 종류 · 비탈)마다 가장 최근 하나.
## s11 암반검토 (프로그램 몫 · E06 암반 해석 저장본 · 없으면 시트를 뺌)
## s11 암반검토 (프로그램 몫 · E06 암반 해석 저장본 · 없으면 시트를 뺌 · 측점 표 머리 줄 쪽마다 반복)
| 칸 | 내용 |
| --- | --- |
+6
View File
@@ -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"]):