import { describe, expect, it } from 'vitest'; import { shearULength, shearUHeight } from '../src/core/rebar/coping'; // Coping 12000 (코핑철근.md §4.3 · §12): lower U = 1740 + 2h. const L = 12000; describe('C9·C10 하부 U 길이 (코핑철근.md §4.3)', () => { it('C9 first (x 300) 3522, C9 last (x 4550) 6098, C10 outer (x 4800) 6249, Level (x 6000) 6340', () => { expect(shearULength(300, L)).toBeCloseTo(3522, 0); expect(shearULength(4550, L)).toBeCloseTo(6098, 0); expect(shearULength(4800, L)).toBeCloseTo(6249, 0); expect(shearULength(6000, L)).toBeCloseTo(6340, 0); }); it('heights h: 890.9 at the end, 2178.8 at the last C9, 2300 on the Level', () => { expect(shearUHeight(300, L)).toBeCloseTo(890.9, 1); expect(shearUHeight(4550, L)).toBeCloseTo(2178.8, 1); expect(shearUHeight(6000, L)).toBe(2300); }); it('mirrors on the right half', () => { expect(shearULength(11700, L)).toBeCloseTo(3522, 0); }); });