interactive-shader-format
Version:
Rendering engine for Interactive Shader Format effects and generators
63 lines (47 loc) • 1.54 kB
JavaScript
var test = require('tape');
var fs = require('fs');
var ISFParser = require('../dist/build-worker').interactiveShaderFormat.Parser;
function assetLoad(name) {
return fs.readFileSync('./tests/assets/' + name).toString();
}
test('Infer Generator Type', function(t) {
var src = assetLoad('generator.fs');
var parser = new ISFParser();
parser.parse(src);
t.equal(parser.type, 'generator', 'Generator type detected');
t.end();
})
test('Infer Filter Type', function(t) {
var src = assetLoad('image-filter.fs');
var parser = new ISFParser();
parser.parse(src);
t.equal(parser.type, 'filter', 'Image filter type detected');
t.end();
})
test('Infer Transition Type', function(t) {
var src = assetLoad('transition.fs');
var parser = new ISFParser();
parser.parse(src);
t.equal(parser.type, 'transition', 'Transition type detected');
t.end();
})
test('Buffers correctly marked as persistent', function(t) {
var src = assetLoad('persistent-buffers.fs');
var parser = new ISFParser();
parser.parse(src);
var passes = parser.passes;
for (var i = 0; i < passes.length - 1; i++) {
t.equal(passes[i].persistent, true, 'Persistent buffers interpreted as such');
}
t.equal(passes[passes.length - 1].persistent, false, 'Non persistent buffered interpreted as such');
t.end();
})
test('Bad metadata gives error line', function(t) {
var src = assetLoad('bad-metadata.fs');
var parser = new ISFParser();
// t.throws(function() {
parser.parse(src);
// })
t.equal(0, 0);
t.end();
});