UNPKG

@stdlib/assert

Version:

Standard assertion utilities.

422 lines (324 loc) 101 kB
<!-- @license Apache-2.0 Copyright (c) 2018 The Stdlib Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <details> <summary> About stdlib... </summary> <p>We believe in a future in which the web is a preferred environment for numerical computation. To help realize this future, we've built stdlib. stdlib is a standard library, with an emphasis on numerical and scientific computation, written in JavaScript (and C) for execution in browsers and in Node.js.</p> <p>The library is fully decomposable, being architected in such a way that you can swap out and mix and match APIs and functionality to cater to your exact preferences and use cases.</p> <p>When you use stdlib, you can be absolutely certain that you are using the most thorough, rigorous, well-written, studied, documented, tested, measured, and high-quality code out there.</p> <p>To join us in bringing numerical computing to the web, get started by checking us out on <a href="https://github.com/stdlib-js/stdlib">GitHub</a>, and please consider <a href="https://opencollective.com/stdlib">financially supporting stdlib</a>. We greatly appreciate your continued support!</p> </details> # Assert [![NPM version][npm-image]][npm-url] [![Build Status][test-image]][test-url] [![Coverage Status][coverage-image]][coverage-url] <!-- [![dependencies][dependencies-image]][dependencies-url] --> > Assertion utilities. <section class="installation"> ## Installation ```bash npm install @stdlib/assert ``` </section> <section class="usage"> ## Usage ```javascript var assert = require( '@stdlib/assert' ); ``` #### assert Namespace providing utilities for data type testing and feature detection. ```javascript var o = assert; // returns {...} ``` To validate the built-in JavaScript data types, the namespace includes the following assertion utilities: <!-- <toc pattern="is-+(array|boolean|date-object|function|string|symbol|nan|null|number|object|regexp|symbol|undefined)" > --> <div class="namespace-toc"> - <span class="signature">[`isArray( value )`][@stdlib/assert/is-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array.</span> - <span class="signature">[`isBoolean( value )`][@stdlib/assert/is-boolean]</span><span class="delimiter">: </span><span class="description">test if a value is a boolean.</span> - <span class="signature">[`isDateObject( value )`][@stdlib/assert/is-date-object]</span><span class="delimiter">: </span><span class="description">test if a value is a Date object.</span> - <span class="signature">[`isFunction( value )`][@stdlib/assert/is-function]</span><span class="delimiter">: </span><span class="description">test if a value is a function.</span> - <span class="signature">[`isnan( value )`][@stdlib/assert/is-nan]</span><span class="delimiter">: </span><span class="description">test if a value is NaN.</span> - <span class="signature">[`isNull( value )`][@stdlib/assert/is-null]</span><span class="delimiter">: </span><span class="description">test if a value is null.</span> - <span class="signature">[`isNumber( value )`][@stdlib/assert/is-number]</span><span class="delimiter">: </span><span class="description">test if a value is a number.</span> - <span class="signature">[`isObject( value )`][@stdlib/assert/is-object]</span><span class="delimiter">: </span><span class="description">test if a value is an object.</span> - <span class="signature">[`isRegExp( value )`][@stdlib/assert/is-regexp]</span><span class="delimiter">: </span><span class="description">test if a value is a regular expression.</span> - <span class="signature">[`isString( value )`][@stdlib/assert/is-string]</span><span class="delimiter">: </span><span class="description">test if a value is a string.</span> - <span class="signature">[`isSymbol( value )`][@stdlib/assert/is-symbol]</span><span class="delimiter">: </span><span class="description">test if a value is a symbol.</span> - <span class="signature">[`isUndefined( value )`][@stdlib/assert/is-undefined]</span><span class="delimiter">: </span><span class="description">test if a value is undefined.</span> </div> <!-- </toc> --> For primitive types having corresponding object wrappers, assertion utilities provide `isObject` and `isPrimitive` methods to test for either objects or primitives, respectively. <!-- eslint-disable no-new-wrappers --> ```javascript var Boolean = require( '@stdlib/boolean/ctor' ); var isBoolean = require( '@stdlib/assert/is-boolean' ); var bool = isBoolean.isObject( new Boolean( false ) ); // returns true bool = isBoolean.isObject( false ); // returns false bool = isBoolean.isPrimitive( false ); // returns true ``` Many of the assertion utilities have corresponding packages that test whether array elements are of the given data type: <!-- <toc pattern="is-+(array|boolean|date-object|function|string|nan|number|object|regexp|symbol|null|undefined)-array" > --> <div class="namespace-toc"> - <span class="signature">[`isArrayArray( value )`][@stdlib/assert/is-array-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array of arrays.</span> - <span class="signature">[`isBooleanArray( value )`][@stdlib/assert/is-boolean-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object of booleans.</span> - <span class="signature">[`isDateObjectArray( value )`][@stdlib/assert/is-date-object-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only Date objects.</span> - <span class="signature">[`isFunctionArray( value )`][@stdlib/assert/is-function-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only functions.</span> - <span class="signature">[`isNaNArray( value )`][@stdlib/assert/is-nan-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only NaN values.</span> - <span class="signature">[`isNullArray( value )`][@stdlib/assert/is-null-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only null values.</span> - <span class="signature">[`isNumberArray( value )`][@stdlib/assert/is-number-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object of numbers.</span> - <span class="signature">[`isObjectArray( value )`][@stdlib/assert/is-object-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only objects.</span> - <span class="signature">[`isStringArray( value )`][@stdlib/assert/is-string-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array of strings.</span> - <span class="signature">[`isSymbolArray( value )`][@stdlib/assert/is-symbol-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only symbols.</span> </div> <!-- </toc> --> Where applicable, similar to the assertion utilities for built-in data types, array assertion utilities provides methods for testing for an array of primitives or objects. <!-- eslint-disable no-new-wrappers --> ```javascript var isStringArray = require( '@stdlib/assert/is-string-array' ); var bool = isStringArray( [ 'hello', 'world' ] ); // returns true bool = isStringArray.primitives( [ 'hello', 'world' ] ); // returns true bool = isStringArray.objects( [ 'hello', 'world' ] ); // returns false bool = isStringArray.objects( [ new String( 'hello' ), new String( 'world' ) ] ); // returns true ``` The namespace also contains utilities to test for numbers within a certain range or for numbers satisfying a particular "type": <!-- <toc pattern="is-*+(number|integer)*" ignore="is-number-array" ignore="is-number" > --> <div class="namespace-toc"> - <span class="signature">[`isCubeNumber( value )`][@stdlib/assert/is-cube-number]</span><span class="delimiter">: </span><span class="description">test if a value is a cube number.</span> - <span class="signature">[`isIntegerArray( value )`][@stdlib/assert/is-integer-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only integers.</span> - <span class="signature">[`isInteger( value )`][@stdlib/assert/is-integer]</span><span class="delimiter">: </span><span class="description">test if a value is a number having an integer value.</span> - <span class="signature">[`isNegativeIntegerArray( value )`][@stdlib/assert/is-negative-integer-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only negative integers.</span> - <span class="signature">[`isNegativeInteger( value )`][@stdlib/assert/is-negative-integer]</span><span class="delimiter">: </span><span class="description">test if a value is a number having a negative integer value.</span> - <span class="signature">[`isNegativeNumberArray( value )`][@stdlib/assert/is-negative-number-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only negative numbers.</span> - <span class="signature">[`isNegativeNumber( value )`][@stdlib/assert/is-negative-number]</span><span class="delimiter">: </span><span class="description">test if a value is a number having a negative value.</span> - <span class="signature">[`isNonNegativeIntegerArray( value )`][@stdlib/assert/is-nonnegative-integer-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only nonnegative integers.</span> - <span class="signature">[`isNonNegativeInteger( value )`][@stdlib/assert/is-nonnegative-integer]</span><span class="delimiter">: </span><span class="description">test if a value is a number having a nonnegative integer value.</span> - <span class="signature">[`isNonNegativeNumberArray( value )`][@stdlib/assert/is-nonnegative-number-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only nonnegative numbers.</span> - <span class="signature">[`isNonNegativeNumber( value )`][@stdlib/assert/is-nonnegative-number]</span><span class="delimiter">: </span><span class="description">test if a value is a number having a nonnegative value.</span> - <span class="signature">[`isNonPositiveIntegerArray( value )`][@stdlib/assert/is-nonpositive-integer-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only nonpositive integers.</span> - <span class="signature">[`isNonPositiveInteger( value )`][@stdlib/assert/is-nonpositive-integer]</span><span class="delimiter">: </span><span class="description">test if a value is a number having a nonpositive integer value.</span> - <span class="signature">[`isNonPositiveNumberArray( value )`][@stdlib/assert/is-nonpositive-number-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only nonpositive numbers.</span> - <span class="signature">[`isNonPositiveNumber( value )`][@stdlib/assert/is-nonpositive-number]</span><span class="delimiter">: </span><span class="description">test if a value is a number having a nonpositive value.</span> - <span class="signature">[`isPositiveIntegerArray( value )`][@stdlib/assert/is-positive-integer-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only positive integers.</span> - <span class="signature">[`isPositiveInteger( value )`][@stdlib/assert/is-positive-integer]</span><span class="delimiter">: </span><span class="description">test if a value is a number having a positive integer value.</span> - <span class="signature">[`isPositiveNumberArray( value )`][@stdlib/assert/is-positive-number-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only positive numbers.</span> - <span class="signature">[`isPositiveNumber( value )`][@stdlib/assert/is-positive-number]</span><span class="delimiter">: </span><span class="description">test if a value is a number having a positive value.</span> - <span class="signature">[`isSafeIntegerArray( value )`][@stdlib/assert/is-safe-integer-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only safe integers.</span> - <span class="signature">[`isSafeInteger( value )`][@stdlib/assert/is-safe-integer]</span><span class="delimiter">: </span><span class="description">test if a value is a number having a safe integer value.</span> - <span class="signature">[`isSquareNumber( value )`][@stdlib/assert/is-square-number]</span><span class="delimiter">: </span><span class="description">test if a value is a square number.</span> - <span class="signature">[`isSquareTriangularNumber( value )`][@stdlib/assert/is-square-triangular-number]</span><span class="delimiter">: </span><span class="description">test if a value is a square triangular number.</span> - <span class="signature">[`isTriangularNumber( value )`][@stdlib/assert/is-triangular-number]</span><span class="delimiter">: </span><span class="description">test if a value is a triangular number.</span> </div> <!-- </toc> --> The namespace provides utilities for validating typed arrays: <!-- <toc pattern="is-+(int8|int16|int32|uint8clamped|uint8|uint16|uint32|float32|float64)array"> --> <div class="namespace-toc"> - <span class="signature">[`isFloat32Array( value )`][@stdlib/assert/is-float32array]</span><span class="delimiter">: </span><span class="description">test if a value is a Float32Array.</span> - <span class="signature">[`isFloat64Array( value )`][@stdlib/assert/is-float64array]</span><span class="delimiter">: </span><span class="description">test if a value is a Float64Array.</span> - <span class="signature">[`isInt16Array( value )`][@stdlib/assert/is-int16array]</span><span class="delimiter">: </span><span class="description">test if a value is an Int16Array.</span> - <span class="signature">[`isInt32Array( value )`][@stdlib/assert/is-int32array]</span><span class="delimiter">: </span><span class="description">test if a value is an Int32Array.</span> - <span class="signature">[`isInt8Array( value )`][@stdlib/assert/is-int8array]</span><span class="delimiter">: </span><span class="description">test if a value is an Int8Array.</span> - <span class="signature">[`isUint16Array( value )`][@stdlib/assert/is-uint16array]</span><span class="delimiter">: </span><span class="description">test if a value is a Uint16Array.</span> - <span class="signature">[`isUint32Array( value )`][@stdlib/assert/is-uint32array]</span><span class="delimiter">: </span><span class="description">test if a value is a Uint32Array.</span> - <span class="signature">[`isUint8Array( value )`][@stdlib/assert/is-uint8array]</span><span class="delimiter">: </span><span class="description">test if a value is a Uint8Array.</span> - <span class="signature">[`isUint8ClampedArray( value )`][@stdlib/assert/is-uint8clampedarray]</span><span class="delimiter">: </span><span class="description">test if a value is a Uint8ClampedArray.</span> </div> <!-- </toc> --> The namespace includes utilities for validating `ndarray`s (n-dimensional arrays). <!-- <toc keywords="+ndarray" > --> <div class="namespace-toc"> - <span class="signature">[`isCentrosymmetricMatrix( value )`][@stdlib/assert/is-centrosymmetric-matrix]</span><span class="delimiter">: </span><span class="description">test if a value is a centrosymmetric matrix.</span> - <span class="signature">[`isComplex128MatrixLike( value )`][@stdlib/assert/is-complex128matrix-like]</span><span class="delimiter">: </span><span class="description">test if a value is a 2-dimensional ndarray-like object containing double-precision complex floating-point numbers.</span> - <span class="signature">[`isComplex128ndarrayLike( value )`][@stdlib/assert/is-complex128ndarray-like]</span><span class="delimiter">: </span><span class="description">test if a value is an ndarray-like object containing double-precision complex floating-point numbers.</span> - <span class="signature">[`isComplex128VectorLike( value )`][@stdlib/assert/is-complex128vector-like]</span><span class="delimiter">: </span><span class="description">test if a value is a 1-dimensional ndarray-like object containing double-precision complex floating-point numbers.</span> - <span class="signature">[`isComplex64MatrixLike( value )`][@stdlib/assert/is-complex64matrix-like]</span><span class="delimiter">: </span><span class="description">test if a value is a 2-dimensional ndarray-like object containing single-precision complex floating-point numbers.</span> - <span class="signature">[`isComplex64ndarrayLike( value )`][@stdlib/assert/is-complex64ndarray-like]</span><span class="delimiter">: </span><span class="description">test if a value is an ndarray-like object containing single-precision complex floating-point numbers.</span> - <span class="signature">[`isComplex64VectorLike( value )`][@stdlib/assert/is-complex64vector-like]</span><span class="delimiter">: </span><span class="description">test if a value is a 1-dimensional ndarray-like object containing single-precision complex floating-point numbers.</span> - <span class="signature">[`isFloat32MatrixLike( value )`][@stdlib/assert/is-float32matrix-like]</span><span class="delimiter">: </span><span class="description">test if a value is a 2-dimensional ndarray-like object containing single-precision floating-point numbers.</span> - <span class="signature">[`isFloat32ndarrayLike( value )`][@stdlib/assert/is-float32ndarray-like]</span><span class="delimiter">: </span><span class="description">test if a value is an ndarray-like object containing single-precision floating-point numbers.</span> - <span class="signature">[`isFloat32VectorLike( value )`][@stdlib/assert/is-float32vector-like]</span><span class="delimiter">: </span><span class="description">test if a value is a 1-dimensional ndarray-like object containing single-precision floating-point numbers.</span> - <span class="signature">[`isFloat64MatrixLike( value )`][@stdlib/assert/is-float64matrix-like]</span><span class="delimiter">: </span><span class="description">test if a value is a 2-dimensional ndarray-like object containing double-precision floating-point numbers.</span> - <span class="signature">[`isFloat64ndarrayLike( value )`][@stdlib/assert/is-float64ndarray-like]</span><span class="delimiter">: </span><span class="description">test if a value is an ndarray-like object containing double-precision floating-point numbers.</span> - <span class="signature">[`isFloat64VectorLike( value )`][@stdlib/assert/is-float64vector-like]</span><span class="delimiter">: </span><span class="description">test if a value is a 1-dimensional ndarray-like object containing double-precision floating-point numbers.</span> - <span class="signature">[`isMatrixLike( value )`][@stdlib/assert/is-matrix-like]</span><span class="delimiter">: </span><span class="description">test if a value is 2-dimensional ndarray-like object.</span> - <span class="signature">[`isndarrayLike( value )`][@stdlib/assert/is-ndarray-like]</span><span class="delimiter">: </span><span class="description">test if a value is ndarray-like.</span> - <span class="signature">[`isNonSymmetricMatrix( value )`][@stdlib/assert/is-nonsymmetric-matrix]</span><span class="delimiter">: </span><span class="description">test if a value is a non-symmetric matrix.</span> - <span class="signature">[`isPersymmetricMatrix( value )`][@stdlib/assert/is-persymmetric-matrix]</span><span class="delimiter">: </span><span class="description">test if a value is a persymmetric matrix.</span> - <span class="signature">[`isSkewCentrosymmetricMatrix( value )`][@stdlib/assert/is-skew-centrosymmetric-matrix]</span><span class="delimiter">: </span><span class="description">test if a value is a skew-centrosymmetric matrix.</span> - <span class="signature">[`isSkewPersymmetricMatrix( value )`][@stdlib/assert/is-skew-persymmetric-matrix]</span><span class="delimiter">: </span><span class="description">test if a value is a skew-persymmetric matrix.</span> - <span class="signature">[`isSkewSymmetricMatrix( value )`][@stdlib/assert/is-skew-symmetric-matrix]</span><span class="delimiter">: </span><span class="description">test if a value is a skew-symmetric matrix.</span> - <span class="signature">[`isSquareMatrix( value )`][@stdlib/assert/is-square-matrix]</span><span class="delimiter">: </span><span class="description">test if a value is a 2-dimensional ndarray-like object having equal dimensions.</span> - <span class="signature">[`isSymmetricMatrix( value )`][@stdlib/assert/is-symmetric-matrix]</span><span class="delimiter">: </span><span class="description">test if a value is a symmetric matrix.</span> - <span class="signature">[`isVectorLike( value )`][@stdlib/assert/is-vector-like]</span><span class="delimiter">: </span><span class="description">test if a value is a 1-dimensional ndarray-like object.</span> </div> <!-- </toc> --> The namespace includes utilities for validating complex numbers and arrays of complex numbers: <!-- <toc pattern="is-complex*" > --> <div class="namespace-toc"> - <span class="signature">[`isComplexLike( value )`][@stdlib/assert/is-complex-like]</span><span class="delimiter">: </span><span class="description">test if a value is a complex number-like object.</span> - <span class="signature">[`isComplexTypedArrayLike( value )`][@stdlib/assert/is-complex-typed-array-like]</span><span class="delimiter">: </span><span class="description">test if a value is complex-typed-array-like.</span> - <span class="signature">[`isComplexTypedArray( value )`][@stdlib/assert/is-complex-typed-array]</span><span class="delimiter">: </span><span class="description">test if a value is a complex typed array.</span> - <span class="signature">[`isComplex( value )`][@stdlib/assert/is-complex]</span><span class="delimiter">: </span><span class="description">test if a value is a 64-bit or 128-bit complex number.</span> - <span class="signature">[`isComplex128( value )`][@stdlib/assert/is-complex128]</span><span class="delimiter">: </span><span class="description">test if a value is a 128-bit complex number.</span> - <span class="signature">[`isComplex128Array( value )`][@stdlib/assert/is-complex128array]</span><span class="delimiter">: </span><span class="description">test if a value is a Complex128Array.</span> - <span class="signature">[`isComplex64( value )`][@stdlib/assert/is-complex64]</span><span class="delimiter">: </span><span class="description">test if a value is a 64-bit complex number.</span> - <span class="signature">[`isComplex64Array( value )`][@stdlib/assert/is-complex64array]</span><span class="delimiter">: </span><span class="description">test if a value is a Complex64Array.</span> </div> <!-- </toc> --> The namespace includes utilities for validating other special arrays or buffers: <!-- <toc pattern="is-*array*" ignore="is-+(int8|int16|int32|uint8clamped|uint8|uint16|uint32|float32|float64)array" ignore="is-*+(number|integer)*" ignore="is-+(array|boolean|date-object|function|string|nan|number|object|primitive|regexp|symbol|null|undefined)-array" ignore="is-array" keywords="-ndarray" > --> <div class="namespace-toc"> - <span class="signature">[`isAccessorArray( value )`][@stdlib/assert/is-accessor-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object supporting the accessor (get/set) protocol.</span> - <span class="signature">[`isArrayLength( value )`][@stdlib/assert/is-array-length]</span><span class="delimiter">: </span><span class="description">test if a value is a valid array length.</span> - <span class="signature">[`isArrayLikeObject( value )`][@stdlib/assert/is-array-like-object]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object.</span> - <span class="signature">[`isArrayLike( value )`][@stdlib/assert/is-array-like]</span><span class="delimiter">: </span><span class="description">test if a value is array-like.</span> - <span class="signature">[`isArrayBufferView( value )`][@stdlib/assert/is-arraybuffer-view]</span><span class="delimiter">: </span><span class="description">test if a value is an ArrayBuffer view.</span> - <span class="signature">[`isArrayBuffer( value )`][@stdlib/assert/is-arraybuffer]</span><span class="delimiter">: </span><span class="description">test if a value is an ArrayBuffer.</span> - <span class="signature">[`isBetweenArray( value, a, b[, left, right] )`][@stdlib/assert/is-between-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object where every element is between two values.</span> - <span class="signature">[`isBigInt64Array( value )`][@stdlib/assert/is-bigint64array]</span><span class="delimiter">: </span><span class="description">test if a value is a BigInt64Array.</span> - <span class="signature">[`isBigUint64Array( value )`][@stdlib/assert/is-biguint64array]</span><span class="delimiter">: </span><span class="description">test if a value is a BigUint64Array.</span> - <span class="signature">[`isCircularArray( value )`][@stdlib/assert/is-circular-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array containing a circular reference.</span> - <span class="signature">[`isEmptyArrayLikeObject( value )`][@stdlib/assert/is-empty-array-like-object]</span><span class="delimiter">: </span><span class="description">test if a value is an empty array-like object.</span> - <span class="signature">[`isEmptyArray( value )`][@stdlib/assert/is-empty-array]</span><span class="delimiter">: </span><span class="description">test if a value is an empty array.</span> - <span class="signature">[`isFalsyArray( value )`][@stdlib/assert/is-falsy-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only falsy values.</span> - <span class="signature">[`isFiniteArray( value )`][@stdlib/assert/is-finite-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only finite numbers.</span> - <span class="signature">[`isNumericArray( value )`][@stdlib/assert/is-numeric-array]</span><span class="delimiter">: </span><span class="description">test if a value is a numeric array.</span> - <span class="signature">[`isPlainObjectArray( value )`][@stdlib/assert/is-plain-object-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only plain objects.</span> - <span class="signature">[`isProbabilityArray( value )`][@stdlib/assert/is-probability-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only probabilities.</span> - <span class="signature">[`isSameArray( v1, v2 )`][@stdlib/assert/is-same-array]</span><span class="delimiter">: </span><span class="description">test if two arguments are both generic arrays and have the same values.</span> - <span class="signature">[`isSameComplex128Array( v1, v2 )`][@stdlib/assert/is-same-complex128array]</span><span class="delimiter">: </span><span class="description">test if two arguments are both Complex128Arrays and have the same values.</span> - <span class="signature">[`isSameComplex64Array( v1, v2 )`][@stdlib/assert/is-same-complex64array]</span><span class="delimiter">: </span><span class="description">test if two arguments are both Complex64Arrays and have the same values.</span> - <span class="signature">[`isSameFloat32Array( v1, v2 )`][@stdlib/assert/is-same-float32array]</span><span class="delimiter">: </span><span class="description">test if two arguments are both Float32Arrays and have the same values.</span> - <span class="signature">[`isSameFloat64Array( v1, v2 )`][@stdlib/assert/is-same-float64array]</span><span class="delimiter">: </span><span class="description">test if two arguments are both Float64Arrays and have the same values.</span> - <span class="signature">[`isSharedArrayBuffer( value )`][@stdlib/assert/is-sharedarraybuffer]</span><span class="delimiter">: </span><span class="description">test if a value is a SharedArrayBuffer.</span> - <span class="signature">[`isTruthyArray( value )`][@stdlib/assert/is-truthy-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array-like object containing only truthy values.</span> - <span class="signature">[`isTypedArrayLength( value )`][@stdlib/assert/is-typed-array-length]</span><span class="delimiter">: </span><span class="description">test if a value is a valid typed array length.</span> - <span class="signature">[`isTypedArrayLike( value )`][@stdlib/assert/is-typed-array-like]</span><span class="delimiter">: </span><span class="description">test if a value is typed-array-like.</span> - <span class="signature">[`isTypedArray( value )`][@stdlib/assert/is-typed-array]</span><span class="delimiter">: </span><span class="description">test if a value is a typed array.</span> - <span class="signature">[`isUnityProbabilityArray( value )`][@stdlib/assert/is-unity-probability-array]</span><span class="delimiter">: </span><span class="description">test if a value is an array of probabilities that sum to one.</span> </div> <!-- </toc> --> To test for error objects, the namespace includes the following utilities: <!-- <toc pattern="is-*error*" > --> <div class="namespace-toc"> - <span class="signature">[`isError( value )`][@stdlib/assert/is-error]</span><span class="delimiter">: </span><span class="description">test if a value is an Error object.</span> - <span class="signature">[`isEvalError( value )`][@stdlib/assert/is-eval-error]</span><span class="delimiter">: </span><span class="description">test if a value is an EvalError object.</span> - <span class="signature">[`isRangeError( value )`][@stdlib/assert/is-range-error]</span><span class="delimiter">: </span><span class="description">test if a value is a RangeError object.</span> - <span class="signature">[`isReferenceError( value )`][@stdlib/assert/is-reference-error]</span><span class="delimiter">: </span><span class="description">test if a value is a ReferenceError object.</span> - <span class="signature">[`isSyntaxError( value )`][@stdlib/assert/is-syntax-error]</span><span class="delimiter">: </span><span class="description">test if a value is a SyntaxError object.</span> - <span class="signature">[`isTypeError( value )`][@stdlib/assert/is-type-error]</span><span class="delimiter">: </span><span class="description">test if a value is a TypeError object.</span> - <span class="signature">[`isURIError( value )`][@stdlib/assert/is-uri-error]</span><span class="delimiter">: </span><span class="description">test if a value is a URIError object.</span> </div> <!-- </toc> --> The namespace exposes the following constants concerning the current running process: <!-- <toc pattern="is-+(browser|darwin|electron|electron-main|electron-renderer|little-endian|big-endian|node|web-worker|windows|docker|mobile|touch-device)" > --> <div class="namespace-toc"> - <span class="signature">[`IS_BIG_ENDIAN`][@stdlib/assert/is-big-endian]</span><span class="delimiter">: </span><span class="description">check if an environment is big endian.</span> - <span class="signature">[`IS_BROWSER`][@stdlib/assert/is-browser]</span><span class="delimiter">: </span><span class="description">check if the runtime is a web browser.</span> - <span class="signature">[`IS_DARWIN`][@stdlib/assert/is-darwin]</span><span class="delimiter">: </span><span class="description">boolean indicating if the current process is running on Darwin.</span> - <span class="signature">[`IS_DOCKER`][@stdlib/assert/is-docker]</span><span class="delimiter">: </span><span class="description">check if the process is running in a Docker container.</span> - <span class="signature">[`IS_ELECTRON_MAIN`][@stdlib/assert/is-electron-main]</span><span class="delimiter">: </span><span class="description">check if the runtime is the main Electron process.</span> - <span class="signature">[`IS_ELECTRON_RENDERER`][@stdlib/assert/is-electron-renderer]</span><span class="delimiter">: </span><span class="description">check if the runtime is the Electron renderer process.</span> - <span class="signature">[`IS_ELECTRON`][@stdlib/assert/is-electron]</span><span class="delimiter">: </span><span class="description">check if the runtime is Electron.</span> - <span class="signature">[`IS_LITTLE_ENDIAN`][@stdlib/assert/is-little-endian]</span><span class="delimiter">: </span><span class="description">check if an environment is little endian.</span> - <span class="signature">[`IS_MOBILE`][@stdlib/assert/is-mobile]</span><span class="delimiter">: </span><span class="description">check if the current environment is a mobile device.</span> - <span class="signature">[`IS_NODE`][@stdlib/assert/is-node]</span><span class="delimiter">: </span><span class="description">check if the runtime is Node.js.</span> - <span class="signature">[`IS_TOUCH_DEVICE`][@stdlib/assert/is-touch-device]</span><span class="delimiter">: </span><span class="description">check if the current environment is a touch device.</span> - <span class="signature">[`IS_WEB_WORKER`][@stdlib/assert/is-web-worker]</span><span class="delimiter">: </span><span class="description">check if the runtime is a web worker.</span> - <span class="signature">[`IS_WINDOWS`][@stdlib/assert/is-windows]</span><span class="delimiter">: </span><span class="description">boolean indicating if the current process is running on Windows.</span> </div> <!-- </toc> --> To test whether a runtime environment supports certain features, the namespace includes the following utilities: <!-- <toc pattern="has-*-support" > --> <div class="namespace-toc"> - <span class="signature">[`hasArrayBufferSupport()`][@stdlib/assert/has-arraybuffer-support]</span><span class="delimiter">: </span><span class="description">detect native `ArrayBuffer` support.</span> - <span class="signature">[`hasArrowFunctionSupport()`][@stdlib/assert/has-arrow-function-support]</span><span class="delimiter">: </span><span class="description">detect native `arrow function` support.</span> - <span class="signature">[`hasAsyncAwaitSupport()`][@stdlib/assert/has-async-await-support]</span><span class="delimiter">: </span><span class="description">detect native `async`/`await` support.</span> - <span class="signature">[`hasAsyncIteratorSymbolSupport()`][@stdlib/assert/has-async-iterator-symbol-support]</span><span class="delimiter">: </span><span class="description">detect native `Symbol.asyncIterator` support.</span> - <span class="signature">[`hasBigIntSupport()`][@stdlib/assert/has-bigint-support]</span><span class="delimiter">: </span><span class="description">detect native `BigInt` support.</span> - <span class="signature">[`hasBigInt64ArraySupport()`][@stdlib/assert/has-bigint64array-support]</span><span class="delimiter">: </span><span class="description">detect native `BigInt64Array` support.</span> - <span class="signature">[`hasBigUint64ArraySupport()`][@stdlib/assert/has-biguint64array-support]</span><span class="delimiter">: </span><span class="description">detect native `BigUint64Array` support.</span> - <span class="signature">[`hasClassSupport()`][@stdlib/assert/has-class-support]</span><span class="delimiter">: </span><span class="description">detect native `class` support.</span> - <span class="signature">[`hasDataViewSupport()`][@stdlib/assert/has-dataview-support]</span><span class="delimiter">: </span><span class="description">detect native `DataView` support.</span> - <span class="signature">[`hasDefinePropertiesSupport()`][@stdlib/assert/has-define-properties-support]</span><span class="delimiter">: </span><span class="description">detect `Object.defineProperties` support.</span> - <span class="signature">[`hasDefinePropertySupport()`][@stdlib/assert/has-define-property-support]</span><span class="delimiter">: </span><span class="description">detect `Object.defineProperty` support.</span> - <span class="signature">[`hasFloat32ArraySupport()`][@stdlib/assert/has-float32array-support]</span><span class="delimiter">: </span><span class="description">detect native `Float32Array` support.</span> - <span class="signature">[`hasFloat64ArraySupport()`][@stdlib/assert/has-float64array-support]</span><span class="delimiter">: </span><span class="description">detect native `Float64Array` support.</span> - <span class="signature">[`hasFunctionNameSupport()`][@stdlib/assert/has-function-name-support]</span><span class="delimiter">: </span><span class="description">detect native function `name` support.</span> - <span class="signature">[`hasGeneratorSupport()`][@stdlib/assert/has-generator-support]</span><span class="delimiter">: </span><span class="description">detect native `generator function` support.</span> - <span class="signature">[`hasGlobalThisSupport()`][@stdlib/assert/has-globalthis-support]</span><span class="delimiter">: </span><span class="description">detect `globalThis` support.</span> - <span class="signature">[`hasInt16ArraySupport()`][@stdlib/assert/has-int16array-support]</span><span class="delimiter">: </span><span class="description">detect native `Int16Array` support.</span> - <span class="signature">[`hasInt32ArraySupport()`][@stdlib/assert/has-int32array-support]</span><span class="delimiter">: </span><span class="description">detect native `Int32Array` support.</span> - <span class="signature">[`hasInt8ArraySupport()`][@stdlib/assert/has-int8array-support]</span><span class="delimiter">: </span><span class="description">detect native `Int8Array` support.</span> - <span class="signature">[`hasIteratorSymbolSupport()`][@stdlib/assert/has-iterator-symbol-support]</span><span class="delimiter">: </span><span class="description">detect native `Symbol.iterator` support.</span> - <span class="signature">[`hasMapSupport()`][@stdlib/assert/has-map-support]</span><span class="delimiter">: </span><span class="description">detect native `Map` support.</span> - <span class="signature">[`hasNodeBufferSupport()`][@stdlib/assert/has-node-buffer-support]</span><span class="delimiter">: </span><span class="description">detect native `Buffer` support.</span> - <span class="signature">[`hasProxySupport()`][@stdlib/assert/has-proxy-support]</span><span class="delimiter">: </span><span class="description">detect native `Proxy` support.</span> - <span class="signature">[`hasSetSupport()`][@stdlib/assert/has-set-support]</span><span class="delimiter">: </span><span class="description">detect native `Set` support.</span> - <span class="signature">[`hasSharedArrayBufferSupport()`][@stdlib/assert/has-sharedarraybuffer-support]</span><span class="delimiter">: </span><span class="description">detect native `SharedArrayBuffer` support.</span> - <span class="signature">[`hasSymbolSupport()`][@stdlib/assert/has-symbol-support]</span><span class="delimiter">: </span><span class="description">detect native `Symbol` support.</span> - <span class="signature">[`hasToStringTagSupport()`][@stdlib/assert/has-tostringtag-support]</span><span class="delimiter">: </span><span class="description">detect native `Symbol.toStringTag` support.</span> - <span class="signature">[`hasUint16ArraySupport()`][@stdlib/assert/has-uint16array-support]</span><span class="delimiter">: </span><span class="description">detect native `Uint16Array` support.</span> - <span class="signature">[`hasUint32ArraySupport()`][@stdlib/assert/has-uint32array-support]</span><span class="delimiter">: </span><span class="description">detect native `Uint32Array` support.</span> - <span class="signature">[`hasUint8ArraySupport()`][@stdlib/assert/has-uint8array-support]</span><span class="delimiter">: </span><span class="description">detect native `Uint8Array` support.</span> - <span class="signature">[`hasUint8ClampedArraySupport()`][@stdlib/assert/has-uint8clampedarray-support]</span><span class="delimiter">: </span><span class="description">detect native `Uint8ClampedArray` support.</span> - <span class="signature">[`hasWebAssemblySupport()`][@stdlib/assert/has-wasm-support]</span><span class="delimiter">: </span><span class="description">detect native WebAssembly support.</span> - <span class="signature">[`hasWeakMapSupport()`][@stdlib/assert/has-weakmap-support]</span><span class="delimiter">: </span><span class="description">detect native `WeakMap` support.</span> - <span class="signature">[`hasWeakSetSupport()`][@stdlib/assert/has-weakset-support]</span><span class="delimiter">: </span><span class="description">detect native `WeakSet` support.</span> </div> <!-- </toc> --> The remaining namespace utilities are as follows: <!-- <toc ignore="is-+(array|boolean|date-object|function|string|symbol|nan|null|number|object|regexp|symbol|undefined)" ignore="is-*+(number|integer)*" ignore="is-*array*" ignore="is-*error*" ignore="is-+(browser|darwin|electron|electron-main|electron-renderer|little-endian|node|web-worker|windows)" ignore="has-*-support" keywords="-ndarray" > --> <div class="namespace-toc"> - <span class="signature">[`contains( val, searchValue[, position] )`][@stdlib/assert/contains]</span><span class="delimiter">: </span><span class="description">test if an array-like value contains a search value.</span> - <span class="signature">[`deepEqual( a, b )`][@stdlib/assert/deep-equal]</span><span class="delimiter">: </span><span class="description">test for deep equality between two values.</span> - <span class="signature">[`deepHasOwnProp( value, path[, options] )`][@stdlib/assert/deep-has-own-property]</span><span class="delimiter">: </span><span class="description">test whether an object contains a nested key path.</span> - <span class="signature">[`deepHasProp( value, path[, options] )`][@stdlib/assert/deep-has-property]</span><span class="delimiter">: </span><span class="description">test whether an object contains a nested key path, either own or inherited.</span> - <span class="signature">[`hasOwnProp( value, property )`][@stdlib/assert/has-own-property]</span><span class="delimiter">: </span><span class="description">test if an object has a specified property.</span> - <span class="signature">[`hasProp( value, property )`][@stdlib/assert/has-property]</span><span class="delimiter">: </span><span class="description">test if an object has a specified property, either own or inherited.</span> - <span class="signature">[`hasUTF16SurrogatePairAt( string, position )`][@stdlib/assert/has-utf16-surrogate-pair-at]</span><span class="delimiter">: </span><span class="description">test if a position in a string marks the start of a UTF-16 surrogate pair.</span> - <span class="signature">[`instanceOf( value, constructor )`][@stdlib/assert/instance-of]</span><span class="delimiter">: </span><span class="description">test whether a value has in its prototype chain a specified constructor as a prototype property.</span> - <span class="signature">[`isAbsoluteHttpURI( value )`][@stdlib/assert/is-absolute-http-uri]</span><span class="delimiter">: </span><span class="description">test whether a value is an absolute HTTP(S) URI.</span> - <span class="signature">[`isAbsolutePath( value )`][@stdlib/assert/is-absolute-path]</span><span class="delimiter">: </span><span class="description">test if a value is an absolute path.</span> - <span class="signature">[`isAbsoluteURI( value )`][@stdlib/assert/is-absolute-uri]</span><span class="delimiter">: </span><span class="description">test whether a value is an absolute URI.</span> - <span class="signature">[`isAccessorPropertyIn( value, property )`][@stdlib/assert/is-accessor-property-in]</span><span class="delimiter">: </span><span class="description">test if an object's own or inherited property has an accessor descriptor.</span> - <span class="signature">[`isAccessorProperty( value, property )`][@stdlib/assert/is-accessor-property]</span><span class="delimiter">: </span><span class="description">test if an object's own property has an accessor descriptor.</span> - <span class="signature">[`isAlphagram( value )`][@stdlib/assert/is-alphagram]</span><span class="delimiter">: </span><span class="description">test if a value is an alphagram.</span> - <span class="signature">[`isAlphaNumeric( value )`][@stdlib/assert/is-alphanumeric]</span><span class="delimiter">: </span><span class="description">test whether a string contains only alphanumeric characters.</span> - <span class="signature">[`isAnagram( str, value )`][@stdlib/assert/is-anagram]</span><span class="delimiter">: </span><span class="description">test if a value is an anagram.</span> - <span class="signature">[`isArguments( value )`][@stdlib/assert/is-arguments]</span><span class="delimiter">: </span><span class="description">test if a value is an arguments object.</span> - <span class="signature">[`isArrowFunction( value )`][@stdlib/assert/is-arrow-function]</span><span class="delimiter">: </span><span class="description">test if a value is an `arrow function`.</span> - <span class="signature">[`isASCII( value )`][@stdlib/assert/is-ascii]</span><span class="delimiter">: </span><span class="description">test whether a character belongs to the ASCII character set and whether this is true for all characters in a provided string.</span> - <span class="signature">[`isBetween( value, a, b[, left, right] )`][@stdlib/assert/is-between]</span><span class="delimiter">: </span><span class="description">test if a value is between two values.</span> - <span class="signature">[`isBigInt( value )`][@stdlib/assert/is-bigint]</span><span class="delimiter">: </span><span class="description">test if a value is a BigInt.</span> - <span class="signature">[`isBinaryString( value )`][@stdlib/assert/is-binary-string]</span><span class="delimiter">: </span><span class="description">test if a value is a binary string.</span> - <span class="signature">[`isBlankString( value )`][@stdlib/assert/is-blank-string]</span><span class="delimiter">: </span><span class="description">test if a value is a blank string.</span> - <span class="signature">[`isBoxedPrimitive( value )`][@stdlib/assert/is-boxed-primitive]</span><span class="delimiter">: </span><span class="description">test if a value is a JavaScript boxed primitive.</span> - <span class="signature">[`isBuffer( value )`][@stdlib/assert/is-buffer]</span><span class="delimiter">: </span><span class="description">test if a value is a Buffer object.</span> - <span class="signature">[`isCamelcase( value )`][@stdlib/assert/is-camelcase]</span><span class="delimiter">: </span><span class="description">test if a value is a camelcase string.</span> - <span class="signature">[`isCapitalized( value )`][@stdlib/assert/is-capitalized]</span><span class="delimiter">: </span><span class="description">test if a value is a string having an uppercase first character.</span> - <span class="signature">[`isCircular( value )`][@stdlib/assert/is-circular]</span><span class="delimiter">: </span><span class="description">test if a value is a plain object containing a circular reference.</span> - <span class="signature">[`isCircular( value )`][@stdlib/assert/is-circular]</span><span class="delimiter">: </span><span class="description">test if an object-like value contains a circular reference.</span> - <span class="signature">[`isClass( value )`][@stdlib/assert/is-class]</span><span class="delimiter">: </span><span class="description">test if a value is a class.</span> - <span class="signature">[`isCollection( value )`][@stdlib/assert/is-collection]</span><span class="delimiter">: </span><span class="description">test if a value is a collection.</span> - <span class="signature">[`isComposite( value )`][@stdlib/assert/is-composite]</span><span class="delimiter">: </span><span class="description">test if a value is a composite number.</span> - <span class="signature">[`isConfigurablePropertyIn( value, property )`][@stdlib/assert/is-configurable-property-in]</span><span class="delimiter">: </span><span class="description">test if an object's own or inherited property is configurable.</span> - <span class="signature">[`isConfigurableProperty( value, property )`][@stdlib/assert/is-configurable-property]</span><span class="delimiter">: </span><span class="description">test if an object's own property is configurable.</span> - <span class="signature">[`isConstantcase( value )`][@stdlib/assert/is-constantcase]</span><span class="delimiter">: </span><span class="description">test if a value is a constantcase string.</span> - <s