mirror of
https://github.com/publiclab/image-sequencer.git
synced 2025-12-11 02:39:59 +01:00
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:
committed by
Jeffrey Warren
parent
06ac596d7e
commit
0c3d7be7e2
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
5
test/core/modules/add-qr.js
Normal file
5
test/core/modules/add-qr.js
Normal 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)
|
||||
5
test/core/modules/average.js
Normal file
5
test/core/modules/average.js
Normal 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);
|
||||
51
test/core/modules/blend.js
Normal file
51
test/core/modules/blend.js
Normal file
File diff suppressed because one or more lines are too long
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
7
test/core/modules/color-temperature.js
Normal file
7
test/core/modules/color-temperature.js
Normal 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)
|
||||
11
test/core/modules/colorbar.js
Normal file
11
test/core/modules/colorbar.js
Normal file
File diff suppressed because one or more lines are too long
@@ -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()
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -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)
|
||||
9
test/core/modules/convolution.js
Normal file
9
test/core/modules/convolution.js
Normal file
File diff suppressed because one or more lines are too long
@@ -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
@@ -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)
|
||||
13
test/core/modules/draw-rectangle.js
Normal file
13
test/core/modules/draw-rectangle.js
Normal file
File diff suppressed because one or more lines are too long
10
test/core/modules/dynamic.js
Normal file
10
test/core/modules/dynamic.js
Normal file
File diff suppressed because one or more lines are too long
10
test/core/modules/edge-detect.js
Normal file
10
test/core/modules/edge-detect.js
Normal file
File diff suppressed because one or more lines are too long
8
test/core/modules/exposure.js
Normal file
8
test/core/modules/exposure.js
Normal 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)
|
||||
14
test/core/modules/fisheye-gl.js
Normal file
14
test/core/modules/fisheye-gl.js
Normal file
File diff suppressed because one or more lines are too long
8
test/core/modules/flip-image.js
Normal file
8
test/core/modules/flip-image.js
Normal file
File diff suppressed because one or more lines are too long
8
test/core/modules/gamma-correction.js
Normal file
8
test/core/modules/gamma-correction.js
Normal file
File diff suppressed because one or more lines are too long
4
test/core/modules/gradient.js
Normal file
4
test/core/modules/gradient.js
Normal file
@@ -0,0 +1,4 @@
|
||||
const testModule = require('../templates/module-test'),
|
||||
benchmark = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAA8SURBVKXBAQEDQQwEofk1cPg324oIfNXvvRdCCCGEEEIIIbSO1tE6WkfraB2to3W0jtbROlpH62gdraM/TycD7F0LvFgAAAAASUVORK5CYII=';
|
||||
|
||||
testModule('gradient', {}, benchmark)
|
||||
4
test/core/modules/grid-overlay.js
Normal file
4
test/core/modules/grid-overlay.js
Normal 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)
|
||||
@@ -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()
|
||||
})
|
||||
})
|
||||
})
|
||||
4
test/core/modules/histogram.js
Normal file
4
test/core/modules/histogram.js
Normal file
@@ -0,0 +1,4 @@
|
||||
const testModule = require('../templates/module-test'),
|
||||
benchmark = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAklEQVR4AewaftIAAAQeSURBVO3BQRECARDEwGT9K8ATmg5E8KEm3T5fJJl0JJl1JJl1JJl1JJl1JJl1JJl1JJl1JJl1JJl15OfevEj+wZFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFk1pFklsCjoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJyJJl1JJl1JJl1JJl1JJl1JJl1JJl1JJl1JJn1ATXuC15XfVDtAAAAAElFTkSuQmCC';
|
||||
|
||||
testModule('histogram', {}, benchmark)
|
||||
@@ -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) {
|
||||
|
||||
5
test/core/modules/ndvi-colormap.js
Normal file
5
test/core/modules/ndvi-colormap.js
Normal file
File diff suppressed because one or more lines are too long
8
test/core/modules/ndvi.js
Normal file
8
test/core/modules/ndvi.js
Normal file
File diff suppressed because one or more lines are too long
51
test/core/modules/overlay.js
Normal file
51
test/core/modules/overlay.js
Normal file
File diff suppressed because one or more lines are too long
11
test/core/modules/paint-bucket.js
Normal file
11
test/core/modules/paint-bucket.js
Normal file
File diff suppressed because one or more lines are too long
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
7
test/core/modules/saturation.js
Normal file
7
test/core/modules/saturation.js
Normal 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)
|
||||
@@ -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)
|
||||
|
||||
8
test/core/modules/tint.js
Normal file
8
test/core/modules/tint.js
Normal 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);
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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');
|
||||
58
test/core/templates/module-test.js
Normal file
58
test/core/templates/module-test.js
Normal 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()
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user