mathjs/test/function/matrix.js

34 lines
1.2 KiB
JavaScript

// test matrix functions
var assert = require('assert');
var math = require('../../math.js'),
Complex = math.Complex,
Unit = math.Unit,
Matrix = math.Matrix,
Vector = math.Vector,
Range = math.Range;
// test size
assert.deepEqual(math.size([[1,2,3],[4,5,6]]), [2,3]);
assert.deepEqual(math.size([[[1,2],[3,4]],[[5,6],[7,8]]]), [2,2,2]);
assert.deepEqual(math.size([1,2,3]), [3]);
assert.deepEqual(math.size([[1],[2],[3]]), [3,1]);
assert.deepEqual(math.size(100), []);
assert.deepEqual(math.size([100]), [1]);
assert.deepEqual(math.size([[100]]), [1,1]);
assert.deepEqual(math.size([[[100]]]), [1,1,1]);
assert.deepEqual(math.size([]), [0]);
assert.deepEqual(math.size([[]]), [0,0]);
assert.deepEqual(math.size([[[]]]), [0,0,0]);
assert.deepEqual(math.size('hello'), [5]);
assert.deepEqual(math.size(''), [0]);
assert.deepEqual(math.size(new Complex(2,3)), []);
assert.deepEqual(math.size(null), []);
assert.deepEqual(math.size(new Vector()), [0]);
assert.deepEqual(math.size(new Matrix()), [0]);
assert.deepEqual(math.size(new Range(2,5)), [4]);
// TODO: test whether math.size throws an error in case of invalid data or size
// TODO: test eye
// TODO: test zeros