isBetween

Test if a value is between two values.

Usage

var isBetween = require( '@stdlib/assert/is-between' );

isBetween( value, a, b[, left, right] )

Tests if a value is between two values a (left comparison value) and b (right comparison value).

var bool = isBetween( 4, 3, 5 );
// returns true

bool = isBetween( 2, 3, 5 );
// returns false

bool = isBetween( 6, 3, 5 );
// returns false

By default, the function assumes that a and b are inclusive.

var bool = isBetween( 3, 3, 5 );
// returns true

bool = isBetween( 3, 3, 5, 'closed', 'closed' );
// returns true

bool = isBetween( 5, 3, 5 );
// returns true

bool = isBetween( 5, 3, 5, 'closed', 'closed' );
// returns true

To make a and/or b exclusive, set the respective arguments to 'open'.

var bool = isBetween( 3, 3, 5, 'open', 'closed' );
// returns false

bool = isBetween( 5, 3, 5, 'closed', 'open' );
// returns false

Notes

  • If a and b are inclusive, the comparison is equivalent to

    a <= v <= b
    
  • If a is exclusive and b is inclusive, the comparison is equivalent to

    a < v <= b
    
  • If a is inclusive and b is exclusive, the comparison is equivalent to

    a <= v < b
    
  • If a and b are exclusive, the comparison is equivalent to

    a < v < b
    
  • If provided non-numeric values, comparisons are performed according to lexicographic order.

Examples

var randu = require( '@stdlib/random/base/randu' );
var round = require( '@stdlib/math/base/special/round' );
var isBetween = require( '@stdlib/assert/is-between' );

var bool;
var a;
var b;
var v;
var i;

for ( i = 0; i < 100; i++ ) {
    a = round( (randu()*10.0) + 5.0 );
    b = round( (randu()*10.0) + 15.0 );
    v = round( randu()*25.0 );
    bool = isBetween( v, a, b, 'open', 'closed' );
    console.log( '%d < %d <= %d: %s', a, v, b, bool.toString() );
}