test(536-3): 측점 꼴 네일 길이 대 안전율 단조 · 보강 없음 이상 시험
- 네일 3행 L 3~25 m 임계 F 줄지 않음 · 탐색 한계 그대로 (요구 351 · sub4 0ef659b0d 뒤)
- 0+720 우 깎기 우기: 보강 없음 1.027 → L 3 1.049 · 7.5 1.219 · 25 1.487 · 최소 길이 7.5 m
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -316,3 +316,19 @@ def test_station_side_and_result_slot():
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(pytest.main([__file__, "-q"]))
|
||||
|
||||
|
||||
def test_station_nail_length_vs_fs_monotonic():
|
||||
"""측점 꼴 — 네일 3행 길이 3~25 m: 임계 F 가 길이에 따라 줄지 않음(포화 뒤 평평 허용) · 항상 보강 없음 이상 · 탐색 한계 그대로(요구 351)."""
|
||||
base = {c["side"]: c for c in _station(None)["cases"]}["right"]
|
||||
f0 = base["min_F"]["bishop"]
|
||||
heads = [(-4.0, 11.48), (-4.6, 12.98), (-5.2, 14.48)]
|
||||
prev = f0
|
||||
for L in (3.0, 6.0, 7.5, 9.0, 12.0, 25.0):
|
||||
sups = [nail(x, z, 15, L, 1.5, 121.6, 40 * math.pi * 0.1) for x, z in heads]
|
||||
right = {c["side"]: c for c in _station(sups)["cases"]}["right"]
|
||||
assert right["result"]["limits"] == base["result"]["limits"]
|
||||
f = right["min_F"]["bishop"]
|
||||
assert f >= f0 - 1e-9 and f >= prev - 0.005, (L, f0, prev, f)
|
||||
prev = f
|
||||
assert prev > f0
|
||||
|
||||
Reference in New Issue
Block a user