pure-color
Version:
Pure functions for color conversion and parsing
39 lines (33 loc) • 995 B
JavaScript
var convert = require("../convert");
var assert = require("assert");
var fixtures = require("./fixtures/convert");
function round(arr) {
return arr.map(Math.round)
}
function equal(actual, expected) {
if (!Array.isArray(expected)) {
assert.equal(actual, expected);
} else {
assert.deepEqual(round(actual), expected);
}
}
function test(from, to, colors) {
var conversion = convert[from][to];
colors.forEach(function(color) {
equal(conversion(color[0]), color[1]);
});
}
// dyanmically create tests for hwb...
for(var angle = 0; angle <= 360; angle ++) {
// all extreme value should give black, white or grey
fixtures.hwb.rgb.push([[angle, 0, 100], [0, 0, 0]]);
fixtures.hwb.rgb.push([[angle, 100, 0], [255, 255, 255]]);
fixtures.hwb.rgb.push([[angle, 100, 100], [128, 128, 128]]);
}
// run tests
for (var from in fixtures) {
for (var to in fixtures[from]) {
console.log("converting: " + from + "2" + to);
test(from, to, fixtures[from][to]);
}
}