@kmamal/intervals
v0.0.2
Published
intervals
Downloads
153
Readme
@kmamal/intervals
As in @kmamal/interval, intervals are closed: both endpoints are included, so [ start, end ] covers every value x where start <= x <= end.
Every function assumes its inputs are normalized interval sets (sorted, no overlap, no empty).
Use normalize() to turn an arbitrary array of intervals into this canonical form before passing it to the other functions:
const { normalize } = require('@kmamal/intervals/normalize')
normalize([ [ 1, 2 ], [ 3, 4 ] ]) // [ [ 1, 2 ], [ 3, 4 ] ] already normalized
normalize([ [ 1, 3 ], [ 2, 4 ] ]) // [ [ 1, 4 ] ] overlapping merged
normalize([ [ 1, 2 ], [ 2, 3 ], [ 3, 4 ] ]) // [ [ 1, 4 ] ] touching merged
normalize([ [ 3, 4 ], [ 1, 2 ] ]) // [ [ 1, 2 ], [ 3, 4 ] ] sorted
normalize([ [ 2, 2 ] ]) // [ [ 2, 2 ] ] single point kept
normalize([ [ 1, -1 ] ]) // [ ] empty (start > end) dropped