Files
xahau.js/test/rangeset-test.js
2015-01-14 13:40:54 -08:00

79 lines
1.7 KiB
JavaScript

var assert = require('assert');
var RangeSet = require('ripple-lib').RangeSet;
describe('RangeSet', function() {
it('add()', function() {
var r = new RangeSet();
r.add('4-5');
r.add('7-10');
r.add('1-2');
r.add('3');
assert.deepEqual(r._ranges, [
{ start: 1, end: 2 },
{ start: 3, end: 3 },
{ start: 4, end: 5 },
{ start: 7, end: 10 }
]);
});
it('add() -- malformed range', function() {
var r = new RangeSet();
assert.throws(function() {
r.add(null);
});
assert.throws(function() {
r.add(void(0));
});
assert.throws(function() {
r.add('a');
});
assert.throws(function() {
r.add('2-1');
});
});
it('contains()', function() {
var r = new RangeSet();
r.add('32570-11005146');
r.add('11005147');
assert.strictEqual(r.contains(1), false);
assert.strictEqual(r.contains(32569), false);
assert.strictEqual(r.contains(32570), true);
assert.strictEqual(r.contains('32570'), true);
assert.strictEqual(r.contains(50000), true);
assert.strictEqual(r.contains(11005146), true);
assert.strictEqual(r.contains(11005147), true);
assert.strictEqual(r.contains(11005148), false);
assert.strictEqual(r.contains(12000000), false);
});
it('contains() -- invalid ledger', function() {
var r = new RangeSet();
assert.throws(function() {
r.contains(null);
});
assert.throws(function() {
r.contains(void(0));
});
assert.throws(function() {
r.contains('a');
});
});
it('reset()', function() {
var r = new RangeSet();
r.add('4-5');
r.add('7-10');
r.reset();
assert.deepEqual(r._ranges, [ ]);
});
});