Codewars Kata for Vector Class. Tests fail on auxillary values equality. Everything else works.
// codewars link=https://www.codewars.com/kata/vector-class
var Vector = function(components) {
this.values = components;
this.result=components;
return this;
};
Vector.prototype.equals=function(){
return this.result;
}
Vector.prototype.add = function(vector) {
var hisvalues = vector.values,
myvalues = this.values,
result;
if (myvalues.length !== hisvalues.length) {
throw ('Error');
}
result = myvalues.map(function(e, i) {
return e + hisvalues[i];
});
this.values = result;
this.result=result;
return this;
}
Vector.prototype.subtract = function(vector) {
var hisvalues = vector.values,
myvalues = this.values,
result;
if (myvalues.length !== hisvalues.length) {
throw ('Error');
}
result = myvalues.map(function(e, i) {
return e - hisvalues[i];
});
this.values=result;
this.result=result;
return this;
}
Vector.prototype.dot = function(vector) {
var hisvalues = vector.values,
myvalues = this.values,
result;
if (myvalues.length !== hisvalues.length) {
throw ('Error');
}
result = myvalues.map(function(e, i) {
return e * hisvalues[i];
});
this.result=eval(result.join('+'));
return this.equals();
}
Vector.prototype.norm=function(){
var myvalues=this.values;
var result=myvalues.map(function(e,i,a){
return Math.pow(e,2);
});
this.result=Math.sqrt(eval(result.join('+')));
return this.equals();
}
Vector.prototype.toString=function(){
return '('+this.values.join(',')+')';
}