Files
Pier_v1/tests/bearing-ref.test.ts
T
ypshimandClaude Haiku 5.5 64795e0a19 fix(view): solplate reference shows centre T = 30 with the (−) and (+) side thicknesses (taper along the axis)
The solplate tapers along the bridge axis. T is the centre thickness (30), T1 the thickness on the 교각축 직각 (−) side
(38) and T2 on the (+) side (22); T1 + T2 = 2T. The table's T column had shown the (−) side value, so T is now 30 on every
row. A test checks T1 + T2 = 2T.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 14:10:23 +09:00

44 lines
1.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { describe, expect, it } from 'vitest';
import { buildPier } from '../src/core/geometry';
import { BEARING_ELEVATION_REF, SOLPLATE_REF, SOLPLATE_T_RULE, solplateTs } from '../src/core/bearing-ref';
import { loadP1 } from './helpers';
describe('교량받침 reference (도면값, 읽기 전용, 1단계)', () => {
it('E = h1 + h2 + h3 + h4 on every row', () => {
for (const r of BEARING_ELEVATION_REF) expect(r.h1 + r.h2 + r.h3 + r.h4, `No ${r.no}`).toBe(r.E);
});
it('solplate L = A + 100 and W = B + 100 against the elevation row', () => {
BEARING_ELEVATION_REF.forEach((e, i) => {
expect(SOLPLATE_REF[i].L, `No ${e.no}`).toBe(e.A + 100);
expect(SOLPLATE_REF[i].W, `No ${e.no}`).toBe(e.B + 100);
});
});
it('T1 and T2 follow T ± L·|S|/2 on every row (the 검산 column)', () => {
for (const r of SOLPLATE_REF) {
const c = solplateTs(SOLPLATE_T_RULE, r.L, r.s);
expect(c.T1, `No ${r.no}`).toBe(r.T1);
expect(c.T2, `No ${r.no}`).toBe(r.T2);
}
});
it('the solplate tapers along the axis: T1 (−측) + T2 (+측) = 2·T, with T = 30 at the centre', () => {
for (const r of SOLPLATE_REF) {
expect(r.T, `No ${r.no}`).toBe(SOLPLATE_T_RULE);
expect(r.T1 + r.T2, `No ${r.no}`).toBe(2 * r.T);
expect(r.T1, `No ${r.no}`).toBeGreaterThan(r.T2);
}
});
it('the drawing EL.X − E sits a constant 0.211 m below the model coping top on all ten bearings (Q16 diagnostic)', () => {
const m = buildPier(loadP1());
const back = m.blocks.filter((b) => b.row === '후열');
const diffs = BEARING_ELEVATION_REF.map((r) => {
const modelTop = r.row === '전열' ? m.segments[r.no - 1].top : back[r.no - 6].bottom;
return modelTop - (r.elx - r.E / 1000);
});
for (const d of diffs) expect(d).toBeCloseTo(0.211, 2);
});
});