diff --git a/E03_StabSection/E03_StabSection_View.py b/E03_StabSection/E03_StabSection_View.py index 26ee18526..cb1e6bbb4 100644 --- a/E03_StabSection/E03_StabSection_View.py +++ b/E03_StabSection/E03_StabSection_View.py @@ -282,9 +282,9 @@ def section_view( methods = result.get("methods") or {} method, best, _circ, _check = _governing(case) candidates = [] - for method, found in methods.items(): + for name, found in methods.items(): for kind in ("circular", "noncircular"): - surface = _surface(found.get(kind), method) + surface = _surface(found.get(kind), name) if surface and surface["fs"] is not None: candidates.append(surface) side_row = (row["cases"].get(case["condition"]) or {}).get(case["side"]) or {} diff --git a/resources/tester/test_567_1_stab_search.py b/resources/tester/test_567_1_stab_search.py index ae684089f..5db7156b1 100644 --- a/resources/tester/test_567_1_stab_search.py +++ b/resources/tester/test_567_1_stab_search.py @@ -168,3 +168,13 @@ def test_edge_flag(): row = _row(_case(1.3, ends=ends)) assert row["cases"]["wet"]["right"]["edge"] is edge assert view.summarize([_row(_case(1.3, ends=[-30.5, 40.0]))], ["wet"])["wet"]["edge"] == 1 + + +def test_section_view_critical_is_governing_surface(): + # 단면 화면 임계면 = 판정 면(방법 이름도) — 후보 고리가 방법 이름을 덮지 않음 + case = _case(1.3, 1.0, 1.05) + out = {"cases": [case]} + row = _row(case) + model = {"materials": [], "regions": [], "surface": []} + a = view.section_view(row, out, model, {})["analyses"][0] + assert (a["critical"]["method"], a["critical"]["fs"]) == ("spencer", 1.0)