color-model
Version:
Operate colors in popular color models and convert between them
46 lines (38 loc) • 2.54 kB
JavaScript
var Xyz = require('..').Xyz;
var Rgb = require('..').Rgb;
var Lab = require('..').Lab;
describe('Xyz', function(){
describe('toRgb', function(){
it('should convert to correct color in Rgb model', function() {
new Xyz( ).toRgb().toString().should.equal(new Rgb( ).toString());
new Xyz(95.05, 100, 108.9 ).toRgb().toString().should.equal(new Rgb(255, 255, 255).toString());
new Xyz(20.5175, 21.5861, 23.5072).toRgb().toString().should.equal(new Rgb(128, 128, 128).toString());
new Xyz(54.2059, 58.5526, 90.1062).toRgb().toString().should.equal(new Rgb(171, 205, 239).toString());
})
})
describe('toLab', function(){
it('should convert to correct color in Lab model', function () {
new Xyz( ).toLab().toString().should.equal(new Lab( ).toString());
new Xyz(95.05, 100, 108.9 ).toLab().toString().should.equal(new Lab(100.0000, 0.0053, -0.0104).toString());
new Xyz(20.5175, 21.5861, 23.5072).toLab().toString().should.equal(new Lab(53.5851, 0.0027, -0.0061).toString());
new Xyz(54.2059, 58.5526, 90.1062).toLab().toString().should.equal(new Lab(81.0450, -3.6562, -20.4518).toString());
new Xyz( 7.7192, 15.4383, 2.5731).toLab().toString().should.equal(new Lab(46.2288, -51.6991, 49.8975).toString());
new Xyz(59.2900, 28.4800, 96.9800).toLab().toString().should.equal(new Lab(60.3199, 98.2542, -60.8430).toString());
new Xyz(18.0500, 7.2200, 95.0500).toLab().toString().should.equal(new Lab(32.3026, 79.1967, -107.8637).toString());
new Xyz(77.0000, 92.7800, 13.8500).toLab().toString().should.equal(new Lab(97.1382, -21.5559, 94.4825).toString());
new Xyz(53.8100, 78.7400, 106.9700).toLab().toString().should.equal(new Lab(91.1165, -48.0796, -14.1381).toString());
})
})
describe('component aliases (x, y, z)', function(){
it('should return component`s value where nothing passed', function() {
new Xyz(10, 20, 30).x().should.be.equal(10);
new Xyz(10, 20, 30).y('').should.not.be.equal(0);
new Xyz(10, 20, 30).z(null).should.not.be.equal(30);
new Xyz(10, 20, 30).z(30).should.not.be.equal(30);
})
it('should set component`s value when value passed', function() {
new Xyz(10, 20, 30).x('').toString().should.be.equal(new Xyz(0, 20, 30).toString());
new Xyz(10, 20, 30).y(80).toString().should.be.equal(new Xyz(10, 80, 30).toString());
})
})
});