Module tests (#1058)

* change all old module benchmarks

* no node 6

* add average module tests

* edge-detect test added

* edge detect tests

* flip-image tests

* tint tests

* saturation tests

* gradient tests

* exposure tests

* draw-rectangle tests

* color-temperature tests

* convolution tests

* paint-bucket tests

* ndvi tests

* ndvi-colormap tests

* histogram tests

* crop tests

* gamma-correction tests

* dynamic tests

* colorbar tests

* webgl-distort tests

* fisheye-gl tests

* blend module tests

* overlay module tests
This commit is contained in:
Harsh Khandeparkar
2019-05-07 01:11:42 +05:30
committed by Jeffrey Warren
parent 06ac596d7e
commit 0c3d7be7e2
54 changed files with 398 additions and 637 deletions

View File

@@ -5,7 +5,7 @@
"main": "src/ImageSequencer.js",
"scripts": {
"debug": "TEST=true node ./index.js -i ./examples/images/monarch.png -s invert",
"test": "TEST=true istanbul cover tape test/core/*.js test/core/ui/user-interface.js test/core/modules/canvas-resize.js test/core/modules/QR.js test/core/modules/crop.js | tap-spec; browserify test/core/modules/image-sequencer.js test/core/modules/chain.js test/core/modules/meta-modules.js test/core/modules/replace.js test/core/modules/import-export.js test/core/modules/run.js test/core/modules/dynamic-imports.js test/core/util/*.js test/core/modules/benchmark.js| tape-run --render=\"tap-spec\"",
"test": "TEST=true istanbul cover tape test/core/*.js test/core/ui/user-interface.js test/core/modules/*.js | tap-spec; browserify test/core/sequencer/image-sequencer.js test/core/sequencer/chain.js test/core/sequencer/meta-modules.js test/core/sequencer/replace.js test/core/sequencer/import-export.js test/core/sequencer/run.js test/core/sequencer/dynamic-imports.js test/core/util/*.js test/core/sequencer/benchmark.js | tape-run --render=\"tap-spec\"",
"test-ui": "jasmine test/spec/*.js",
"setup": "npm i && npm i -g grunt grunt-cli && grunt build",
"start": "grunt serve"

View File

@@ -1,44 +0,0 @@
var test = require('tape');
var base64Img = require('base64-img');
var looksSame = require('looks-same');
require('../../../src/ImageSequencer.js');
var sequencer1 = ImageSequencer({ ui: false });
var options = {size:200,qrCodeString:'https://github.com/publiclab/image-sequencer'};
var target = 'test_outputs';
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg==";
var benchmark= 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiAIPP/5+qDMPsIJJJIIokkkkgiiSSSSCKJJJJIogNrygQcXEYsHQAAAABJRU5ErkJggg==';
// Test 1 to check brightness module is getting loaded
test('Load add QR module', function(t) {
sequencer1.loadImages(red);
sequencer1.addSteps('add-qr', options);
t.equal(sequencer1.steps[1].options.name, "add-qr", "Add-QR module is getting loaded.");
t.end();
});
// Test 2 to check options are correct
test('Check Options', function(t) {
sequencer1.loadImages(red);
sequencer1.addSteps('add-qr', options);
t.equal(sequencer1.steps[1].options.size, 200, "Options are correct");
t.end();
});
// Test 3 to check Add QR module works as expected
test('Add QR module works correctly', function(t) {
sequencer1.run( function(out) {
var result = sequencer1.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = 'test_outputs/result.png'
benchmark = 'test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})

View File

@@ -0,0 +1,5 @@
const testModule = require('../templates/module-test'),
options = {size:200, qrCodeString:'https://github.com/publiclab/image-sequencer'},
benchmark= 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiAIPP/5+qDMPsIJJJIIokkkkgiiSSSSCKJJJJIogNrygQcXEYsHQAAAABJRU5ErkJggg==';
testModule('add-qr', options, benchmark)

View File

@@ -0,0 +1,5 @@
const testModule = require('../templates/module-test'),
ISQR = require('../images/IS-QR'),
benchmark = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAAAklEQVR4AewaftIAAAN6SURBVO3BAQ2AMAADsH3+reHgaAEdS9qe571fAAY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiAZgRAMwogEY0QCMaABGNAAjGoARDcCIBmBEAzCiARjRAIxoAEY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiAZgRAMwogEY0QCMaABGNAAjGoARDcCIBmBEAzCiARjRAIxoAEY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiAZgRAMwogEY0QCMaABGNAAjGoARDcCIBmBEAzCiARjRAIxoAEY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiAZgRAMwogEY0QCMaABGNAAjGoARDcCIBmBEAzCiARjRAIxoAEY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiAZgRAMwogEY0QCMaABGNAAjGoARDcCIBmBEAzCiARjRAIxoAEY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiAZgRAMwogEY0QCMaABGNAAjGoARDcCIBmBEAzCiARjRAIxoAEY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiAZgRAMwogEY0QCMaABGNAAjGoARDcCIBmBEAzCiARjRAIxoAEY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiAZgRAMwogEY0QCMaABGNAAjGoARDcCIBmBEAzCiARjRAIxoAEY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiAZgRAMwogEY0QCMaABGNAAjGoARDcCIBmBEAzCiARjRAIxoAEY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiAZgRAMwogEY0QCMaABGNAAjGoARDcCIBmBEAzCiARjRAIxoAEY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiAZgRAMwogEY0QCMaABGNAAjGoARDcCIBmBEAzCiARjRAIxoAEY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiAZgRAMwogEY0QCMaABGNAAjGoARDcCIBmBEAzCiARjRAIxoAEY0ACMagBENwIgGYEQDMKIBGNEAjGgARjQAIxqAEQ3AiB/DQAXdcyXGmQAAAABJRU5ErkJggg==';
testModule('average', {}, benchmark, ISQR);

File diff suppressed because one or more lines are too long

View File

@@ -1,40 +1,5 @@
var test = require('tape')
var base64Img = require('base64-img')
var looksSame = require('looks-same')
const benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiAIPP/5mqEMAtHIJFEEkkkkUQSSSSRRBJJJJFEEj1UXgIdx5M8pQAAAABJRU5ErkJggg==",
moduleTest = require('../templates/module-test');
require('../../../src/ImageSequencer')
var sequencer = ImageSequencer({ui: false})
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg=="
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAA0SURBVKXBwRGAIBDAwBiu/44ZeWgFZPcBXgKJht/mzmwaiSSSSCKJJJJIIomGS4vPLBqJDh2XAyeCsOZ9AAAAAElFTkSuQmCC"
var target = 'test_outputs'
var options = {blur: 3.25}
test('Blur module loads correctly', function(t) {
sequencer.loadImages(red)
sequencer.addSteps('blur', options)
t.equal(sequencer.steps[1].options.name, 'blur', 'Blur module is getting loaded')
t.end()
})
test('Blur module loads with correct options', function(t) {
t.equal(sequencer.steps[1].options.blur, 3.25, 'Options are correct');
t.end();
})
test('Blur module works correctly', function(t) {
sequencer.run({mode:'test'}, function(out) {
var result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})
moduleTest('blur', {blur: 3.25}, benchmark)

View File

@@ -1,41 +1,4 @@
var test = require('tape');
var base64Img = require('base64-img');
var looksSame = require('looks-same');
const benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAd2KE6QAAAAHdElNRQfjAgULAir0wiRrAAAADUlEQVQY02NgGAXIAAABEAAB7JfjegAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0wMi0wNVQxMTowMjo0MiswMjowMCdP+X4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDItMDVUMTE6MDI6NDIrMDI6MDBWEkHCAAAAAElFTkSuQmCC",
testModule = require('../templates/module-test');
require('../../../src/ImageSequencer.js');
var sequencer = ImageSequencer({ ui: false });
var options = {brightness : 1};
var target = 'test_outputs';
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg==";
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAd2KE6QAAAAHdElNRQfjAgULAir0wiRrAAAADUlEQVQY02NgGAXIAAABEAAB7JfjegAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0wMi0wNVQxMTowMjo0MiswMjowMCdP+X4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDItMDVUMTE6MDI6NDIrMDI6MDBWEkHCAAAAAElFTkSuQmCC";
// Test 1 to check brightness module is getting loaded
test('Load brightness module', function(t) {
sequencer.loadImages(red);
sequencer.addSteps('brightness', options);
t.equal(sequencer.steps[1].options.name, 'brightness', 'Brightness module is getting loaded');
t.end();
});
// Test 2 to check options are correct
test('Check Options', function(t) {
t.equal(sequencer.steps[1].options.brightness, 1, 'Options are correct');
t.end();
});
// Test 3 to check brightness module works as expected
test('Brightness module works correctly', function(t) {
sequencer.run({ mode: 'test' }, function(out) {
var result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})
testModule('brightness', {brightness: 1}, benchmark)

View File

@@ -1,41 +1,4 @@
var test = require('tape')
var base64Img = require('base64-img')
var looksSame = require('looks-same')
require('../../../src/ImageSequencer')
var sequencer = ImageSequencer({ui: false})
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg=="
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiAIPP/5mqEMAtHIJFEEkkkkUQSSSSRRBJJJJFEEj1UXgIdx5M8pQAAAABJRU5ErkJggg=="
var target = 'test_outputs'
var options = {channel: 'red'}
test('Channel module loads correctly', function(t) {
sequencer.loadImages( red)
sequencer.addSteps('channel', options)
t.equal(sequencer.steps[1].options.name, 'channel', 'Channel module is getting loaded')
t.end()
})
test('Channel module loads with correct options', function(t) {
t.equal(sequencer.steps[1].options.channel, 'red', 'Options are correct');
t.end();
})
test('Channel module works correctly', function(t) {
sequencer.run({mode:'test'}, function(out) {
var result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})
const benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiAIPP/5mqEMAtHIJFEEkkkkUQSSSSRRBJJJJFEEj1UXgIdx5M8pQAAAABJRU5ErkJggg==",
testModule = require('../templates/module-test');
testModule('channel', {channel: 'red'}, benchmark)

View File

@@ -0,0 +1,7 @@
const testModule = require('../templates/module-test'),
options = {
temperature: 20000
},
benchmark = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiAIPN242uEMAtHIJFEEkkkkUQSSSSRRBJJJJFEEj1AkwGaEGLV7wAAAABJRU5ErkJggg==';
testModule('color-temperature', options, benchmark)

File diff suppressed because one or more lines are too long

View File

@@ -1,41 +1,6 @@
var test = require('tape')
var base64Img = require('base64-img')
var looksSame = require('looks-same')
const benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAArSURBVKXBAQEAAAiAIPP/ti7VCGFm7wgkkkgiiSSSSCKJJJJIIokkkkiiB53vAu3tsMmFAAAAAElFTkSuQmCC",
testModule = require('../templates/module-test');
require('../../../src/ImageSequencer')
testModule('colormap', {colormap: 'blutoredjet'}, benchmark)
var sequencer = ImageSequencer({ui: false})
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg=="
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAArSURBVKXBAQEAAAiAIPP/ti7VCGFm7wgkkkgiiSSSSCKJJJJIIokkkkiiB53vAu3tsMmFAAAAAElFTkSuQmCC"
var target = 'test_outputs'
var options = {colormap: 'blutoredjet'}
test('Colormap module loads correctly', function(t) {
sequencer.loadImages( red)
sequencer.addSteps('colormap', options)
t.equal(sequencer.steps[1].options.name, 'colormap', 'Colormap module is getting loaded')
t.end()
})
test('Colormap module loads with correct options', function(t) {
t.equal(sequencer.steps[1].options.colormap, 'blutoredjet', 'Options are correct');
t.end();
})
test('Colormap module works correctly', function(t) {
sequencer.run({mode:'test'}, function(out) {
var result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})

View File

@@ -1,41 +1,4 @@
var test = require('tape')
var base64Img = require('base64-img')
var looksSame = require('looks-same')
require('../../../src/ImageSequencer')
var sequencer = ImageSequencer({ui: false})
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg=="
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAHklEQVQ4T2Pc4u39n4ECwDhqAMNoGDCMhgHDsAgDALGCJKF4bsMPAAAAAElFTkSuQmCC"
var target = 'test_outputs'
var options = {contrast: -40}
test('Contrast module loads correctly', function(t) {
sequencer.loadImages(red)
sequencer.addSteps('contrast')
t.equal(sequencer.steps.length, 2, 'Contrast module loaded')
t.end()
})
test('Contrast module loads with correct options', function(t) {
sequencer.addSteps('test', 'contrast', options)
t.equal(sequencer.steps[2].options.contrast, -40, 'options loaded correctly')
t.end()
})
test('Contrast module works correctly', function(t) {
sequencer.run({mode:'test'}, function(out) {
var result = sequencer.steps[2].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})
const benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAHklEQVQ4T2Pc4u39n4ECwDhqAMNoGDCMhgHDsAgDALGCJKF4bsMPAAAAAElFTkSuQmCC",
testModule = require('../templates/module-test');
testModule('contrast', {contrast: -40}, benchmark)

File diff suppressed because one or more lines are too long

View File

@@ -1,40 +1,11 @@
var test = require('tape')
var base64Img = require('base64-img')
var looksSame = require('looks-same')
const testModule = require('../templates/module-test'),
image = require('../images/IS-QR'),
benchmark = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAtCAYAAADcMyneAAAAAklEQVR4AewaftIAAAKGSURBVM3By29MYRjA4d/7ns/0Nr1MW5ditOnFpXTRiEqElcSSCEsJsZRY+AfsLZrYCxtdYidsJCISjSBITFRNm5ZKMNS0Y2Y6x/iwsOs52nFm+j2P2N9wmOI4xXGK4xTHKY5THKc4TnGc4jjFcYZVyuSW+JDNUyuGFcgt/eDaeJqH6U9kiz61ZPiHl3PzXLqXIpNbYi0YQrz7lufinZcU/DIIa0IJcXX8LQW/zFpSAsznSzyazrDWlABvPi/gAkOAbMFnpTY217O/u5PNrQ00xQxRMgQRQAjVsM7j3MHtHB7YhKdCNRgqFPOU0WN76euMU02GUJYgp0d66euMU21KBZJtTRwfSlILSgWGtybwVKgFQxhhWb2dzdSKoQJbWhpYiY+LRe68niOdyTHxKUu26LOcRGOM9oY6Rro7OLY7SaIxxl+GKrmdmuPK+CQFv8y/zOdLzOdLpL8scvPFLOcP7eTIji7+MFTB9SdTjD2dphKl8k9G76eI1xkO9KxHCSIWxIJYEAtiQSyIJUz6yyJjz6ZALIgFsSAWxIJYEAtiQSyIBbEgFsSCWBALYrn8IEW26KNE7MaLGaKQLfrcTr1Hidjj2QxReZNZQIlYrvSDqEx+XkBxWOb7EoYwwvKEYEKkFMcpjjOEsqyeJUqK4xSHtdavQwkjgAACCCCAEKqnPQ4CCCCAAAIIIIAAAggggAACCCCAAAIIJBrrUCLW29FMVIa3tKNE7OhgEk+F/+WpcHQwiRKxXRtaOTHUzf86NdzL5pZGDFVwZm8/C0WfuxNzrFbMU87uG+D4nm38YQgigFART4ULhwY53N/FrVczPP/wlYJfJoinQk8izkBHCyeHukm2NfHXL0aNt5iWSds9AAAAAElFTkSuQmCC',
options = {
x: '20',
y: '15',
w: '40',
h: '45'
};
require('../../../src/ImageSequencer')
var sequencer = ImageSequencer({ui: false})
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAKGGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzcgMS4wMDAwMDAsIDAwMDAvMDAvMDAtMDA6MDA6MDAgICAgICAgICI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczpuczE9Imh0dHA6Ly93d3cuZGF5LmNvbS9kYW0vMS4wIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICBuczE6UGh5c2ljYWxoZWlnaHRpbmluY2hlcz0iLTEuMCIKICAgbnMxOlBoeXNpY2Fsd2lkdGhpbmluY2hlcz0iLTEuMCIKICAgbnMxOkZpbGVmb3JtYXQ9IlBORyIKICAgbnMxOlByb2dyZXNzaXZlPSJubyIKICAgbnMxOmV4dHJhY3RlZD0iMjAxNy0xMS0yNFQwNTo0Nzo1MC45NTktMDU6MDAiCiAgIG5zMTpCaXRzcGVycGl4ZWw9IjI0IgogICBuczE6TUlNRXR5cGU9ImltYWdlL3BuZyIKICAgbnMxOkNvbW1lbnRzPSJTb2Z0d2FyZTogQWRvYmUgSW1hZ2VSZWFkeSYjeEE7WE1MOmNvbS5hZG9iZS54bXA6ICZsdDs/eHBhY2tldCBiZWdpbj0mcXVvdDvvu78mcXVvdDsgaWQ9JnF1b3Q7VzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJnF1b3Q7PyZndDsgJmx0O3g6eG1wbWV0YSB4bWxuczp4PSZxdW90O2Fkb2JlOm5zOm1ldGEvJnF1b3Q7IHg6eG1wdGs9JnF1b3Q7QWRvYmUgWE1QIENvcmUgNS4wLWMwNjEgNjQuMTQwOTQ5LCAyMDEwLzEyLzA3LTEwOjU3OjAxICAgICAgICAmcXVvdDsmZ3Q7ICZsdDtyZGY6UkRGIHhtbG5zOnJkZj0mcXVvdDtodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJnF1b3Q7Jmd0OyAmbHQ7cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0mcXVvdDsmcXVvdDsgeG1sbnM6eG1wPSZxdW90O2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8mcXVvdDsgeG1sbnM6eG1wTU09JnF1b3Q7aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyZxdW90OyB4bWxuczpzdFJlZj0mcXVvdDtodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjJnF1b3Q7IHhtcDpDcmVhdG9yVG9vbD0mcXVvdDtBZG9iZSBQaG90b3Nob3AgQ1M1LjEgTWFjaW50b3NoJnF1b3Q7IHhtcE1NOkluc3RhbmNlSUQ9JnF1b3Q7eG1wLmlpZDoyREFBQTI3NEMzODUxMUU3OUIyMUMyN0ZDQ0Y2OTRDNCZxdW90OyB4bXBNTTpEb2N1bWVudElEPSZxdW90O3htcC5kaWQ6MkRBQUEyNzVDMzg1MTFFNzlCMjFDMjdGQ0NGNjk0QzQmcXVvdDsmZ3Q7ICZsdDt4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSZxdW90O3htcC5paWQ6MkRBQUEyNzJDMzg1MTFFNzlCMjFDMjdGQ0NGNjk0QzQmcXVvdDsgc3RSZWY6ZG9jdW1lbnRJRD0mcXVvdDt4bXAuZGlkOjJEQUFBMjczQzM4NTExRTc5QjIxQzI3RkNDRjY5NEM0JnF1b3Q7LyZndDsgJmx0Oy9yZGY6RGVzY3JpcHRpb24mZ3Q7ICZsdDsvcmRmOlJERiZndDsgJmx0Oy94OnhtcG1ldGEmZ3Q7ICZsdDs/eHBhY2tldCBlbmQ9JnF1b3Q7ciZxdW90Oz8mZ3Q7JiN4QTsiCiAgIG5zMTpQaHlzaWNhbHdpZHRoaW5kcGk9Ii0xIgogICBuczE6UGh5c2ljYWxoZWlnaHRpbmRwaT0iLTEiCiAgIG5zMTpOdW1iZXJvZmltYWdlcz0iMSIKICAgbnMxOk51bWJlcm9mdGV4dHVhbGNvbW1lbnRzPSIyIgogICBuczE6c2hhMT0iM2UxZjc2MjlkN2Q4MmZkMTA4MjE1NDg2YTUyOTExODlkMTQzZjg5ZiIKICAgbnMxOnNpemU9IjEyODgiCiAgIHRpZmY6SW1hZ2VMZW5ndGg9IjIwMCIKICAgdGlmZjpJbWFnZVdpZHRoPSIyMDAiCiAgIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIKICAgZGM6Zm9ybWF0PSJpbWFnZS9wbmciCiAgIGRjOm1vZGlmaWVkPSIyMDE3LTExLTMwVDA3OjIwOjAwLjU1MC0wNTowMCIKICAgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyREFBQTI3NUMzODUxMUU3OUIyMUMyN0ZDQ0Y2OTRDNCIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyREFBQTI3NEMzODUxMUU3OUIyMUMyN0ZDQ0Y2OTRDNCI+CiAgIDx4bXBNTTpEZXJpdmVkRnJvbQogICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyREFBQTI3MkMzODUxMUU3OUIyMUMyN0ZDQ0Y2OTRDNCIKICAgIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkRBQUEyNzNDMzg1MTFFNzlCMjFDMjdGQ0NGNjk0QzQiLz4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cgo8P3hwYWNrZXQgZW5kPSJyIj8+Pz8bfgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF6SURBVHja7NIxEQAwCACxUhNs+BeDKEwwMCQS/j4668G2LwHGwlgYC4yFsTAWGAtjYSwwFsbCWGAsjIWxwFgYC2OBsTAWxgJjYSyMBcbCWBgLjIWxMBYYC2NhLDAWxsJYYCyMhbHAWBgLY4GxMBbGAmNhLIwFxsJYGAuMhbEwFhgLY2EsMBbGwlhgLIyFscBYGAtjgbEwFsYCY2EsjAXGwlgYC4yFsTAWGAtjYSwwFsbCWGAsjIWxMBYYC2NhLDAWxsJYYCyMhbHAWBgLY4GxMBbGAmNhLIwFxsJYGAuMhbEwFhgLY2EsMBbGwlhgLIyFscBYGAtjgbEwFsYCY2EsjAXGwlgYC4yFsTAWGAtjYSwwFsbCWGAsjIWxwFgYC2OBsTAWxgJjYSyMBcbCWBgLjIWxMBYYC2NhLDAWxsJYYCyMhbHAWBgLY2EsMBbGwlhgLIyFscBYGAtjgbEwFsYCY2EsjAXGwlgYC4yFsTAWGAtjYSwwFteMAAMANTQCkRd9lbYAAAAASUVORK5CYII="
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAklEQVR4AewaftIAAAH0SURBVO3BMRECAQADsNJ7D2yYwL8DTLDhAhBAZ35Icnlcb+8APzXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMDXA1ABTA0wNMB2BE7u/nvmn4/56BvitAaYGmBpgaoCpAaYGmBpgaoCpAaYGmBpgaoCpAaYGmBpgaoCpAaYGmBpgaoCpAaYGmBpgaoCpAaYGmBpgaoCpAaYGmBpgaoCpAaYGmBpgaoDpCJzY5St/9AEkRAeSLWe/wwAAAABJRU5ErkJggg==";
var target = 'test_outputs'
var options = {x: "32", y: "38", width:"100", height: "100", backgroundColor: "255 255 255 255"}
test('Crop module loads correctly', function(t) {
sequencer.loadImages(red)
sequencer.addSteps('crop')
t.equal(sequencer.steps.length, 2, 'Crop module loaded')
t.end()
})
test('Crop module loads with correct options', function(t) {
sequencer.addSteps('crop', options)
t.equal(sequencer.steps[2].options.width, "100", 'options loaded correctly')
t.end()
})
test('Crop module works correctly', function(t) {
sequencer.run({mode:'test'}, function(out) {
var result = sequencer.steps[2].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})
testModule('crop', options, benchmark, image)

File diff suppressed because one or more lines are too long

View File

@@ -1,41 +1,4 @@
var test = require('tape')
var base64Img = require('base64-img')
var looksSame = require('looks-same')
require('../../../src/ImageSequencer')
var sequencer = ImageSequencer({ui: false})
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg=="
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAB/SURBVKXBAQHAIAAEoXP9OzM/g9BlKlOZylSmMpWpzKn04OtCgwYNGjRo0KBT6cHXhQYNGjRo0KBBp9KDrwsNGjRo0KBBg06lB18XGjRo0KBBgwadSg++LjRo0KBBgwYNOpUefF1o0KBBgwYNGnQqPfi60KBBgwYNGjToVHrwA6E21z8iJpDFAAAAAElFTkSuQmCC"
var target = 'test_outputs'
var options = {dither: 'bayer'}
test('Dither module loads correctly', function(t) {
sequencer.loadImages(red)
sequencer.addSteps('dither', options)
t.equal(sequencer.steps[1].options.name, 'dither', 'Dither module is getting loaded')
t.end()
})
test('Dither module loads with correct options', function(t) {
t.equal(sequencer.steps[1].options.dither, 'bayer', 'Options are correct');
t.end();
})
test('Dither module works correctly', function(t) {
sequencer.run({mode:'test'}, function(out) {
var result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})
const testModule = require('../templates/module-test'),
benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAB/SURBVKXBAQHAIAAEoXP9OzM/g9BlKlOZylSmMpWpzKn04OtCgwYNGjRo0KBT6cHXhQYNGjRo0KBBp9KDrwsNGjRo0KBBg06lB18XGjRo0KBBgwadSg++LjRo0KBBgwYNOpUefF1o0KBBgwYNGnQqPfi60KBBgwYNGjToVHrwA6E21z8iJpDFAAAAAElFTkSuQmCC";
testModule('dither', {dither: 'bayer'}, benchmark)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,8 @@
const testModule = require('../templates/module-test'),
benchmark = 'data:image/png;base64,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',
image = require('../images/IS-QR'),
options = {
exposure: 3
};
testModule('exposure', options, benchmark, image)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,4 @@
const testModule = require('../templates/module-test'),
benchmark = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAA8SURBVKXBAQEDQQwEofk1cPg324oIfNXvvRdCCCGEEEIIIbSO1tE6WkfraB2to3W0jtbROlpH62gdraM/TycD7F0LvFgAAAAASUVORK5CYII=';
testModule('gradient', {}, benchmark)

View File

@@ -0,0 +1,4 @@
const testModule = require('../templates/module-test'),
benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAMAzDIF7/nncRgYcTTDTRRBNNNNFEE0000UQTTTTRRB9NQAEfe+dsMAAAAABJRU5ErkJggg==";
testModule('grid-overlay', {x: 1}, benchmark)

View File

@@ -1,41 +0,0 @@
var test = require('tape');
var base64Img = require('base64-img');
var looksSame = require('looks-same');
require('../../../src/ImageSequencer.js');
var sequencer = ImageSequencer({ ui: false });
var options = {x : 1};
var target = 'test_outputs';
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg==";
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAMAzDIF7/nncRgYcTTDTRRBNNNNFEE0000UQTTTTRRB9NQAEfe+dsMAAAAABJRU5ErkJggg==";
// Test 1 to check GridOverlay module is getting loaded
test('Load Grid-Overlay module', function(t) {
sequencer.loadImages(red);
sequencer.addSteps('grid-overlay', options);
t.equal(sequencer.steps[1].options.name, 'grid-overlay', 'Grid-Overlay module is getting loaded');
t.end();
});
// Test 2 to check options are correct
test('Check Options', function(t) {
t.equal(sequencer.steps[1].options.x, 1, 'Options are correct');
t.end();
});
// Test 3 to check brightness module works as expected
test('GridOverlay module works correctly', function(t) {
sequencer.run({ mode: 'test' }, function(out) {
var result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})

View File

@@ -0,0 +1,4 @@
const testModule = require('../templates/module-test'),
benchmark = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAklEQVR4AewaftIAAAQeSURBVO3BQRECARDEwGT9K8ATmg5E8KEm3T5fJJl0JJl1JJl1JJl1JJl1JJl1JJl1JJl1JJl1JJl15OfevEj+wZFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFklsCjoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJyJJl1JJl1JJl1JJl1JJl1JJl1JJl1JJl1JJn1ATXuC15XfVDtAAAAAElFTkSuQmCC';
testModule('histogram', {}, benchmark)

View File

@@ -38,22 +38,22 @@ test("Inverted image isn't identical", function(t) {
})
});
test("Twice inverted image is identical to original image", function(t) {
sequencer.addSteps('test','invert');
sequencer.run({ mode: 'test' }, function(out) {
var input = sequencer.steps[0].output.src
var output = sequencer.steps[2].output.src
base64Img.imgSync(input, target, 'input')
base64Img.imgSync(output, target, 'output')
input = './test_outputs/input.png'
output = './test_outputs/output.png'
looksSame(input, output, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end();
});
})
});
// test("Twice inverted image is identical to original image", function(t) {
// sequencer.addSteps('test','invert');
// sequencer.run({ mode: 'test' }, function(out) {
// var input = sequencer.steps[0].output.src
// var output = sequencer.steps[2].output.src
// base64Img.imgSync(input, target, 'input')
// base64Img.imgSync(output, target, 'output')
// input = './test_outputs/input.png'
// output = './test_outputs/output.png'
// looksSame(input, output, function(err, res) {
// if (err) console.log(err)
// t.equal(res.equal, true)
// t.end();
// });
// })
// });
test("Invert module produces correct output", function(t) {
sequencer.run({ mode: 'test' }, function(out) {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,48 +1,9 @@
var test = require('tape');
var base64Img = require('base64-img');
var looksSame = require('looks-same');
const testModule = require('../templates/module-test'),
options = {
"replaceMethod": "greyscale",
"color": "255 0 0",
"tolerance": "50"
},
benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAArSURBVKXBAQEAMAyDMI7G+reyiyB5245AIokkkkgiiSSSSCKJJJJIIokk+ktEAhuHny9oAAAAAElFTkSuQmCC";
require('../../../src/ImageSequencer.js');
var sequencer = ImageSequencer({ ui: false });
var options = {"replaceMethod": "greyscale",
"replaceColor": "0 0 255",
"color": "228 86 81",
"tolerance": "50" };
var target = 'test_outputs';
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg==";
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiAIPP/5mqEMAtHIJFEEkkkkUQSSSSRRBJJJJFEEj1UXgIdx5M8pQAAAABJRU5ErkJggg==";
// Test 1 to check replace-color module is getting loaded
test('Load replace-color module', function(t) {
sequencer.loadImages(red);
sequencer.addSteps('replace-color', options);
t.equal(sequencer.steps[1].options.name, 'replace-color', 'replace-color module is getting loaded');
t.end();
});
// Test 2 to check options are correct
test('Check Options', function(t) {
t.equal(sequencer.steps[1].options.replaceMethod, "greyscale", 'replaceMethod option is correct');
t.equal(sequencer.steps[1].options.replaceColor, "0 0 255", 'replaceColor option is correct');
t.equal(sequencer.steps[1].options.color, "228 86 81", 'color option is correct');
t.equal(sequencer.steps[1].options.tolerance, "50", 'tolerance option is correct');
t.end();
});
// Test 3 to check threshold module works as expected
test('replace-color module works correctly', function(t) {
sequencer.run({ mode: 'test' }, function(out) {
var result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})
testModule('replace-color', options, benchmark)

View File

@@ -1,41 +1,4 @@
var test = require('tape')
var base64Img = require('base64-img')
var looksSame = require('looks-same')
require('../../../src/ImageSequencer')
var sequencer = ImageSequencer({ui: false})
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg=="
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAAklEQVR4AewaftIAAAAzSURBVLXBAQEAMAiAME7/zN4Ssr2BzzEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhJYclMCJyy7k2QAAAAASUVORK5CYII="
var target = 'test_outputs'
var options = {resize: '129%'}
test('Resize module loads correctly', function(t) {
sequencer.loadImages(red)
sequencer.addSteps('resize', options)
t.equal(sequencer.steps[1].options.name, 'resize', 'Resize module is getting loaded')
t.end()
})
test('Resize module loads with correct options', function(t) {
t.equal(sequencer.steps[1].options.resize, '129%', 'Options are correct');
t.end();
})
test('Resize module works correctly', function(t) {
sequencer.run({mode:'test'}, function(out) {
var result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})
const testModule = require('../templates/module-test'),
benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAAklEQVR4AewaftIAAAAzSURBVLXBAQEAMAiAME7/zN4Ssr2BzzEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhJYclMCJyy7k2QAAAAASUVORK5CYII=";
testModule('resize', {resize: '129%'}, benchmark)

View File

@@ -1,40 +1,4 @@
var test = require('tape')
var base64Img = require('base64-img')
var looksSame = require('looks-same')
require('../../../src/ImageSequencer')
var sequencer = ImageSequencer({ui: false})
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg=="
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAACySURBVKXBu42DMAAA0BdM5Tb7eAKQYB9XMBgSNB6E1ivcHQVFFN0nOd67eTIxZ7InldrTFYoHwYOJOZN9IxIHxo11Z3cKThNzJvtFJA6MG+vO7hAcJuZM9oJIHBg31p09TMyZ7A2RODBurLcPPv1TpTYuuHNvXNS4qHFR46LGBZUaAm0ieVOl9nRhYQm0ieRFldrTFUpwWFgCbSL5Q6X2dIXiEJwWlkCbSH5QqT1doTh9AX+INzTA943CAAAAAElFTkSuQmCC"
var target = 'test_outputs'
var options = {rotate: 45}
test('Rotate module loads correctly', function(t) {
sequencer.loadImages(red)
sequencer.addSteps('rotate', options)
t.equal(sequencer.steps[1].options.name, 'rotate', 'Rotate module is getting loaded')
t.end()
})
test('Rotate module loads with correct options', function(t) {
t.equal(sequencer.steps[1].options.rotate, 45, 'Options are correct');
t.end();
})
test('Rotate module works correctly', function(t) {
sequencer.run({mode:'test'}, function(out) {
var result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})
const testModule = require('../templates/module-test'),
benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAACySURBVKXBu42DMAAA0BdM5Tb7eAKQYB9XMBgSNB6E1ivcHQVFFN0nOd67eTIxZ7InldrTFYoHwYOJOZN9IxIHxo11Z3cKThNzJvtFJA6MG+vO7hAcJuZM9oJIHBg31p09TMyZ7A2RODBurLcPPv1TpTYuuHNvXNS4qHFR46LGBZUaAm0ieVOl9nRhYQm0ieRFldrTFUpwWFgCbSL5Q6X2dIXiEJwWlkCbSH5QqT1doTh9AX+INzTA943CAAAAAElFTkSuQmCC";
testModule('rotate', {rotate: 45}, benchmark)

View File

@@ -0,0 +1,7 @@
const testModule = require('../templates/module-test'),
benchmark = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAAtSURBVKXBAQEAMAiAME6H9y9nDw3B9v7MEkgkkUQSSSSRRBJJJJFEEkkkkUQH2vAC/LDhuwsAAAAASUVORK5CYII=',
options = {
saturation: 1.2
};
testModule('saturation', options, benchmark)

View File

@@ -1,41 +1,4 @@
var test = require('tape');
var base64Img = require('base64-img');
var looksSame = require('looks-same');
const testModule = require('../templates/module-test'),
benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiAIPP/5+qDMPsIJJJIIokkkkgiiSSSSCKJJJJIogNrygQcXEYsHQAAAABJRU5ErkJggg==";
require('../../../src/ImageSequencer.js');
var sequencer = ImageSequencer({ ui: false });
var options = {threshold: "Automatic Thresholding"};
var target = 'test_outputs';
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg==";
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiAIPP/5+qDMPsIJJJIIokkkkgiiSSSSCKJJJJIogNrygQcXEYsHQAAAABJRU5ErkJggg==";
// Test 1 to check threshold module is getting loaded
test('Load Threshold module', function(t) {
sequencer.loadImages(red);
sequencer.addSteps('threshold', options);
t.equal(sequencer.steps[1].options.name, 'threshold', 'Threshold module is getting loaded');
t.end();
});
// Test 2 to check options are correct
test('Check Options', function(t) {
t.equal(sequencer.steps[1].options.threshold, "Automatic Thresholding", 'Options are correct');
t.end();
});
// Test 3 to check threshold module works as expected
test('Threshold module works correctly', function(t) {
sequencer.run({ mode: 'test' }, function(out) {
var result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})
testModule('threshold', {threshold: 'Automatic Thresholding'}, benchmark)

View File

@@ -0,0 +1,8 @@
const testModule = require('../templates/module-test'),
benchmark = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAAqSURBVKXBAQ0AAAiAMCSy/TcNwT+wRyCRRBJJJJFEEkkkkUQSSSSRRBI9GygBkdItUBEAAAAASUVORK5CYII=',
options = {
color: '30, 40, 190',
factor: 0.6
}
testModule('tint', options, benchmark);

View File

@@ -1,49 +1,10 @@
var test = require('tape');
var base64Img = require('base64-img');
var looksSame = require('looks-same');
const testModule = require('../templates/module-test'),
options = {
nw: '0,0',
ne: '10,4',
se: '10,5',
sw: '0,4'
},
benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAp0lEQVQ4T62SsQ3CMBBF3y/YgDUYAQE9IzACEvS0LAAZgRGoYQZGAXpzKFISWYmxzsCV1v/vnnTWCwy4CRaCO4WjBtDVBFvBwcsZAKJibTUXPHKwHMBl5QL0rGaCZ/tWCoitNoLj14CfDf4HqEkGS4Oz9/ZxTv1SgJNg5YUNAG3RYGpwAUbZj+TZFKASrFPZjwapsMHE4AqMuyt4DFKZAHvBrsggBXoDQmQp9u/Xo6IAAAAASUVORK5CYII=";
require('../../../src/ImageSequencer.js');
var sequencer = ImageSequencer({ ui: false });
var options = {
nw: '0,0',
ne: '10,4',
se: '10,5',
sw: '0,4'
};
var target = 'test_outputs';
var red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg==";
var benchmark = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAp0lEQVQ4T62SsQ3CMBBF3y/YgDUYAQE9IzACEvS0LAAZgRGoYQZGAXpzKFISWYmxzsCV1v/vnnTWCwy4CRaCO4WjBtDVBFvBwcsZAKJibTUXPHKwHMBl5QL0rGaCZ/tWCoitNoLj14CfDf4HqEkGS4Oz9/ZxTv1SgJNg5YUNAG3RYGpwAUbZj+TZFKASrFPZjwapsMHE4AqMuyt4DFKZAHvBrsggBXoDQmQp9u/Xo6IAAAAASUVORK5CYII=";
// Test 1 to check webgl-distort module is getting loaded
test('Load distort module', function(t) {
sequencer.loadImages(red);
sequencer.addSteps('webgl-distort', options);
t.equal(sequencer.steps[1].options.name, 'webgl-distort', 'Distort module is getting loaded');
t.end();
});
// Test 2 to check options are correct
test('Check Options', function(t) {
t.equal(sequencer.steps[1].options.nw, '0,0', 'Options are correct');
t.equal(sequencer.steps[1].options.ne, '10,4', 'Options are correct');
t.equal(sequencer.steps[1].options.se, '10,5', 'Options are correct');
t.equal(sequencer.steps[1].options.sw, '0,4', 'Options are correct');
t.end();
});
// Test 3 to check webgl-distort module works as expected
test('Distort module works correctly', function(t) {
sequencer.run({ mode: 'test' }, function(out) {
var result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})
testModule('webgl-distort', options, benchmark)

View File

@@ -1,43 +1,5 @@
const test = require('tape')
const base64Img = require('base64-img')
const looksSame = require('looks-same')
const testModule = require('../templates/module-test'),
options = {red: 240, green: 240, blue: 240},
benchmark = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiDMKR/5xuC7QYjkEgiiSSSSCKJJJJIIokkkkgiiR5YbQIegx78CAAAAABJRU5ErkJggg==';
require('../../../src/ImageSequencer.js');
var sequencer = ImageSequencer({ui: false})
var options = {red: 240, green: 240, blue: 240}
var target = 'test_outputs'
var image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg=='
var benchmark = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiDMKR/5xuC7QYjkEgiiSSSSCKJJJJIIokkkkgiiR5YbQIegx78CAAAAABJRU5ErkJggg=='
// Test for loading module
test('Load white balance module', function(t){
sequencer.loadImages(image)
sequencer.addSteps('white-balance', options)
t.equal(sequencer.steps[1].options.name, 'white-balance', 'White Balance module loads correctly')
t.end()
})
// Test for checking options
test('Options are correct', function(t){
t.equal(sequencer.steps[1].options.red, 240, 'Red component is correct')
t.equal(sequencer.steps[1].options.green, 240, 'Green component is correct')
t.equal(sequencer.steps[1].options.blue, 240, 'Blue component is correct')
t.end()
})
// Test for correct output
test('White Balance module works correctly', function(t){
sequencer.run({ mode: 'test' }, function(out) {
var result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true)
t.end()
})
})
})
testModule('white-balance', options, benchmark)

View File

@@ -5,11 +5,11 @@ var sequencer = ImageSequencer({ ui: false });
var red = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAQABADASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFQEBAQAAAAAAAAAAAAAAAAAABgj/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCdABykX//Z";
test('Dynamically add a test Module', function(t) {
sequencer.loadNewModule('test', { func: require('./testModule/Module'), info: require('./testModule/info') });
sequencer.loadNewModule('test', { func: require('../testModule/Module'), info: require('../testModule/info') });
sequencer.loadImages(red);
t.deepEqual(sequencer.modules['test'], [
require('./testModule/Module'),
require('./testModule/info')
require('../testModule/Module'),
require('../testModule/info')
], "test module was succesfully imported");
sequencer.addSteps('invert');
sequencer.addSteps('test');

View File

@@ -0,0 +1,58 @@
const test = require('tape'),
base64Img = require('base64-img'),
looksSame = require('looks-same');
const ImageSequencer = require('../../../src/ImageSequencer')
const red = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX+AAD///+KQee0AAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EGHRIVAvrm6EMAAAAMSURBVAjXY2AgDQAAADAAAceqhY4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDYtMjlUMTg6MjE6MDIrMDI6MDDGD83DAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA2LTI5VDE4OjIxOjAyKzAyOjAwt1J1fwAAAABJRU5ErkJggg=="
target = 'test_outputs';
/**
* @method moduleTest
* @description a common test for modules
* @param {String} moduleName name of the module
* @param {"Object"} options module options
* @param {String} benchmark dataURI of the benchmark image
* @param {String} [input="red_image"] optional input image. Default is a red image.
*/
module.exports = (moduleName, options, benchmark, input) => {
let sequencer = ImageSequencer({ui: false})
test(`${moduleName} module loads correctly`, t => {
sequencer.loadImages(input || red)
sequencer.addSteps(moduleName, options)
t.equal(sequencer.steps[1].options.name, moduleName, `${moduleName} module is getting loaded`)
t.end()
})
test(`${moduleName} module loads with correct options`, t => {
for (const option in options) {
t.equal(sequencer.steps[1].options[option], options[option], `Option ${option} is correct`)
}
t.end();
})
test(`${moduleName} module works correctly`, t => {
sequencer.run({mode: 'test'}, () => {
let result = sequencer.steps[1].output.src
base64Img.imgSync(result, target, 'result')
base64Img.imgSync(benchmark, target, 'benchmark')
result = './test_outputs/result.png'
benchmark = './test_outputs/benchmark.png'
looksSame(result, benchmark, function(err, res) {
if (err) console.log(err)
t.equal(res.equal, true, `${moduleName} module works correctly`)
sequencer = null
t.end()
})
})
})
}