mirror of
https://github.com/publiclab/image-sequencer.git
synced 2025-12-12 19:30:00 +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
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