- 옮김 목록(ROUTE_CARRY_STATES)에 uphill 줄 — 노선 저장 · 측점 갈아끼움 때 새 측점으로 - 노선을 저장했으면 상단측 차례 건너뜀 → carryAfterRouteSave 가 옮긴 뒤 보냄(옛 누가거리로 엉뚱한 측점에 안 얹힘) - 새 노선에 같은 측점이 없으면 뺌 · 「상단측 N곳 … 뺐습니다」 알림 · 노선 밖 고침 수에도 - 시험 test_443_2_uphill_carry.py · 346-3 · 저장 차례 시험 기대값 맞춤 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014utrjfoW831Vc5wJUd13kL
62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
/* 443-2 헬퍼 — vite ssr 로 묶은 진짜 모듈(helper_443_2_entry.ts)을 부르고 결과를 JSON 한 벌로.
|
|
* node helper_443_2_uphill_carry.mjs <묶음.mjs>
|
|
*/
|
|
import { pathToFileURL } from "node:url";
|
|
|
|
const store = () => {
|
|
const m = new Map();
|
|
return {
|
|
getItem: (k) => (m.has(k) ? m.get(k) : null),
|
|
setItem: (k, v) => m.set(k, String(v)),
|
|
removeItem: (k) => m.delete(k),
|
|
key: (i) => [...m.keys()][i] ?? null,
|
|
get length() {
|
|
return m.size;
|
|
},
|
|
clear: () => m.clear(),
|
|
};
|
|
};
|
|
globalThis.window = globalThis;
|
|
globalThis.sessionStorage = store();
|
|
globalThis.localStorage = store();
|
|
const any = new Proxy(function () {}, {
|
|
get: (_t, k) => (k === Symbol.toPrimitive ? () => 0 : any),
|
|
apply: () => any,
|
|
construct: () => any,
|
|
});
|
|
globalThis.document = any;
|
|
globalThis.requestAnimationFrame = (run) => setTimeout(run, 0);
|
|
|
|
const m = await import(pathToFileURL(process.argv[2]).href);
|
|
const P = "p443";
|
|
const grid = (pairs) => pairs.map(([key, chainageM]) => ({ key, chainageM }));
|
|
// 옛 노선 = 20 m 일반측점 넷 · 새 노선 = 같은 번호가 밀림(21.5 · 43) · grid:3(60 m) 사라짐
|
|
m.useStationKeyList(
|
|
P,
|
|
7,
|
|
grid([
|
|
["end:BP", 0],
|
|
["grid:1", 20],
|
|
["grid:2", 40],
|
|
["grid:3", 60],
|
|
]),
|
|
);
|
|
m.useStationKeyList(
|
|
P,
|
|
8,
|
|
grid([
|
|
["end:BP", 0],
|
|
["grid:1", 21.5],
|
|
["grid:2", 43],
|
|
]),
|
|
);
|
|
m.writeState("uphill", { "20.000": "right", "40.000": "left", "60.000": "right" }, P);
|
|
const outside = m.carryChainageStates(P, 7, 8);
|
|
const moved = m.readState("uphill", P);
|
|
// 세션이 없으면 그대로(빈 칸 안 만듦)
|
|
m.writeState("uphill", null, P);
|
|
const outsideEmpty = m.carryChainageStates(P, 7, 8);
|
|
process.stdout.write(
|
|
JSON.stringify({ outside, moved, outsideEmpty, empty: m.readState("uphill", P) }),
|
|
);
|