import { describe, expect, test } from "bun:test";
import { footprintAlert, relevanceScore } from "./relevance";

describe("relevanceScore", () => {
  test("language match keeps full strength; mismatch ×0.3", () => {
    expect(relevanceScore({ language: "fr", dr: 80, da: null }, "fr")).toBe(80);
    expect(relevanceScore({ language: "en", dr: 80, da: null }, "fr")).toBe(24);
  });
  test("dr wins over da; falls back to da; 0 when neither", () => {
    expect(relevanceScore({ language: "fr", dr: 60, da: 90 }, "fr")).toBe(60);
    expect(relevanceScore({ language: "fr", dr: null, da: 45 }, "fr")).toBe(45);
    expect(relevanceScore({ language: "fr", dr: null, da: null }, "fr")).toBe(
      0,
    );
  });
  test("rounded to 1 decimal", () => {
    expect(relevanceScore({ language: "en", dr: 91, da: null }, "fr")).toBe(
      27.3,
    );
  });
});

describe("footprintAlert", () => {
  test("threshold at 3", () => {
    expect(footprintAlert(2)).toBe(false);
    expect(footprintAlert(3)).toBe(true);
    expect(footprintAlert(7)).toBe(true);
  });
});
