import { describe, it, expect } from 'vitest';
import { isoToScreen, screenToIso } from '../iso';

describe('изометрия', () => {
    it('нулевая точка — origin', () => {
        expect(isoToScreen(0, 0)).toEqual({ x: 0, y: 0 });
    });

    it('оси дают ромб 2:1', () => {
        expect(isoToScreen(1, 0)).toEqual({ x: 16, y: 8 });
        expect(isoToScreen(0, 1)).toEqual({ x: -16, y: 8 });
        expect(isoToScreen(2, 3)).toEqual({ x: -16, y: 40 });
    });

    it('screenToIso — обратная к isoToScreen в центрах тайлов', () => {
        for (let tx = 0; tx < 6; tx++) {
            for (let ty = 0; ty < 6; ty++) {
                const c = isoToScreen(tx + 0.5, ty + 0.5); // центр ромба
                const back = screenToIso(c.x, c.y);
                expect(back.x).toBe(tx);
                expect(back.y).toBe(ty);
            }
        }
    });
});