feat(561-2): D 예정노선 지형 격자 2 m · B 공용 1 m 그대로 (grid_m 인자)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-27 21:05:42 +09:00
co-authored by Claude Sonnet 5.5
parent 2ba29afb79
commit 0fc0f0aae2
4 changed files with 42 additions and 17 deletions
+4 -2
View File
@@ -45,8 +45,9 @@ def fake(tmp_path, monkeypatch):
(output_dir / "vworld_satellite_meta.json").write_text(json.dumps(meta), "utf-8")
return output_dir / "vworld_satellite.png"
def dem(root, processed, models_dir, route_xy, crs, methods=None):
def dem(root, processed, models_dir, route_xy, crs, methods=None, grid_m=None):
seen["dem"].append((models_dir.name, route_xy.tolist(), crs))
seen["grid_m"] = grid_m
return [{"model_file_path": f"B04_PreProcess/{models_dir.name}/dtm.npz"}]
monkeypatch.setattr(store_mod, "download_sheet", download_sheet)
@@ -108,9 +109,10 @@ def test_extent_no_download_and_covered(fake) -> None:
assert seen["download"] == [] and before["have"] is None and before["covered"] is False
assert before["margin_m"] == terrain.DEFAULT_MARGIN_M and len(before["box"]) == 4
x0, y0, x1, y1 = before["box_m"]
assert before["cells"] == int((x1 - x0) * (y1 - y0))
assert before["cells"] == int((x1 - x0) * (y1 - y0) / 4) # D 지형 격자 2 m
assert all(not s["stored"] and len(s["ring"]) == 4 for s in before["sheets"])
terrain.ensure_plan_terrain(root, [A, B], EPSG)
assert seen["grid_m"] == 2.0 # B 공용 1 m 가 아니라 D 전용 값
after = terrain.plan_extent(root, [A, B], EPSG)
assert after["covered"] and after["have_m"] == after["box_m"]
assert all(s["stored"] for s in after["sheets"])