UNPKG

molstar

Version:

A comprehensive macromolecular library.

43 lines 2.88 kB
"use strict"; /** * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ Object.defineProperty(exports, "__esModule", { value: true }); var sorted_ranges_1 = require("../sorted-ranges"); var ordered_set_1 = require("../ordered-set"); var sorted_array_1 = require("../sorted-array"); describe('rangesArray', function () { function test(name, a, b) { it(name, function () { return expect(a).toEqual(b); }); } function testIterator(name, ranges, set, expectedValues) { it("iterator, " + name, function () { var rangesIt = sorted_ranges_1.SortedRanges.transientSegments(ranges, set); var index = expectedValues.index, start = expectedValues.start, end = expectedValues.end; var i = 0; while (rangesIt.hasNext) { var segment = rangesIt.move(); expect(segment.index).toBe(index[i]); expect(segment.start).toBe(start[i]); expect(segment.end).toBe(end[i]); ++i; } expect(i).toBe(index.length); }); } var a1234 = sorted_ranges_1.SortedRanges.ofSortedRanges([1, 2, 3, 4]); var a1134 = sorted_ranges_1.SortedRanges.ofSortedRanges([1, 1, 3, 4]); test('size', sorted_ranges_1.SortedRanges.size(a1234), 4); test('size', sorted_ranges_1.SortedRanges.size(a1134), 3); test('min/max', [sorted_ranges_1.SortedRanges.min(a1234), sorted_ranges_1.SortedRanges.max(a1234)], [1, 4]); test('start/end', [sorted_ranges_1.SortedRanges.start(a1234), sorted_ranges_1.SortedRanges.end(a1234)], [1, 5]); testIterator('two ranges', sorted_ranges_1.SortedRanges.ofSortedRanges([1, 2, 3, 4]), ordered_set_1.OrderedSet.ofBounds(1, 5), { index: [0, 1], start: [0, 2], end: [2, 4] }); testIterator('first range', sorted_ranges_1.SortedRanges.ofSortedRanges([1, 2, 3, 4]), sorted_array_1.SortedArray.ofSortedArray([2]), { index: [0], start: [0], end: [1] }); testIterator('second range', sorted_ranges_1.SortedRanges.ofSortedRanges([1, 2, 3, 4]), sorted_array_1.SortedArray.ofSortedArray([4]), { index: [1], start: [0], end: [1] }); testIterator('set not in ranges', sorted_ranges_1.SortedRanges.ofSortedRanges([1, 2, 3, 4]), sorted_array_1.SortedArray.ofSortedArray([10]), { index: [], start: [], end: [] }); testIterator('set in second range and beyond', sorted_ranges_1.SortedRanges.ofSortedRanges([1, 2, 3, 4]), sorted_array_1.SortedArray.ofSortedArray([3, 10]), { index: [1], start: [0], end: [1] }); testIterator('length 1 range', sorted_ranges_1.SortedRanges.ofSortedRanges([1, 1, 3, 4]), sorted_array_1.SortedArray.ofSortedArray([0, 1, 10]), { index: [0], start: [1], end: [2] }); }); //# sourceMappingURL=sorted-ranges.spec.js.map