- TIN 비탈 끝 둘레 1.5 m 안 지형 정점 뺌(SEAM_M) · 상자도 같은 만큼 넓힘(틈 0) - 성토 덩이 끝 누가거리 3 m 안 toeOff smoothstep 으로 0 까지 - helper_115_8 공사 밖 판정 · 측점 단면 비교에서 이음 띠 뺌 · 새 시험 test_176_1 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QND7Co43B24zK2P937rdxt
46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""PLAN 176-1 — B05 3D 성토 비탈 끝 깨짐(172 뒤) 고침 검사.
|
|
|
|
도우미(helper_176_1_seam.cjs) — 직선 80 m · 성토(0~40 m) → 절토(60~80 m) · 지반 사인 물결(진폭 1 m).
|
|
비탈 끝 바깥 SEAM_M(1.5 m) 안 지형 점 빼서 잇는 띠 완만 · 성토 덩이 끝 3 m 안 뜸 0 까지 줄임.
|
|
"""
|
|
|
|
import json
|
|
import os
|
|
import subprocess
|
|
|
|
import pytest
|
|
|
|
HERE = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def r():
|
|
proc = subprocess.run(
|
|
["node", os.path.join(HERE, "helper_176_1_seam.cjs")],
|
|
capture_output=True,
|
|
text=True,
|
|
timeout=240,
|
|
)
|
|
assert proc.returncode == 0, proc.stderr
|
|
return json.loads(proc.stdout)
|
|
|
|
|
|
def test_seam_band_gentle(r):
|
|
# 성토 비탈 끝을 쓰는 원지반 삼각형 경사 p99 < 45°(1 mm 띠 = 54.7°)
|
|
assert r["seam"] == 1.5
|
|
assert r["seamTris"] > 100, r
|
|
assert r["seamP99"] < 45, r
|
|
|
|
|
|
def test_run_end_lift_tapered(r):
|
|
# 성토 덩이 가운데는 한도까지 뜸(물결이 실제로 재어짐) · 절토로 바뀌는 끝은 0 근처
|
|
assert r["midOff"] > 0.4, r
|
|
assert r["endX"][0] > 45 and r["endX"][1] > 45, r
|
|
assert r["endOff"] < 0.02, r
|
|
|
|
|
|
def test_no_gap_no_failed_constraint(r):
|
|
assert r["gaps"] == 0, r
|
|
assert r["stats"]["failed"] == 0, r
|