e_P1 is no longer an input: P1 top = C3 (lowest coping top − 127 − 2·57.2 = 43.170) − 100 = 43.070, so e_P1 = step top − 43.070 = 485 mm. The P1 top moves from 15147 to 14862 mm; the top piece shortens by 285 mm. Couplers are placed at k·3000 with at least 2500 mm below the P1 top (a value to confirm). On P1 the coupler count stays at four (3, 6, 9, 12 m). P2 and the tie top do not change. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
28 lines
1.3 KiB
TypeScript
28 lines
1.3 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
||
import { buildPier } from '../src/core/geometry';
|
||
import { columnInputFor, columnRebar } from '../src/core/rebar/column';
|
||
import { loadP1 } from './helpers';
|
||
|
||
describe('기둥 철근 높이는 모델에서 (Hc · h_cop, 승인 2026-10-23)', () => {
|
||
it('P1: Hc 12703 and h_cop 2644 come out of the model, as in 기둥철근.md', () => {
|
||
const input = columnInputFor(buildPier(loadP1()));
|
||
expect(input.Hc).toBeCloseTo(12703, 0);
|
||
expect(input.hcop).toBeCloseTo(2644, 0);
|
||
const col = columnRebar(input);
|
||
expect(col.zTop2).toBeCloseTo(14539, 0);
|
||
expect(col.zTop1).toBeCloseTo(14862, 0);
|
||
});
|
||
|
||
it('taper h2 = 3000: Level underside 39.411, Hc 11203, P2 top 13039 (= Level underside + l_d)', () => {
|
||
const m = buildPier({ ...loadP1(), copingH2Mm: 3000 });
|
||
const input = columnInputFor(m);
|
||
expect(input.Hc).toBeCloseTo(11203, 0);
|
||
// h_cop = step top (43.555) − Level underside (39.411): the coping at the column gets taller with h2.
|
||
expect(input.hcop).toBeCloseTo(4144, 0);
|
||
const col = columnRebar(input);
|
||
expect(col.zTop2).toBeCloseTo(13039, 0);
|
||
// The P1 top is anchored to the step top (and C3), so it does not move with h2.
|
||
expect(col.zTop1).toBeCloseTo(14862, 0);
|
||
});
|
||
});
|