import { UVWtoRGB } from "../../src/conversions/uvw"; describe("UVWtoRGB", () => { test.each` name | input | expected ${"Black"} | ${{ u: 0, v: 0, w: 0, a: 1 }} | ${[0, 0, 0, 1]} ${"White"} | ${{ u: 64.28637773874961, v: 100.00000361162846, w: 143.04044954174074, a: 1 }} | ${[255, 255, 255, 1]} ${"Red"} | ${{ u: 29.071049521654068, v: 22.24931917562371, w: 12.266886847242185, a: 1 }} | ${[255, 0, 0, 1]} ${"Lime"} | ${{ u: 25.67676458891941, v: 71.68870538238823, w: 93.12954891518012, a: 1 }} | ${[0, 255, 0, 1]} ${"Blue"} | ${{ u: 9.53856362817613, v: 6.06197905361654, w: 37.644013779318485, a: 1 }} | ${[0, 0, 255, 1]} ${"Yellow"} | ${{ u: 54.74781411057348, v: 93.93802455801193, w: 105.39643576242228, a: 1 }} | ${[255, 255, 0, 1]} ${"Cyan"} | ${{ u: 35.215328217095546, v: 77.75068443600475, w: 130.77356269449856, a: 1 }} | ${[0, 255, 255, 1]} ${"Magenta"} | ${{ u: 38.6096131498302, v: 28.311298229240258, w: 49.910900626560684, a: 1 }} | ${[255, 0, 255, 1]} ${"Silver"} | ${{ u: 33.88632208293239, v: 52.71151447432529, w: 75.39878454121067, a: 1 }} | ${[192, 192, 192, 1]} ${"Gray"} | ${{ u: 13.87688964919753, v: 21.586050790997852, w: 30.876782974597134, a: 1 }} | ${[128, 128, 128, 1]} ${"Maroon"} | ${{ u: 6.275291288580178, v: 4.802749164443902, w: 2.6479363296863108, a: 1 }} | ${[128, 0, 0, 1]} ${"Olive"} | ${{ u: 11.817890534051182, v: 20.277508960804203, w: 22.750927333898925, a: 1 }} | ${[128, 128, 0, 1]} ${"Green"} | ${{ u: 5.5425992454710034, v: 15.474759796360301, w: 20.102991004212615, a: 1 }} | ${[0, 128, 0, 1]} ${"Purple"} | ${{ u: 8.334290403726525, v: 6.11129099463755, w: 10.773791970384513, a: 1 }} | ${[128, 0, 128, 1]} ${"Teal"} | ${{ u: 7.601598360617354, v: 16.783301626553948, w: 28.228846644910817, a: 1 }} | ${[0, 128, 128, 1]} ${"Navy"} | ${{ u: 2.0589991151463485, v: 1.3085418301936479, w: 8.125855640698204, a: 1 }} | ${[0, 0, 128, 1]} `("$name", ({ input, expected }) => { expect(Object.values(UVWtoRGB(input)).map((val) => Math.abs(Math.round(val)))).toEqual(expected); }); });