import { describe, it, expect } from 'vitest'; import * as m from '../../src/lib/core/math.js'; import { prepareInventoryMetadata } from '../../src/lib/core/inventory.js'; describe('prepareInventoryMetadata', () => { it('calculates correct metadata for a 21in x 12in slab at 1.75in thick', () => { const Lpx = 3360, L = 21, scale = 160, thickness = 1.75; const widthPx = 1920; // 12in const maskPx = Lpx * widthPx; // 6,451,200 const result = prepareInventoryMetadata( maskPx, scale, L, thickness, [1600, 1920, 2080, 1600] ); // sqft = (6,451,200 / 160^2) / 144 = 1.75 expect(result.sqft).toBe(1.75); // bdft = 1.75 * 1.75 = 3.0625 -> 3.06 expect(result.bdft).toBe(3.06); expect(result.lengthIn).toBe(21); expect(result.thicknessIn).toBe(1.75); expect(result.minWidth).toBe(10); expect(result.maxWidth).toBe(13); expect(result.avgWidth).toBe(11.25); }); it('handles zero area', () => { const result = prepareInventoryMetadata(0, 160, 21, 1.75, []); expect(result.sqft).toBe(0); expect(result.bdft).toBe(0); }); });