import { Unit } from "../../src/Models/Unit" import { Denomination } from "../../src/Models/Denomination" import { describe, expect, it } from "vitest" import Validators from "../../src/UI/InputElement/Validators" describe("Unit", () => { it("should convert a value back and forth", () => { const denomintion = Denomination.fromJson( { canonicalDenomination: "MW", alternativeDenomination: ["megawatts", "megawatt"], human: { en: "{quantity} megawatts", nl: "{quantity} megawatt", }, }, Validators.get("float"), "test" ) const canonical = denomintion.canonicalValue("5", true, false) expect(canonical).toBe("5 MW") const units = new Unit("quantity", ["key"], [denomintion], false, Validators.get("float")) const [detected, detectedDenom] = units.findDenomination("5 MW", () => "be") expect(detected).toBe("5") expect(detectedDenom).toBe(denomintion) }) it("should convert an inverted value back and forth", () => { const denomintion = Denomination.fromJson( { canonicalDenomination: "year", human: { en: "{quantity} year", nl: "{quantity} year", }, }, Validators.get("float"), "test" ) const canonical = denomintion.canonicalValue("5", true, true) expect(canonical).toBe("5/year") const unit = new Unit( "quantity", ["key"], [denomintion], false, Validators.get("float"), true ) const [detected, detectedDenom] = unit.findDenomination("5/year", () => "be") expect(detected).toBe("5") expect(detectedDenom).toBe(denomintion) }) })