2.9 KiB
2.9 KiB
| name | description | type |
|---|---|---|
| skeleton-utils 이동 로직 회귀 테스트 체크리스트 | skeleton-utils.js 의 SK 이동/HIP/eaveHelpLine 가드 변경 후 반드시 검증해야 할 시나리오. 사용자가 회귀 두려워 함 → 변경 후 이 목록 확인 권장. | project |
규칙: skeleton-utils.js 의 movement/HIP/_out/processInBoth 영역 변경 시 아래 시나리오 모두 통과해야 함. 하나라도 깨지면 즉시 사용자에게 보고 후 진행 정지.
검증 시나리오 (2026-04-27 기준 통과 상태):
-
ㅁ 단순 사각형 — 어떤 이동이든 phantom HIP 없이 정상 처마/지붕 라인만 그려져야 함. (sanity check)
-
ㅗ 폴리곤 단독 이동 (4 방향) — top/bottom/left/right 각각 단독 in/out 이동. 모든 corner 의 HIP extensionLine 이 새 SK vertex 와 일치해야 함.
-
ㅗ B-2 위로 이동 → B-4 평행 (H-6 phantom 시나리오)
- 직사각형으로 흡수돼야 하는 합쳐진 폴리곤에 (700,548)→(750,598) 같은 phantom HIP 가 없어야 함.
- 가드:
skeleton-utils.js:1475-1481HIP_SKIP< 10.
-
bump 폴리곤 top-in + left-out 클램프 (H-12 phantom 시나리오)
- left wall 을 평행 직전까지 이동(OVER 클램프, planeSize=5).
- roofline 밖에 H-12 가 없어야 함.
updateAndAddLine NOT FOUND도 안 떠야 함. - 콘솔에서
HIP_SKIP_VERTEX_MISS end target=(587.4,1.2)같은 skip 로그가 찍혀야 정상. - 가드:
_out4 경로 OUT_SKIP + processInBoth SK-VERTEX-PROXIMITY.
-
bump 폴리곤 top-in + left-out + right-out (양쪽 흡수 → 사각형)
- 결과: 단순 사각형 SK. phantom HIP 0개.
- pair#0 양쪽 모두
HIP_SKIP_VERTEX_MISS, pair#1 right_out OUT_SKIP, pair#7 left_out OUT_SKIP, pair#2/pair#6 SHOULDER_ABSORBED skip 모두 찍혀야 함.
Why:
- 도형 가드는 한 케이스 고치면 다른 케이스 깨지기 쉬움 (false positive/negative). 사용자가 회귀에 매우 민감.
- 위 5 케이스가 흡수/평행/단독이동 패턴 전반을 커버 → 하나라도 깨지면 가드 임계나 적용 범위가 잘못된 것.
How to apply:
- skeleton-utils.js 1475/1797/1923/2084/2207/1517 부근 또는
processInBoth본체 변경 시: 사용자에게 "위 5 케이스 다시 테스트 부탁" 이라고 명시적으로 요청. - 새 가드 추가 시 임계는 항상
< 10(project_shoulder_absorbed_thresholds.md 참고). - 가드의 위치 정보는 검증 시 grep 으로 위치 변동 확인 후 메모리 업데이트.
관련 가드 위치 (변경 시 함께 검증):
skeleton-utils.js:1610SHOULDER_ABSORBED skipskeleton-utils.js:1475-1481processInBoth HIP_SKIP (인접 흡수)skeleton-utils.js:1517-1546processInBoth SK-VERTEX-PROXIMITY (2-hop 흡수)skeleton-utils.js:1797/1923/2084/2207_out4 경로 OUT_SKIPcreateInnerLinesFromSkeleton6번째 인자skPolygonPoints— closure 미가능, 인자 전달 필수.