/** * Created by Alex on 9/25/2014. */ function DurationStats() { this.fields = ['duration','durationWithPause','durationWithStartup','durationWithBoth']; for (var i = 0; i < this.fields.length; i++) { this[this.fields[i]] = {mean: 0, std: 0}; } } DurationStats.prototype.clearStats = function() { for (var i = 0; i < this.fields.length; i++) { var field = this.fields[i]; this[field].mean = 0; this[field].std = 0; } }; DurationStats.prototype.sumStats = function(otherData) { for (var i = 0; i < this.fields.length; i++) { var field = this.fields[i]; this[field].mean += otherData[field].mean; this[field].std += Math.pow(otherData[field].std,2); } }; DurationStats.prototype.averageStats = function(datapoints) { for (var i = 0; i < this.fields.length; i++) { var field = this.fields[i]; this[field].mean /= datapoints; this[field].std = Math.sqrt(this[field].std / datapoints); } }; DurationStats.prototype.getMeanData = function() { var dataObj = {}; for (var i = 0; i < this.fields.length; i++) { dataObj[this.fields[i]] = this[this.fields[i]].mean; } return dataObj; }; DurationStats.prototype.getData = function() { var dataObj = {}; for (var i = 0; i < this.fields.length; i++) { dataObj[this.fields[i]] = {}; dataObj[this.fields[i]].mean = this[this.fields[i]].mean; dataObj[this.fields[i]].std = this[this.fields[i]].std; } return dataObj; }; DurationStats.prototype.setData = function(otherData) { for (var i = 0; i < this.fields.length; i++) { var field = this.fields[i]; this[field].mean = otherData[field].mean; this[field].std = otherData[field].std; } }; DurationStats.prototype.generateData = function(otherData) { for (var i = 0; i < this.fields.length; i++) { var field = this.fields[i]; this[field].mean = otherData[i] * 3600000; this[field].std = otherData[i] * 0.1; } }; DurationStats.prototype.useHighest = function(otherData) { for (var i = 0; i < this.fields.length; i++) { var field = this.fields[i]; if (this[field].mean < otherData[field].mean) { this[field].mean = otherData[field].mean; this[field].std = otherData[field].std; } } }; DurationStats.prototype.getFakeStats = function(type) { switch (type) { case "Assemble Coffeemaker": this.generateData([1.3,1.3,1.3,1.3]); break; case "Discuss potential NC": this.generateData([0.5,0.5,0.9,0.9]); break; case "Drilling rework": this.generateData([5,5,8,8]); break; case "Go to station": var a = 0.3; this.generateData([a,a,a,a]); break; case "Inspect finished Coffeemaker": var a = 2; this.generateData([a,a,a,a]); break; case "Inspect potential NC": var a = 0.5; this.generateData([a,a,a,a]); break; case "Kitting Coffeemaker": var a = 1.2; this.generateData([a,a,a,a]); break; case "NC Meeting": var a = 15; this.generateData([3,3.5,a,a]); break; case "Go to NC meeting": var a = 12; this.generateData([a,a,a,a]); break; case "Organise drilling rework": var a = 2; this.generateData([a,a,3,3]); break; case "Produce Coffeemaker": var a = 35; this.generateData([a,a,a,a]); break; case "Transport to delivery": var a = 0.4; this.generateData([a,a,a,a]); break; default: console.log("CANNOT MATCH", type); break; } };