Files

19 lines
697 B
TypeScript

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();
});
});