diff --git a/resources/tester/test_536_3_stab_supports.py b/resources/tester/test_536_3_stab_supports.py index 6b32ecc95..994aca713 100644 --- a/resources/tester/test_536_3_stab_supports.py +++ b/resources/tester/test_536_3_stab_supports.py @@ -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