import { describe, expect, it } from "vitest"; import { assertEvooEyeBrandLock, EVOO_EYE_ASYMMETRY_MIN_RATIO, EVOO_EYE_BIG_R, EVOO_EYE_SMALL_R, EVOO_OO_TRADEMARK, EVOO_PUPIL_BIG_R, EVOO_PUPIL_SMALL_R, } from "./brand-lock.js"; describe("evOo Oo brand lock", () => { it("documents the trademark string", () => { expect(EVOO_OO_TRADEMARK).toBe("Oo trademark = asymmetric Kulleraugen + size difference"); }); it("keeps big eye strictly larger than small eye (trademark asymmetry)", () => { expect(EVOO_EYE_BIG_R).toBeGreaterThan(EVOO_EYE_SMALL_R); expect(EVOO_EYE_BIG_R / EVOO_EYE_SMALL_R).toBeGreaterThanOrEqual(EVOO_EYE_ASYMMETRY_MIN_RATIO); assertEvooEyeBrandLock(); }); it("keeps pupil asymmetry aligned with sclera", () => { expect(EVOO_PUPIL_BIG_R).toBeGreaterThan(EVOO_PUPIL_SMALL_R); expect(EVOO_PUPIL_BIG_R / EVOO_PUPIL_SMALL_R).toBeCloseTo(EVOO_EYE_BIG_R / EVOO_EYE_SMALL_R, 1); }); it("rejects symmetrized eye radii", () => { expect(() => assertEvooEyeBrandLock(20, 20)).toThrow(/asymmetric Kulleraugen/); expect(() => assertEvooEyeBrandLock(20, 19)).toThrow(/asymmetry ratio/); }); });