feat(abut): 벽체 배근 입력 저장 · 교대 벽체 등 fck(35)

- AbutRecord.rebar.wall (바꾼 값만), applyWallRebar, 프로젝트 파일 검증
- 교대 벽체 · 흉벽 · 날개벽 · 접속슬래브 fck(abutBody, 기본 35)를 ② 벽체·흉벽 카드에서 입력. 저판 fck 행과 같은 함수

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-11-04 16:22:15 +09:00
1 parent 1da8dd74e2
commit 66e7d4d90d
7 files changed
+59 -20

No files matched your search

+18
View File
@@ -136,3 +136,21 @@ describe('교대 벽체 배근 A1 (AD4, 교대벽체철근.md §11)', () => {
expect(bar(r, 'W1').modified).toBe(false);
});
});
import { applyFootingRebar, applyWallRebar } from '../src/core/abut/edit';
import { checkStoredAbutments } from '../src/core/project';
describe('③ 벽체 배근 입력 저장', () => {
it('stores only the changed values next to the 저판 ones; undefined links a group back; refuses bad values', () => {
const a = applyWallRebar(applyFootingRebar(rec, { sW: 200 }), { sHoriz: 150, k7L: 6 });
expect(a.rebar).toEqual({ footing: { sW: 200 }, wall: { sHoriz: 150, k7L: 6 } });
expect(applyWallRebar(a, { sHoriz: undefined }).rebar?.wall).toEqual({ k7L: 6 });
expect(() => applyWallRebar(rec, { k7V: 2.5 })).toThrow('W7 배수');
expect(() => applyWallRebar(rec, { c: 0 })).toThrow();
});
it('the project file keeps the 벽체 input and refuses a non-number', () => {
expect(() => checkStoredAbutments([applyWallRebar(rec, { sL: 150, eMin: 200 })])).not.toThrow();
expect(() => checkStoredAbutments([{ ...rec, rebar: { wall: { sL: 'x' } } as never }])).toThrow('벽체 배근');
});
});
+2 -2
View File
@@ -2,8 +2,8 @@ import { describe, expect, it } from 'vitest';
import { DEFAULT_MATERIAL, fckChanged, IMPORTED_FCK, materialFor } from '../src/core/rebar/common';
describe('IMPORTED_FCK (교각도 · 교대도 기준 부재별 기본 fck)', () => {
it('is 40 for 기둥·코핑, 27 for 확대기초 and 27 for 교대 저판', () => {
expect(IMPORTED_FCK).toEqual({ column: 40, coping: 40, footing: 27, abutFooting: 27 });
it('is 40 for 기둥·코핑, 27 for 확대기초, 27 for 교대 저판 and 35 for 교대 벽체 등', () => {
expect(IMPORTED_FCK).toEqual({ column: 40, coping: 40, footing: 27, abutFooting: 27, abutBody: 35 });
});
});