import { LCHtoRGB } from "../../src/conversions/lch"; describe("LCHtoRGB", () => { test.each` name | input | expected ${"Black"} | ${{ l: 0, c: 0, h: 0, a: 1 }} | ${[0, 0, 0, 1]} ${"White"} | ${{ c: 0.015605019433726806, h: 33.09999269502754, l: 100.00000139649632, a: 1 }} | ${[255, 255, 255, 1]} ${"Red"} | ${{ c: 106.84621363092528, h: 40.855032553015356, l: 54.29054294696968, a: 1 }} | ${[255, 0, 0, 1]} ${"Lime"} | ${{ c: 113.32774655709262, h: 134.3789021840819, l: 87.81853633115202, a: 1 }} | ${[0, 255, 0, 1]} ${"Blue"} | ${{ c: 131.19815281229833, h: 301.36870822201354, l: 29.56829715344471, a: 1 }} | ${[0, 0, 255, 1]} ${"Yellow"} | ${{ c: 94.71456580463469, h: 99.56442898444752, l: 97.60701009682253, a: 1 }} | ${[255, 255, 0, 1]} ${"Cyan"} | ${{ c: 52.80715913541458, h: 196.44926133126648, l: 90.66601315791455, a: 1 }} | ${[0, 255, 255, 1]} ${"Magenta"} | ${{ c: 111.40502486449383, h: 327.1120833575584, l: 60.16894098715946, a: 1 }} | ${[255, 0, 255, 1]} ${"Silver"} | ${{ c: 0.01260567599007237, h: 33.099992694978326, l: 77.7043647180372, a: 1 }} | ${[192, 192, 192, 1]} ${"Gray"} | ${{ c: 0.009360995579411651, h: 33.09999269525712, l: 53.5850142898864, a: 1 }} | ${[128, 128, 128, 1]} ${"Maroon"} | ${{ c: 62.49547083895173, h: 39.13029961543168, l: 26.165244625216808, a: 1 }} | ${[128, 0, 0, 1]} ${"Olive"} | ${{ c: 56.81650289337804, h: 99.5644289844475, l: 52.14952867110431, a: 1 }} | ${[128, 128, 0, 1]} ${"Green"} | ${{ c: 67.98200662654561, h: 134.37890218408188, l: 46.27770902748027, a: 1 }} | ${[0, 128, 0, 1]} ${"Purple"} | ${{ c: 66.8286220158192, h: 327.1120833575584, l: 29.6915239933531, a: 1 }} | ${[128, 0, 128, 1]} ${"Teal"} | ${{ c: 31.677473093178044, h: 196.44926133126654, l: 47.98582724554071, a: 1 }} | ${[0, 128, 128, 1]} ${"Navy"} | ${{ c: 78.70194162365094, h: 301.36870822201354, l: 11.33509112426626, a: 1 }} | ${[0, 0, 128, 1]} `("$name", ({ input, expected }) => { expect(Object.values(LCHtoRGB(input)).map((val) => Math.abs(Math.round(val)))).toMatchObject(expected); }); });