chroma-js
Version:
JavaScript library for color conversions
45 lines (40 loc) • 1.78 kB
JavaScript
const vows = require('vows')
const assert = require('assert');
require('es6-shim');
const limit = require('../src/utils/limit');
const lab2rgb = require('../src/io/lab/lab2rgb');
const round = v => limit(Math.round(v), 0, 255);
vows
.describe('Testing CMYK color conversions')
.addBatch({
'parse simple HSI colors': {
topic: {
black: { in: [0,0,0], out: [0,0,0,1]},
white: { in: [100,0,0], out: [255,255,255,1]},
gray: { in: [53.59,0,0], out: [128,128,128,1]},
red: { in: [53.24,80.09,67.2], out: [255,0,0,1]},
yellow: { in: [97.14,-21.55,94.48], out: [255,255,0,1]},
green: { in: [87.73,-86.18,83.18], out: [0,255,0,1]},
cyan: { in: [91.11,-48.09,-14.13], out: [0,255,255,1]},
blue: { in: [32.3,79.19,-107.86], out: [0,0,255,1]},
magenta: { in: [60.32,98.23,-60.82], out: [255,0,255,1]},
},
lab_arr(topic) {
Object.keys(topic).forEach(key => {
assert.deepEqual(lab2rgb(topic[key].in).map(round), topic[key].out);
});
},
lab_args(topic) {
Object.keys(topic).forEach(key => {
assert.deepEqual(lab2rgb.apply(null, topic[key].in).map(round), topic[key].out, key);
});
},
lab_obj(topic) {
Object.keys(topic).forEach(key => {
const [l,a,b] = topic[key].in;
assert.deepEqual(lab2rgb({l,a,b}).map(round), topic[key].out, key);
});
},
}
})
.export(module);