/**
* Created by marija on 26.06.15.
*/
var express = require('express');
var app = express();
var fs = require('fs');
var path = require('path');
var bodyParser = require('body-parser');
var child = require('child_process');
var ss = require('simple-statistics');
var psTree = require('ps-tree');
var a1 = [];
var a2 = [];
var con_coef = 1.96;
var browser = process.argv[2];
var bugPath = process.argv[3];
var VM_invocations=process.argv[4];
var command1 = browser + ' http://localhost:8081/' + bugPath + 'v_before.html';
var command2 = browser + ' http://localhost:8081/' + bugPath + 'v_after.html';
console.log(command1);
console.log(command2);
var running_child = null;
app.set('port', process.env.PORT || 8000);
var server = app.listen(8081, function () {
console.log('Listening on port %d', server.address().port);
warmUpAndTest(command1, a1, function () {
var mean1 = parseFloat(ss.mean(a1));
var st_dev1 = ss.standard_deviation(a1);
console.log('mean 1: ' + mean1);
warmUpAndTest(command2, a2, function () {
var mean2 = parseFloat(ss.mean(a2));
var st_dev2 = ss.standard_deviation(a2);
console.log('mean 2: ' + mean2);
var results = compare2Alternatives(mean1, mean2, st_dev1, st_dev2, con_coef, 5);
if (results[0] = 0) {
console.log('the performance difference is not statistically significant');
} else {
console.log('the performance difference is statistically significant');
var diff = 100 - (mean2 * 100) / mean1;
console.log('performance gain is: ' + diff + '%');
}
server.close();
});
});
});
function warmUpAndTest(command, array, f) {
running_child = child.exec(command, function (error, stdout, stderr) {
if (array.length