StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics
https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
184 lines
5.9 KiB
184 lines
5.9 KiB
var staticModule = require('../');
|
|
var test = require('tape');
|
|
var concat = require('concat-stream');
|
|
var quote = require('quote-stream');
|
|
var fs = require('fs');
|
|
var path = require('path');
|
|
var vm = require('vm');
|
|
|
|
test('readFileSync', function (t) {
|
|
t.plan(2);
|
|
var sm = staticModule({
|
|
fs: {
|
|
readFileSync: function (file) {
|
|
return fs.createReadStream(file).pipe(quote());
|
|
}
|
|
}
|
|
}, { vars: { __dirname: path.join(__dirname, 'brfs') } });
|
|
readStream('source.js').pipe(sm).pipe(concat(function (body) {
|
|
t.equal(body.toString('utf8'),
|
|
'\nvar src = "beep boop\\n";'
|
|
+ '\nconsole.log(src);\n'
|
|
);
|
|
vm.runInNewContext(body.toString('utf8'), {
|
|
console: { log: log }
|
|
});
|
|
function log (msg) { t.equal(msg, 'beep boop\n') }
|
|
}));
|
|
});
|
|
|
|
test('readFileSync attribute', function (t) {
|
|
t.plan(2);
|
|
var sm = staticModule({
|
|
fs: {
|
|
readFileSync: function (file) {
|
|
return fs.createReadStream(file).pipe(quote());
|
|
}
|
|
}
|
|
}, { vars: { __dirname: path.join(__dirname, 'brfs') } });
|
|
readStream('attribute.js').pipe(sm).pipe(concat(function (body) {
|
|
t.equal(body.toString('utf8'),
|
|
'\nvar src = "beep boop\\n";'
|
|
+ '\nconsole.log(src);\n'
|
|
);
|
|
vm.runInNewContext(body.toString('utf8'), {
|
|
console: { log: log }
|
|
});
|
|
function log (msg) { t.equal(msg, 'beep boop\n') }
|
|
}));
|
|
});
|
|
|
|
test('readFileSync attribute with multiple vars', function (t) {
|
|
t.plan(2);
|
|
var sm = staticModule({
|
|
fs: {
|
|
readFileSync: function (file) {
|
|
return fs.createReadStream(file).pipe(quote());
|
|
}
|
|
}
|
|
}, { vars: { __dirname: path.join(__dirname, 'brfs') } });
|
|
readStream('attribute_vars.js').pipe(sm).pipe(concat(function (body) {
|
|
t.equal(body.toString('utf8'),
|
|
'var x = 5, y = 2;'
|
|
+ '\nvar src = "beep boop\\n";'
|
|
+ '\nconsole.log(src);\n'
|
|
);
|
|
vm.runInNewContext(body.toString('utf8'), {
|
|
console: { log: log }
|
|
});
|
|
function log (msg) { t.equal(msg, 'beep boop\n') }
|
|
}));
|
|
});
|
|
|
|
test('readFileSync attribute with multiple require vars', function (t) {
|
|
t.plan(2);
|
|
var sm = staticModule({
|
|
fs: {
|
|
readFileSync: function (file) {
|
|
return fs.createReadStream(file).pipe(quote());
|
|
}
|
|
}
|
|
}, { vars: { __dirname: path.join(__dirname, 'brfs') } });
|
|
readStream('multi_require.js').pipe(sm).pipe(concat(function (body) {
|
|
t.equal(body.toString('utf8'),
|
|
'var x = 5;'
|
|
+ '\nvar src = "beep boop\\n";'
|
|
+ '\nconsole.log(src);\n'
|
|
);
|
|
vm.runInNewContext(body.toString('utf8'), {
|
|
console: { log: log }
|
|
});
|
|
function log (msg) { t.equal(msg, 'beep boop\n') }
|
|
}));
|
|
});
|
|
|
|
test('readFileSync attribute with multiple require vars including an uninitalized var', function (t) {
|
|
t.plan(2);
|
|
var sm = staticModule({
|
|
fs: {
|
|
readFileSync: function (file) {
|
|
return fs.createReadStream(file).pipe(quote());
|
|
}
|
|
}
|
|
}, { vars: { __dirname: path.join(__dirname, 'brfs') } });
|
|
readStream('multi_require_with_uninitialized.js').pipe(sm).pipe(concat(function (body) {
|
|
t.equal(body.toString('utf8'),
|
|
'var x;'
|
|
+ '\nvar src = "beep boop\\n";'
|
|
+ '\nconsole.log(src);\n'
|
|
);
|
|
vm.runInNewContext(body.toString('utf8'), {
|
|
console: { log: log }
|
|
});
|
|
function log (msg) { t.equal(msg, 'beep boop\n') }
|
|
}));
|
|
});
|
|
|
|
test('readFileSync attribute with multiple require vars x5', function (t) {
|
|
t.plan(2);
|
|
var sm = staticModule({
|
|
fs: {
|
|
readFileSync: function (file) {
|
|
return fs.createReadStream(file).pipe(quote());
|
|
}
|
|
}
|
|
}, { vars: { __dirname: path.join(__dirname, 'brfs') } });
|
|
readStream('x5.js').pipe(sm).pipe(concat(function (body) {
|
|
t.equal(body.toString('utf8').replace(/;/g,''),
|
|
'var a = 1, b = 2, c = 3, d = 4, '
|
|
+ 'src = "beep boop\\n",\n'
|
|
+ ' e = 5\n'
|
|
+ 'console.log(src)\n'
|
|
);
|
|
vm.runInNewContext(body.toString('utf8'), {
|
|
console: { log: log }
|
|
});
|
|
function log (msg) { t.equal(msg, 'beep boop\n') }
|
|
}));
|
|
});
|
|
|
|
test('readFileSync with bracket notation', function (t) {
|
|
t.plan(2);
|
|
var sm = staticModule({
|
|
fs: {
|
|
readFileSync: function (file) {
|
|
return fs.createReadStream(file).pipe(quote());
|
|
}
|
|
}
|
|
}, { vars: { __dirname: path.join(__dirname, 'brfs') } });
|
|
readStream('brackets.js').pipe(sm).pipe(concat(function (body) {
|
|
t.equal(body.toString('utf8'),
|
|
'\nvar src = "beep boop\\n";'
|
|
+ '\nconsole.log(src);\n'
|
|
);
|
|
vm.runInNewContext(body.toString('utf8'), {
|
|
console: { log: log }
|
|
});
|
|
function log (msg) { t.equal(msg, 'beep boop\n') }
|
|
}));
|
|
});
|
|
|
|
test('readFileSync attribute bracket notation', function (t) {
|
|
t.plan(2);
|
|
var sm = staticModule({
|
|
fs: {
|
|
readFileSync: function (file) {
|
|
return fs.createReadStream(file).pipe(quote());
|
|
}
|
|
}
|
|
}, { vars: { __dirname: path.join(__dirname, 'brfs') } });
|
|
readStream('attribute_brackets.js').pipe(sm).pipe(concat(function (body) {
|
|
t.equal(body.toString('utf8'),
|
|
'\nvar src = "beep boop\\n";'
|
|
+ '\nconsole.log(src);\n'
|
|
);
|
|
vm.runInNewContext(body.toString('utf8'), {
|
|
console: { log: log }
|
|
});
|
|
function log (msg) { t.equal(msg, 'beep boop\n') }
|
|
}));
|
|
});
|
|
|
|
function readStream (file) {
|
|
return fs.createReadStream(path.join(__dirname, 'brfs', file));
|
|
}
|
|
|