voluptasquisquam
Version:
Image processing and manipulation in JavaScript
71 lines (62 loc) • 3.38 kB
JavaScript
import {Image} from 'test/common';
import {validateArrayOfChannels} from '../channel';
import 'should';
describe('we check the validateArrayOfChannels method', function () {
it('check for a RGB image', function () {
let image = new Image(2, 2, {
kind: 'RGB'
});
validateArrayOfChannels(image, {
channels: ['r', 'g', 'b']}).should.eql([0, 1, 2]);
validateArrayOfChannels(image, {channels: 'r'}).should.eql([0]);
validateArrayOfChannels(image, {channels: 'b'}).should.eql([2]);
validateArrayOfChannels(image, {channels: 1}).should.eql([1]);
validateArrayOfChannels(image, {channels: [0, 1, 2]}).should.eql([0, 1, 2]);
validateArrayOfChannels(image).should.eql([0, 1, 2]);
validateArrayOfChannels(image, {allowAlpha: true}).should.eql([0, 1, 2]);
validateArrayOfChannels(image, {allowAlpha: false}).should.eql([0, 1, 2]);
validateArrayOfChannels(image, {defaultAlpha: true}).should.eql([0, 1, 2]);
(function () {
validateArrayOfChannels(image, {channels: 'a'});
}).should.throw(/does not contain alpha/);
(function () {
validateArrayOfChannels(image, {channels: ['r', 'a']});
}).should.throw(/does not contain alpha/);
});
it('check for a RGBA image', function () {
let image = new Image(2, 2, {
kind: 'RGBA'
});
validateArrayOfChannels(image, {channels: ['r', 'g', 'b']}).should.eql([0, 1, 2]);
validateArrayOfChannels(image, {channels: 'r'}).should.eql([0]);
validateArrayOfChannels(image, {channels: 'b'}).should.eql([2]);
validateArrayOfChannels(image, {channels: 1}).should.eql([1]);
validateArrayOfChannels(image, {channels: [0, 1, 2]}).should.eql([0, 1, 2]);
validateArrayOfChannels(image).should.eql([0, 1, 2]);
validateArrayOfChannels(image, {defaultAlpha: true}).should.eql([0, 1, 2, 3]);
validateArrayOfChannels(image, {defaultAlpha: false}).should.eql([0, 1, 2]);
validateArrayOfChannels(image, {allowAlpha: true, defaultAlpha: false}).should.eql([0, 1, 2]);
validateArrayOfChannels(image, {allowAlpha: true, defaultAlpha: true}).should.eql([0, 1, 2, 3]);
validateArrayOfChannels(image, {channels: 'a'}).should.eql([3]);
validateArrayOfChannels(image, {channels: ['r', 'a']}).should.eql([0, 3]);
(function () {
validateArrayOfChannels(image, {channels: 'a', allowAlpha: false});
}).should.throw(/alpha channel may not be selected/);
});
it('check for a GreyA image', function () {
let image = new Image(2, 2, {
kind: 'GREYA'
});
validateArrayOfChannels(image, {channels: 'a'}).should.eql([1]);
validateArrayOfChannels(image, {channels: 1}).should.eql([1]);
validateArrayOfChannels(image).should.eql([0]);
validateArrayOfChannels(image, {defaultAlpha: true}).should.eql([0, 1]);
validateArrayOfChannels(image, {defaultAlpha: false}).should.eql([0]);
(function () {
validateArrayOfChannels(image, {channels: ['r']});
}).should.throw(/undefined channel/);
(function () {
validateArrayOfChannels(image, {allowAlpha: false, channels: ['a']});
}).should.throw(/alpha channel may not be selected/);
});
});