feat(E03): 바닥이 벽(옹벽 · 석축) 안을 지나는 후보 활동면 버림 (532-2 2차 ⑤)
- LEM 절편: 바닥 물성 = 벽 인 절편이 하나라도 있으면 그 면 무효 · 벽 밑으로 도는 면만 후보 - 시험: 벽 한가운데 지나는 꺾은선 = 값 없음 · 벽 바닥 아래 꺾은선 = 값 있음 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -30,7 +30,7 @@ from E02_StabGround import E02_StabGround_Model as ground_model # noqa: E402
|
||||
from E02_StabGround import E02_StabGround_Router as router # noqa: E402
|
||||
from E03_StabSection import E03_StabSection_Types as types # noqa: E402
|
||||
from E03_StabSection.E03_StabSection_Engine_Model import section_model_from_b06 # noqa: E402
|
||||
from E03_StabSection.E03_StabSection_Engine_Search import analyze # noqa: E402
|
||||
from E03_StabSection.E03_StabSection_Engine_Search import analyze, evaluate_specified # noqa: E402
|
||||
from E03_StabSection.E03_StabSection_Engine_Station import analyze_station # noqa: E402
|
||||
from E03_StabSection.E03_StabSection_Walls import ( # noqa: E402
|
||||
design_with_walls,
|
||||
@@ -122,6 +122,19 @@ def test_임계면이_벽을_안_지남(found):
|
||||
assert a["min_F"]["bishop"] != pytest.approx(b["min_F"]["bishop"], abs=1e-3)
|
||||
|
||||
|
||||
def test_벽을_지나는_면은_버림(found):
|
||||
entry = found["100.00"]
|
||||
model = section_model_from_b06(CROSS, design_with_walls(DESIGN, entry), walls=walls_of(entry))
|
||||
side = next(s for s in model["sides"] if s["role"] == "fill")
|
||||
through = [[-0.5, 10.0], [2.0, 8.5], [6.0, 6.4]] # 벽(x 1.4~3.2 · z 7~10) 한가운데
|
||||
under = [[-0.5, 10.0], [2.0, 6.0], [8.0, 5.2]] # 벽 바닥 아래
|
||||
for line, ok in ((through, False), (under, True)):
|
||||
got = evaluate_specified(
|
||||
model, polyline=line, direction=side["direction"], methods=("janbu", "spencer")
|
||||
)
|
||||
assert all((got[m]["F"] is not None) == ok for m in got)
|
||||
|
||||
|
||||
def test_벽_없는_측점_모형_그대로():
|
||||
assert design_with_walls(DESIGN, None) is DESIGN and walls_of(None) is None
|
||||
a = section_model_from_b06(CROSS, DESIGN)
|
||||
|
||||
Reference in New Issue
Block a user