Files
Aislo/resources/tester/helper_443_2_uphill_carry.mjs
T
eomsangdonandClaude Opus 5.5 b7af85fa98 fix(443-2 B05 저장): 노선 바꾼 저장의 상단측 = 측점 열쇠로 새 측점에 옮겨 횡단 패치 앞에 보냄 · 못 맞춘 것은 빼고 알림
- 옮김 목록(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
2026-10-18 18:54:13 +09:00

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) }),
);