Merge remote-tracking branches 'origin/sub_laptop_5' and 'origin/sub_laptop_6' into main_laptop_1
This commit is contained in:
@@ -285,6 +285,8 @@ def run_engine(
|
||||
"truncated_ratio": float(best["truncated_ratio"]),
|
||||
"floor": _floor(strata, best),
|
||||
"cells": [int(i) for i in best["cells"]],
|
||||
"columns": int(best.get("columns") or len(best["cells"])),
|
||||
"few_columns": bool(best.get("few_columns")),
|
||||
},
|
||||
"trials": int(res.trials),
|
||||
"reference_fs": reference_fs(ground, settings["condition"]),
|
||||
@@ -355,6 +357,8 @@ def pack(
|
||||
},
|
||||
"chainage_m": float(_nearest_chainage(stations, *where)),
|
||||
"cells": int(np.isfinite(f).sum()),
|
||||
"columns": best.get("columns"),
|
||||
"few_columns": bool(best.get("few_columns")),
|
||||
"trials": int(raw.get("trials") or 0),
|
||||
},
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
import "./E04_Stab3D_UI_Style.css";
|
||||
import { API_BASE_URL, CURRENT_PROJECT_ID_KEY, ROUTES } from "@config/config_frontend";
|
||||
import { attachCollapsible, createPanelCard } from "@ui/ui_template_collapsible";
|
||||
import { createBadge } from "@ui/ui_template_badge";
|
||||
import { createBanner } from "@ui/ui_template_banner";
|
||||
import { createButton, el, showToast } from "@ui/ui_template_elements";
|
||||
import { createEmpty } from "@ui/ui_template_empty";
|
||||
@@ -341,6 +342,7 @@ export function renderE04Stab3D(root: HTMLElement): void {
|
||||
["E04_Result_Hovland", s.by_method.hovland.toFixed(3)],
|
||||
["E04_Result_Where", station(nearest?.chainage_m ?? s.chainage_m)],
|
||||
["E04_Result_Cells", s.cells.toLocaleString()],
|
||||
["E04_Result_Columns", s.columns == null ? "-" : s.columns.toLocaleString()],
|
||||
["E04_Result_Trials", s.trials.toLocaleString()],
|
||||
["E04_Result_Time", `${result.elapsed_s.toFixed(1)} s`],
|
||||
];
|
||||
@@ -352,6 +354,9 @@ export function renderE04Stab3D(root: HTMLElement): void {
|
||||
cell.append(chip);
|
||||
}
|
||||
cell.append(value);
|
||||
if (key === "E04_Result_Columns" && s.few_columns) {
|
||||
cell.append(" ", createBadge(t("E04_Result_FewColumns"), "warning", { size: 18 }));
|
||||
}
|
||||
return {
|
||||
label: t(key),
|
||||
value: cell,
|
||||
|
||||
@@ -40,6 +40,9 @@ export interface Summary3d {
|
||||
method: string;
|
||||
chainage_m: number;
|
||||
cells: number;
|
||||
/** 임계 활동체 기둥 수 · 100 미만이면 few_columns (옛 저장본은 없음) */
|
||||
columns?: number | null;
|
||||
few_columns?: boolean;
|
||||
trials: number;
|
||||
condition: string;
|
||||
reference_fs: number;
|
||||
|
||||
@@ -38,7 +38,7 @@ def _fake_engine(root, stations, ground, settings, on_progress, should_stop):
|
||||
"x": 101.0, "y": 201.0, "z": 505.0, "r": 6.0, "ratio": 1.0, "azimuth_deg": 0.0,
|
||||
"f": 0.9, "volume": 120.0, "method": 0,
|
||||
"hovland": 0.85, "bishop": 0.9, "janbu_corrected": 0.95, "truncated_ratio": 0.0,
|
||||
"floor": [],
|
||||
"floor": [], "columns": 42, "few_columns": True,
|
||||
},
|
||||
"trials": 7,
|
||||
"reference_fs": 1.5,
|
||||
@@ -111,6 +111,7 @@ def test_analyze_cached_force_and_result(client, project, monkeypatch):
|
||||
done = _wait(client)
|
||||
assert done["error"] is None and done["percent"] == 100
|
||||
assert done["summary"]["cells"] == 5 and done["summary"]["verdict"] == "ng"
|
||||
assert done["summary"]["columns"] == 42 and done["summary"]["few_columns"] is True
|
||||
assert done["summary"]["by_method"] == {"hovland": 0.85, "bishop": 0.9, "janbu_corrected": 0.95}
|
||||
# 같은 입력 = 셈하지 않음
|
||||
again = client.post(f"/api/projects/{PID}/stab/analyze3d", json=BODY).json()
|
||||
|
||||
@@ -71,6 +71,8 @@ export const ui_locales_e04 = {
|
||||
E04_Result_Method: ["다스린 방법", "Governing method"],
|
||||
E04_Result_Where: ["위치 (가까운 측점)", "Location (nearest station)"],
|
||||
E04_Result_Cells: ["셀 수", "Cells"],
|
||||
E04_Result_Columns: ["활동체 기둥 수", "Slip-body columns"],
|
||||
E04_Result_FewColumns: ["100 미만 경고", "Under 100 - warning"],
|
||||
E04_Result_Trials: ["시험 활동면 수", "Trial surfaces"],
|
||||
E04_Result_Time: ["계산 시간", "Run time"],
|
||||
E04_Result_None: ["이 구간 결과가 없습니다 — [해석]을 누르세요.", "No result for this section."],
|
||||
|
||||
Reference in New Issue
Block a user