import { describe, expect, it } from 'vitest';
import { computeScale } from '../scale';

describe('computeScale', () => {
    it('целый множитель: 480×270 в окно 960×540 — x2', () => {
        expect(computeScale(480, 270, 960, 540)).toBe(2);
    });

    it('берёт минимум по осям (вписать целиком)', () => {
        expect(computeScale(480, 270, 960, 810)).toBe(2); // по высоте больше — режет ширина
        expect(computeScale(480, 270, 1440, 540)).toBe(2); // по ширине больше — режет высота
    });

    it('дробное вмещение округляется вниз до целого (pixel-perfect)', () => {
        expect(computeScale(480, 270, 1000, 600)).toBe(2);
        expect(computeScale(480, 270, 1200, 675)).toBe(2);
        expect(computeScale(480, 270, 1440, 810)).toBe(3);
    });

    it('маленькое окно — минимум 1 (картинка не исчезает)', () => {
        expect(computeScale(480, 270, 100, 100)).toBe(1);
        expect(computeScale(480, 270, 0, 0)).toBe(1);
    });
});