|
|
|
|
@ -101,57 +101,6 @@ it('detects overlapping segments', () => {
|
|
|
|
|
]);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('combineOverlappingSegments', () => {
|
|
|
|
|
const segments = [
|
|
|
|
|
{
|
|
|
|
|
start: 0,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 838,
|
|
|
|
|
end: 1101,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 1101,
|
|
|
|
|
end: 1244,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 1216,
|
|
|
|
|
end: 1487,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 1487,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 1625,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 503,
|
|
|
|
|
end: 669,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 392,
|
|
|
|
|
end: 716,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 229,
|
|
|
|
|
end: 784,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 0,
|
|
|
|
|
end: 87,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 1561,
|
|
|
|
|
end: 1831,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 2027,
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
expect(combineOverlappingSegments(segments)).toMatchSnapshot();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('detects overlapping segments, undefined end', () => {
|
|
|
|
|
expect(partitionIntoOverlappingRanges([
|
|
|
|
|
{ start: 1, end: undefined },
|
|
|
|
|
@ -213,3 +162,77 @@ describe('invertSegments', () => {
|
|
|
|
|
], false, false)).toMatchSnapshot();
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
describe('combineOverlappingSegments', () => {
|
|
|
|
|
test('non touching', () => {
|
|
|
|
|
expect(combineOverlappingSegments([
|
|
|
|
|
{ start: 1, end: 2 },
|
|
|
|
|
{ start: 3, end: 4 },
|
|
|
|
|
])).toMatchSnapshot();
|
|
|
|
|
});
|
|
|
|
|
test('overlapping and non overlapping', () => {
|
|
|
|
|
expect(combineOverlappingSegments([
|
|
|
|
|
{ start: 1, end: 2 },
|
|
|
|
|
{ start: 1.5, end: 3 },
|
|
|
|
|
{ start: 4, end: 5 },
|
|
|
|
|
])).toMatchSnapshot();
|
|
|
|
|
});
|
|
|
|
|
test('adjacent', () => {
|
|
|
|
|
expect(combineOverlappingSegments([
|
|
|
|
|
{ start: 1, end: 2 },
|
|
|
|
|
{ start: 2, end: 3 },
|
|
|
|
|
{ start: 3, end: 4 },
|
|
|
|
|
])).toMatchSnapshot();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('various', () => {
|
|
|
|
|
const segments = [
|
|
|
|
|
{
|
|
|
|
|
start: 0,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 838,
|
|
|
|
|
end: 1101,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 1101,
|
|
|
|
|
end: 1244,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 1216,
|
|
|
|
|
end: 1487,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 1487,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 1625,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 503,
|
|
|
|
|
end: 669,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 392,
|
|
|
|
|
end: 716,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 229,
|
|
|
|
|
end: 784,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 0,
|
|
|
|
|
end: 87,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 1561,
|
|
|
|
|
end: 1831,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
start: 2027,
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
expect(combineOverlappingSegments(segments)).toMatchSnapshot();
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|