import { XYZtoRGB } from "../../src/conversions/xyz"; describe("XYZtoRGB", () => { test.each` name | input | expected ${"Black"} | ${{ x: 0, y: 0, z: 0, a: 1 }} | ${[0, 0, 0, 1]} ${"White"} | ${{ x: 96.42956660812443, y: 100.00000361162846, z: 82.51045485672053, a: 1 }} | ${[255, 255, 255, 1]} ${"Red"} | ${{ x: 43.606574282481103, y: 22.24931917562371, z: 1.392390450094348, a: 1 }} | ${[255, 0, 0, 1]} ${"Lime"} | ${{ x: 38.51514688337912, y: 71.68870538238823, z: 9.708128566574631, a: 1 }} | ${[0, 255, 0, 1]} ${"Blue"} | ${{ x: 14.307845442264197, y: 6.06197905361654, z: 71.40993584005155, a: 1 }} | ${[0, 0, 255, 1]} ${"Yellow"} | ${{ x: 82.12172116586023, y: 93.93802455801193, z: 11.100519016668979, a: 1 }} | ${[255, 255, 0, 1]} ${"Cyan"} | ${{ x: 52.82299232564333, y: 77.75068443600475, z: 81.11806440662618, a: 1 }} | ${[0, 255, 255, 1]} ${"Magenta"} | ${{ x: 57.9144197247453, y: 28.311298229240256, z: 72.8023262901459, a: 1 }} | ${[255, 0, 255, 1]} ${"Silver"} | ${{ x: 50.82948312439859, y: 52.71151447432529, z: 43.49250878384406, a: 1 }} | ${[192, 192, 192, 1]} ${"Gray"} | ${{ x: 20.815334473796296, y: 21.586050790997852, z: 17.810748049997002, a: 1 }} | ${[128, 128, 128, 1]} ${"Maroon"} | ${{ x: 9.412936932870267, y: 4.802749164443902, z: 0.3005620989111833, a: 1 }} | ${[128, 0, 0, 1]} ${"Olive"} | ${{ x: 17.726835801076773, y: 20.277508960804203, z: 2.396163586462015, a: 1 }} | ${[128, 128, 0, 1]} ${"Green"} | ${{ x: 8.313898868206505, y: 15.474759796360302, z: 2.0956014875508317, a: 1 }} | ${[0, 128, 0, 1]} ${"Purple"} | ${{ x: 12.50143560558979, y: 6.11129099463755, z: 15.715146562446167, a: 1 }} | ${[128, 0, 128, 1]} ${"Teal"} | ${{ x: 11.40239754092603, y: 16.783301626553948, z: 17.51018595108582, a: 1 }} | ${[0, 128, 128, 1]} ${"Navy"} | ${{ x: 3.088498672719523, y: 1.3085418301936479, z: 15.414584463534986, a: 1 }} | ${[0, 0, 128, 1]} `("$name", ({ input, expected }) => { expect(Object.values(XYZtoRGB(input)).map((val) => Math.abs(Math.round(val)))).toEqual(expected); }); });