Skip to content

Commit

Permalink
Merge pull request #89 from jedborovik/master
Browse files Browse the repository at this point in the history
Add vector addition implementation and test
  • Loading branch information
sjkaliski committed Nov 25, 2013
2 parents b6caafa + ae73537 commit 1a85005
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
17 changes: 12 additions & 5 deletions lib/numbers/matrix.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,18 @@ matrix.addition = function (arrA, arrB) {
if ((arrA.length === arrB.length) && (arrA[0].length === arrB[0].length)) {
var result = new Array(arrA.length);

for (var i = 0; i < arrA.length; i++) {
result[i] = new Array(arrA[i].length);

for (var j = 0; j < arrA[i].length; j++) {
result[i][j] = arrA[i][j] + arrB[i][j];
if (!arrA[0].length) {
// The arrays are vectors.
for (var i = 0; i < arrA.length; i++) {
result[i] = arrA[i] + arrB[i];
}
} else {
for (var i = 0; i < arrA.length; i++) {
result[i] = new Array(arrA[i].length);

for (var j = 0; j < arrA[i].length; j++) {
result[i][j] = arrA[i][j] + arrB[i][j];
}
}
}

Expand Down
12 changes: 12 additions & 0 deletions test/matrix.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,18 @@ suite('numbers', function() {
done();
});

test('should return sum of two vectors', function(done) {
var arrA = [0, 1, 2];
var arrB = [3, 4, 5];

var arrC = [3, 5, 7];

var res = matrix.addition(arrA, arrB);

assert.deepEqual(arrC, res);
done();
});

test('should returned scaled matrix', function(done) {
var array = [
[0, 1, 2],
Expand Down

0 comments on commit 1a85005

Please sign in to comment.