test(rebar): the footing rebar follows the footing inputs (L, W, H); P1 unchanged
The B-bar counts are computed from the footing dimensions already, so no formula change was needed. Tests check the P1 values, that a wider and longer footing adds B1–B8 bars, and that a 2200 mm height builds rebar and 3D. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
174a026cc1
commit
65f8ca2279
1 file changed
+30
@@ -0,0 +1,30 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { buildPier } from '../src/core/geometry';
|
||||
import { buildRebar3D } from '../src/view/rebar3d';
|
||||
import { rebarSummary } from '../src/core/rebar/summary';
|
||||
import { loadP1 } from './helpers';
|
||||
|
||||
const footingRows = (input: Parameters<typeof buildPier>[0]) =>
|
||||
rebarSummary(buildPier(input)).rows.filter((r) => r.member === 'footing');
|
||||
const count = (rows: ReturnType<typeof footingRows>, name: string) => rows.find((r) => r.name === name)!.count;
|
||||
|
||||
describe('확대기초 철근은 입력 치수를 따른다 (3단계, 승인 2026-10-23)', () => {
|
||||
it('P1 footing rebar is unchanged with the default inputs (B1 31, B5 40, B9 306)', () => {
|
||||
const rows = footingRows(loadP1());
|
||||
expect(count(rows, 'B1')).toBe(31);
|
||||
expect(count(rows, 'B5')).toBe(40);
|
||||
expect(count(rows, 'B9')).toBe(306);
|
||||
});
|
||||
|
||||
it('a wider footing (W 9000) and a longer one (L 11000) add bars to B1–B4 and B5–B8', () => {
|
||||
const rows = footingRows({ ...loadP1(), footingWidthMm: 9000, footingLengthMm: 11000 });
|
||||
expect(count(rows, 'B1')).toBeGreaterThan(31);
|
||||
expect(count(rows, 'B5')).toBeGreaterThan(40);
|
||||
});
|
||||
|
||||
it('a different footing height (2200) is computed without error, and the 3D rebar still builds', () => {
|
||||
const m = buildPier({ ...loadP1(), footingHeightMm: 2200 });
|
||||
expect(rebarSummary(m).rows.length).toBeGreaterThan(0);
|
||||
expect(buildRebar3D(m).byName.get('B1')!.length).toBeGreaterThan(0);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user