intervals-union-intersection

1.0.0 • Public • Published

#Bridge

codecov Build Status

Function for union of intervals.
Particularly useful for caching temporally sorted data and for calculating the missing intervals.

##Example

A = 1-2-3      5-6-7     10-11            +
B =        3-4-5-6                    12-16 =
      ------------------------------------
I = 1-2-3-4-5-6-7     10-11  12-16 
C =        3-4-5                        12-16

A is a given ordained set of intervals, B is an interval we want to add to our set A.
I is the result of the operation A U B .
C is the set of intervals resulting from the operation I - A (the missing intervals added to A from B to obtain I).

In code, it will be:

###Exemple 1

var f = require('./algo.js')

var interval = [[1, 3], [5, 7], [10, 11]];
var newInterval  = [3, 6];
var newInterval2 = [12, 16];

var call1  = f(newInterval, interval);
var call2  = f(newInterval2, interval);

console.log(interval) //the resulting intervals -> [[1,7], [10,11], [12, 16]];
console.log(call1.intersection) //the missing intervals -> [[3, 5]];
console.log(call2.intersection) //the missing intervals -> [[12, 16]];

###Exemple 2

var f = require('./algo.js')

var interval = [[2, 5], [6, 8]];
var newInterval = [7, 9];
var test = f(newInterval, interval);

console.log(interval) //the resulting intervals -> [[2,5], [6,9]];
console.log(test.intersection) //the missing intervals -> [[8, 9]];

###Exemple 3

var f = require('./algo.js')

var interval = [[1, 9], [11, 15], [19, 31]];
var newInterval = [7, 10];
var test = f(newInterval, interval);

console.log(interval) //the resulting intervals -> [[1,10], [11, 15], [19, 31]];
console.log(test.intersection) //the missing intervals -> [[9, 10]];

##Tests Simply run npm test after installing dev dependencies. Coverage of tests is 100%.

##Notes The function doesn't create any new object, so that the interval array parameter (passed by reference) will be modified by function's call, resulting as the updated intervals.

Readme

Keywords

none

Package Sidebar

Install

npm i intervals-union-intersection

Weekly Downloads

1

Version

1.0.0

License

ISC

Last publish

Collaborators

  • morrisda