import { describe, expect, it } from 'vitest'; import { scaleFromLine } from '../src/lib/scale'; describe('scaleFromLine', () => { it('returns pixels per mm', () => { expect(scaleFromLine({ x: 0, y: 0 }, { x: 300, y: 400 }, 100)).toBeCloseTo(5); }); it('rejects a non-positive or missing length', () => { expect(scaleFromLine({ x: 0, y: 0 }, { x: 100, y: 0 }, 0)).toBeNull(); expect(scaleFromLine({ x: 0, y: 0 }, { x: 100, y: 0 }, -5)).toBeNull(); expect(scaleFromLine({ x: 0, y: 0 }, { x: 100, y: 0 }, NaN)).toBeNull(); }); it('rejects a line shorter than one pixel', () => { expect(scaleFromLine({ x: 10, y: 10 }, { x: 10.5, y: 10 }, 100)).toBeNull(); }); });