mathjs/test/type/range.test.js
2013-08-05 23:05:23 +02:00

49 lines
1.1 KiB
JavaScript

// test data type Range
var assert = require('assert');
var math = require('../../src/index.js');
var r = math.range(2,5);
assert.deepEqual(r.toArray(), [2,3,4,5]);
assert.equal(r.size(), 4);
r = math.range(10, -1, 5);
assert.deepEqual(r.toArray(), [10,9,8,7,6,5]);
assert.equal(r.size(), 6);
r = math.range(1, 1.5, 5);
assert.deepEqual(r.toArray(), [1,2.5,4]);
assert.equal(r.size(), 3);
assert.throws(function () {
var r = math.range();
});
r = math.range(0,0);
assert.deepEqual(r.toArray(), [0]);
assert.equal(r.size(), 1);
r = math.range(0,0,10);
assert.deepEqual(r.toArray(), []);
assert.equal(r.size(), 0);
r = math.range(0,-1,10);
assert.deepEqual(r.toArray(), []);
assert.equal(r.size(), 0);
// test range parse
r = math.range('10:-1:5');
assert.deepEqual(r.toArray(), [10,9,8,7,6,5]);
assert.equal(r.size(), 6);
r = math.range('2 : 5');
assert.deepEqual(r.toArray(), [2,3,4,5]);
assert.equal(r.size(), 4);
assert.throws(function () {math.range('a:3');});
assert.throws(function () {math.range('3');});
assert.throws(function () {math.range(3);});
assert.throws(function () {math.range('');});
// TODO: extensively test Range