molstar
Version:
A comprehensive macromolecular library.
40 lines • 1.68 kB
JavaScript
/**
* Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
*/
Object.defineProperty(exports, "__esModule", { value: true });
var array_1 = require("../array");
var buckets_1 = require("../buckets");
describe('buckets', function () {
function reorder(order, data) {
var ret = [];
for (var _i = 0, _a = order; _i < _a.length; _i++) {
var i = _a[_i];
ret[ret.length] = data[i];
}
return ret;
}
it('full range', function () {
var xs = [1, 1, 2, 2, 3, 1];
var range = (0, array_1.createRangeArray)(0, xs.length - 1);
var bs = (0, buckets_1.makeBuckets)(range, function (i) { return xs[i]; });
expect(reorder(range, xs)).toEqual([1, 1, 1, 2, 2, 3]);
expect(Array.from(bs)).toEqual([0, 3, 5, 6]);
});
it('sort', function () {
var xs = [3, 1, 2, 1, 2, 3];
var range = (0, array_1.createRangeArray)(0, xs.length - 1);
(0, buckets_1.makeBuckets)(range, function (i) { return xs[i]; }, { sort: true });
expect(reorder(range, xs)).toEqual([1, 1, 2, 2, 3, 3]);
});
it('subrange', function () {
var xs = [2, 1, 2, 1, 2, 3, 1];
var range = (0, array_1.createRangeArray)(0, xs.length - 1);
var bs = (0, buckets_1.makeBuckets)(range, function (i) { return xs[i]; }, { sort: false, start: 1, end: 5 });
expect(reorder(range, xs)).toEqual([2, 1, 1, 2, 2, 3, 1]);
expect(Array.from(bs)).toEqual([1, 3, 5]);
});
});
//# sourceMappingURL=buckets.spec.js.map
;