feat(abut-rebar): 교대 날개벽 배근 삽도 (전면도 · 배면도 · 헌치 · 모서리 평면)

- 전면도 · 배면도: 날개벽 방향 거리 × 높이, 교대 단면 · 저판 · 뒷굽 끝, 연직 배치 치수, 단 수
- 헌치 · 모서리 평면: WR7-1 · 7-2 · 7-3 · WR10 띠별 한 단, WR9 점
- verify/dump: 날개벽 삽도 덤프

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-11-04 18:00:41 +09:00
1 parent e6869d17be
commit d15b237100
3 files changed
+171

No files matched your search

+19
View File
@@ -108,3 +108,22 @@ describe('③ 날개벽 배근 입력 저장 (좌우 공통)', () => {
expect(() => checkStoredAbutments([{ ...rec, rebar: { wing: { c: 'x' } } as never }])).toThrow('날개벽 배근');
});
});
import { abutWingCornerSvg, abutWingFaceSvg } from '../src/view/abut-wing-rebar-svg';
describe('③ 날개벽 삽도', () => {
it('전면도 · 배면도: 연직 배치 치수, 단 수, 번호 풍선; 선택하면 나머지 흐리게 / 숨김', () => {
const f = abutWingFaceSvg(left, L1, 'front');
expect(f).toContain('100 · 193 · 18@250=4.500 · 4@250=1.000 · 707');
for (const m of ['WR11', 'WR12', 'WR13', 'WR14', 'WR15', 'WR6']) expect(f).toContain(`data-pick="${m}"`);
const b = abutWingFaceSvg(left, L1, 'back', { marks: new Set(['WR2']), only: true });
for (const m of ['WR1', 'WR2', 'WR3', 'WR4', 'WR5', 'WR9']) expect(b).toContain(`data-pick="${m}"`);
expect(b).toContain('opacity="0"');
});
it('헌치 · 모서리 평면: WR7 띠별 단 수, WR10 · WR9 풍선', () => {
const svg = abutWingCornerSvg(left, L1);
expect(svg).toContain('위 3 · 가운데 6 · 아래 10단');
for (const m of ['WR7', 'WR10', 'WR9']) expect(svg).toContain(`data-pick="${m}"`);
});
});