1.0.0 • Published 7 years ago

intervals-union-intersection v1.0.0

Weekly downloads
1
License
ISC
Repository
-
Last release
7 years ago

#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.