const { calculateReverseYaw } = require('../utils/hotspotHelper');

describe('Hotspot Helper - calculateReverseYaw', () => {
    test('nên trả về -90 khi yaw là 90 (hướng Đông -> hướng Tây)', () => {
        expect(calculateReverseYaw(90)).toBe(-90);
    });

    test('nên trả về 90 khi yaw là -90 (hướng Tây -> hướng Đông)', () => {
        expect(calculateReverseYaw(-90)).toBe(90);
    });

    test('nên trả về 180 khi yaw là 0 (hướng Bắc -> hướng Nam)', () => {
        expect(calculateReverseYaw(0)).toBe(180);
    });

    test('nên trả về 0 khi yaw là 180 (hướng Nam -> hướng Bắc)', () => {
        expect(calculateReverseYaw(180)).toBe(0);
    });

    test('nên trả về 0 khi yaw là -180', () => {
        expect(calculateReverseYaw(-180)).toBe(0);
    });

    test('nên xử lý chính xác khi đầu vào là chuỗi số', () => {
        expect(calculateReverseYaw("45")).toBe(-135);
    });

    test('nên trả về 0 nếu đầu vào không phải là số hợp lệ', () => {
        expect(calculateReverseYaw("invalid")).toBe(0);
        expect(calculateReverseYaw(undefined)).toBe(0);
    });

    test('nên giữ nguyên giá trị với các góc lẻ', () => {
        expect(calculateReverseYaw(10.5)).toBe(-169.5);
        expect(calculateReverseYaw(-10.5)).toBe(169.5);
    });
});