mirror of
https://github.com/josdejong/mathjs.git
synced 2025-12-08 19:46:04 +00:00
61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
var assert = require('assert');
|
|
var approx = require('../../../tools/approx');
|
|
var math = require('../../../index');
|
|
var BigNumber = math.type.BigNumber;
|
|
var DenseMatrix = math.type.DenseMatrix;
|
|
var mad = math.mad;
|
|
|
|
describe('mad', function() {
|
|
|
|
it('should return the median absolute deviation of numbers', function() {
|
|
assert.equal(mad(10), 0);
|
|
assert.equal(mad(4,6,8), 2);
|
|
assert.equal(mad(1, 10, 20, 30), 9.5);
|
|
});
|
|
|
|
it('should return the median absolute deviation of big numbers', function() {
|
|
assert.deepEqual(mad(new BigNumber(4),new BigNumber(6),new BigNumber(8)),
|
|
new BigNumber(2));
|
|
});
|
|
|
|
it('should return the median absolute deviation from an array', function() {
|
|
assert.equal(mad([10]), 0);
|
|
assert.equal(mad([4,6,8]), 2);
|
|
assert.equal(mad([1, 10, 20, 30]), 9.5);
|
|
});
|
|
|
|
it('should return the median absolute deviation from an 1d matrix', function() {
|
|
assert.equal(mad(new DenseMatrix([10])), 0);
|
|
assert.equal(mad(new DenseMatrix([4,6,8])), 2);
|
|
assert.equal(mad(new DenseMatrix([1, 10, 20, 30])), 9.5);
|
|
});
|
|
|
|
it('should return the median absolute deviation element from a 2d array', function() {
|
|
assert.deepEqual(mad([
|
|
[2,4,6],
|
|
[1,3,5]
|
|
]), 1.5);
|
|
});
|
|
|
|
it('should return the median absolute deviation element from a 2d matrix', function() {
|
|
assert.deepEqual(mad(new DenseMatrix([
|
|
[2,4,6],
|
|
[1,3,5]
|
|
])), 1.5);
|
|
});
|
|
|
|
it('should throw an error if called with invalid number of arguments', function() {
|
|
assert.throws(function() {mad()});
|
|
});
|
|
|
|
it('should throw an error if called with an empty array', function() {
|
|
assert.throws(function() {mad([])});
|
|
});
|
|
|
|
it('should LaTeX mad', function () {
|
|
var expression = math.parse('mad(1,2,3)');
|
|
assert.equal(expression.toTex(), '\\mathrm{mad}\\left(1,2,3\\right)');
|
|
});
|
|
|
|
});
|