Assertion utilities.
var assert = require( '@stdlib/assert' );
Namespace providing utilities for data type testing and feature detection.
var o = assert;
// returns {...}
To validate the built-in JavaScript data types, the namespace includes the following assertion utilities:
For primitive types having corresponding object wrappers, assertion utilities provide isObject and isPrimitive methods to test for either objects or primitives, respectively.
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:
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.
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":
The namespace provides utilities for validating typed arrays:
The namespace includes utilities for validating ndarrays (n-dimensional arrays).
The namespace includes utilities for validating complex numbers and arrays of complex numbers:
The namespace includes utilities for validating other special arrays or buffers:
- isAccessorArray( value ): test if a value is an array-like object supporting the accessor (get/set) protocol.
- isAlmostEqualArray( v1, v2, maxULP ): test if two arguments are both generic arrays and contain respective elements which are approximately equal within a specified number of ULPs (units in the last place).
- isAlmostEqualComplex128array( v1, v2, maxULP ): test if two arguments are both Complex128Arrays and contain respective elements which are approximately equal within a specified number of ULPs (units in the last place).
- isAlmostEqualComplex64array( v1, v2, maxULP ): test if two arguments are both Complex64Arrays and contain respective elements which are approximately equal within a specified number of ULPs (units in the last place).
- isAlmostEqualFloat32array( v1, v2, maxULP ): test if two arguments are both Float32Arrays and contain respective elements which are approximately equal within a specified number of ULPs (units in the last place).
- isAlmostEqualFloat64Array( v1, v2, maxULP ): test if two arguments are both Float64Arrays and contain respective elements which are approximately equal within a specified number of ULPs (units in the last place).
- isAlmostSameArray( v1, v2, maxULP ): test if two arguments are both generic arrays and contain respective elements which are approximately the same value within a specified number of ULPs (units in the last place).
- isAlmostSameComplex128Array( v1, v2, maxULP ): test if two arguments are both Complex128Arrays and contain respective elements which are approximately the same value within a specified number of ULPs (units in the last place).
- isAlmostSameComplex64Array( v1, v2, maxULP ): test if two arguments are both Complex64Arrays and contain respective elements which are approximately the same value within a specified number of ULPs (units in the last place).
- isAlmostSameFloat32Array( v1, v2, maxULP ): test if two arguments are both Float32Arrays and contain respective elements which are approximately the same value within a specified number of ULPs (units in the last place).
- isAlmostSameFloat64Array( v1, v2, maxULP ): test if two arguments are both Float64Arrays and contain respective elements which are approximately the same value within a specified number of ULPs (units in the last place).
- isArrayLength( value ): test if a value is a valid array length.
- isArrayLikeObject( value ): test if a value is an array-like object.
- isArrayLike( value ): test if a value is array-like.
- isArrayBufferView( value ): test if a value is an ArrayBuffer view.
- isArrayBuffer( value ): test if a value is an ArrayBuffer.
- isBetweenArray( value, a, b[, left, right] ): test if a value is an array-like object where every element is between two values.
- isBigInt64Array( value ): test if a value is a BigInt64Array.
- isBigUint64Array( value ): test if a value is a BigUint64Array.
- isCircularArray( value ): test if a value is an array containing a circular reference.
- isEmptyArrayLikeObject( value ): test if a value is an empty array-like object.
- isEmptyArray( value ): test if a value is an empty array.
- isEqualArray( v1, v2 ): test if two arguments are both generic arrays and have equal values.
- isEqualBooleanArray( v1, v2 ): test if two arguments are both BooleanArrays and have equal values.
- isEqualInt16Array( v1, v2 ): test if two arguments are both Int16Arrays and have equal values.
- isEqualInt32Array( v1, v2 ): test if two arguments are both Int32Arrays and have equal values.
- isEqualInt8Array( v1, v2 ): test if two arguments are both Int8Arrays and have equal values.
- isEqualUint16Array( v1, v2 ): test if two arguments are both Uint16Arrays and have equal values.
- isEqualUint32Array( v1, v2 ): test if two arguments are both Uint32Arrays and have equal values.
- isEqualUint8Array( v1, v2 ): test if two arguments are both Uint8Arrays and have equal values.
- isEqualUint8ClampedArray( v1, v2 ): test if two arguments are both Uint8ClampedArrays and have equal values.
- isFalsyArray( value ): test if a value is an array-like object containing only falsy values.
- isFiniteArray( value ): test if a value is an array-like object containing only finite numbers.
- isFloat16Array( value ): test if a value is a Float16Array.
- isNumericArray( value ): test if a value is a numeric array.
- isPlainObjectArray( value ): test if a value is an array-like object containing only plain objects.
- isProbabilityArray( value ): test if a value is an array-like object containing only probabilities.
- isRaggedNestedArray( value ): test if a value is a ragged nested array.
- isSameAccessorArray( v1, v2 ): test if two arguments are both accessor arrays and have the same values.
- isSameArrayLikeObject( v1, v2 ): test if two arguments are both array-like objects and have the same values.
- isSameArrayLike( v1, v2 ): test if two arguments are both array-like and have the same values.
- isSameArray( v1, v2 ): test if two arguments are both generic arrays and have the same values.
- isSameComplex128Array( v1, v2 ): test if two arguments are both Complex128Arrays and have the same values.
- isSameComplex64Array( v1, v2 ): test if two arguments are both Complex64Arrays and have the same values.
- isSameFloat32Array( v1, v2 ): test if two arguments are both Float32Arrays and have the same values.
- isSameFloat64Array( v1, v2 ): test if two arguments are both Float64Arrays and have the same values.
- isSameTypedArrayLike( v1, v2 ): test if two arguments are both typed-array-like objects and have the same values.
- isSharedArrayBuffer( value ): test if a value is a SharedArrayBuffer.
- isTruthyArray( value ): test if a value is an array-like object containing only truthy values.
- isTypedArrayLength( value ): test if a value is a valid typed array length.
- isTypedArrayLike( value ): test if a value is typed-array-like.
- isTypedArray( value ): test if a value is a built-in typed array.
- isUint64Array( value ): test if a value is a Uint64Array.
- isUnityProbabilityArray( value ): test if a value is an array of probabilities that sum to one.
To test for error objects, the namespace includes the following utilities:
The namespace exposes the following constants concerning the current running process:
- IS_BIG_ENDIAN: check if an environment is big endian.
- IS_BROWSER: check if the runtime is a web browser.
- IS_DARWIN: boolean indicating if the current process is running on Darwin.
- IS_DOCKER: check if the process is running in a Docker container.
- IS_ELECTRON_MAIN: check if the runtime is the main Electron process.
- IS_ELECTRON_RENDERER: check if the runtime is the Electron renderer process.
- IS_ELECTRON: check if the runtime is Electron.
- IS_LITTLE_ENDIAN: check if an environment is little endian.
- IS_MOBILE: check if the current environment is a mobile device.
- IS_NODE: check if the runtime is Node.js.
- IS_TOUCH_DEVICE: check if the current environment is a touch device.
- IS_WEB_WORKER: check if the runtime is a web worker.
- IS_WINDOWS: boolean indicating if the current process is running on Windows.
To test whether a runtime environment supports certain features, the namespace includes the following utilities:
The remaining namespace utilities are as follows:
- contains( value, searchValue[, position] ): test if an array-like value contains a search value.
- deepEqual( a, b ): test for deep equality between two values.
- deepHasOwnProp( value, path[, options] ): test whether an object contains a nested key path.
- deepHasProp( value, path[, options] ): test whether an object contains a nested key path, either own or inherited.
- hasOwnProp( value, property ): test if an object has a specified property.
- hasProp( value, property ): test if an object has a specified property, either own or inherited.
- hasUTF16SurrogatePairAt( string, position ): test if a position in a string marks the start of a UTF-16 surrogate pair.
- instanceOf( value, constructor ): test whether a value has in its prototype chain a specified constructor as a prototype property.
- isAbsoluteHttpURI( value ): test whether a value is an absolute HTTP(S) URI.
- isAbsolutePath( value ): test if a value is an absolute path.
- isAbsoluteURI( value ): test whether a value is an absolute URI.
- isAccessorPropertyIn( value, property ): test if an object's own or inherited property has an accessor descriptor.
- isAccessorProperty( value, property ): test if an object's own property has an accessor descriptor.
- isAlmostEqual( a, b, maxULP ): test if two arguments are approximately equal within a specified number of ULPs (units in the last place).
- isAlmostSameValue( a, b, maxULP ): test if two arguments are approximately the same value within a specified number of ULPs (units in the last place).
- isAlphagram( value ): test if a value is an alphagram.
- isAlphaNumeric( value ): test whether a string contains only alphanumeric characters.
- isAnagram( str, value ): test if a value is an anagram.
- isArguments( value ): test if a value is an arguments object.
- isArrowFunction( value ): test if a value is an arrow function.
- isASCII( value ): test whether a character belongs to the ASCII character set and whether this is true for all characters in a provided string.
- isBetween( value, a, b[, left, right] ): test if a value is between two values.
- isBigInt( value ): test if a value is a BigInt.
- isBinaryString( value ): test if a value is a binary string.
- isBlankString( value ): test if a value is a blank string.
- isBoxedPrimitive( value ): test if a value is a JavaScript boxed primitive.
- isBuffer( value ): test if a value is a Buffer object.
- isCamelcase( value ): test if a value is a camelcase string.
- isCapitalized( value ): test if a value is a string having an uppercase first character.
- isCircular( value ): test if a value is a plain object containing a circular reference.
- isCircular( value ): test if an object-like value contains a circular reference.
- isClass( value ): test if a value is a class.
- isCollection( value ): test if a value is a collection.
- isComposite( value ): test if a value is a composite number.
- isConfigurablePropertyIn( value, property ): test if an object's own or inherited property is configurable.
- isConfigurableProperty( value, property ): test if an object's own property is configurable.
- isConstantcase( value ): test if a value is a constantcase string.
- isCurrentYear( value ): test if a value is the current year.
- isDataPropertyIn( value, property ): test if an object's own or inherited property has a data descriptor.
- isDataProperty( value, property ): test if an object's own property has a data descriptor.
- isDataView( value ): test if a value is a DataView.
- isDigitString( value ): test whether a string contains only numeric digits.
- isDomainName( value ): test if a value is a domain name.
- isDurationString( value ): test if a value is a duration string.
- isEmailAddress( value ): test if a value is an email address.
- isEmptyCollection( value ): test if a value is an empty collection.
- isEmptyObject( value ): test if a value is an empty object.
- isEmptyString( value ): test if a value is an empty string.
- isEnumerablePropertyIn( value, property ): test if an object's own or inherited property is enumerable.
- isEnumerableProperty( value, property ): test if an object's own property is enumerable.
- isEqualDateObject( d1, d2 ): test if two values are Date objects corresponding to the same date and time.
- isEven( value ): test if a value is an even number.
- isFalsy( value ): test if a value is falsy.
- isFinite( value ): test if a value is a finite number.
- isGeneratorObjectLike( value ): test if a value is generator object-like.
- isGeneratorObject( value ): test if a value is a generator object.
- isgzipBuffer( value ): test if a value is a gzip buffer.
- isHexString( value ): test whether a string contains only hexadecimal digits.
- isInfinite( value ): test if a value is an infinite number.
- isInheritedProperty( value, property ): test if an object has an inherited property.
- isInt64( value ): test if a value is a 64-bit signed integer.
- isIterableLike( value ): test if a value is iterable-like.
- isIteratorLike( value ): test if a value is iterator-like.
- isJSON( value ): test if a value is a parseable JSON string.
- isKebabcase( value ): test if a value is a string in kebab case.
- isLeapYear( [value] ): test if a value corresponds to a leap year in the Gregorian calendar.
- isLocalhost( value ): test whether a value is a localhost hostname.
- isLowercase( value ): test if a value is a lowercase string.
- isMethodIn( value, property ): test if an object has a specified method name, either own or inherited.
- isMethod( value, property ): test if an object has a specified method name.
- isMultiSlice( value ): test if a value is a MultiSlice.
- isNamedTypedTupleLike( value ): test if a value is named typed tuple-like.
- isNativeFunction( value ): test if a value is a native function.
- isNegativeFinite( value ): test if a value is a number having a finite negative value.
- isNegativeZero( value ): test if a value is a number equal to negative zero.
- isNodeBuiltin( value ): test whether a string matches a Node.js built-in module name.
- isNodeDuplexStreamLike( value ): test if a value is Node duplex stream-like.
- isNodeReadableStreamLike( value ): test if a value is Node readable stream-like.
- isNodeREPL(): check if running in a Node.js REPL environment.
- isNodeStreamLike( value ): test if a value is Node stream-like.
- isNodeTransformStreamLike( value ): test if a value is Node transform stream-like.
- isNodeWritableStreamLike( value ): test if a value is Node writable stream-like.
- isNonConfigurablePropertyIn( value, property ): test if an object's own or inherited property is non-configurable.
- isNonConfigurableProperty( value, property ): test if an object's own property is non-configurable.
- isNonEnumerablePropertyIn( value, property ): test if an object's own or inherited property is non-enumerable.
- isNonEnumerableProperty( value, property ): test if an object's own property is non-enumerable.
- isNonNegativeFinite( value ): test if a value is a number having a nonnegative finite value.
- isNonPositiveFinite( value ): test if a value is a number having a nonpositive finite value.
- isObjectLike( value ): test if a value is object-like.
- isOdd( value ): test if a value is an odd number.
- isPascalcase( value ): test if a value is a string in Pascal case.
- isPlainObject( value ): test if a value is a plain object.
- isPositiveFinite( value ): test if a value is a number having a finite positive value.
- isPositiveZero( value ): test if a value is a number equal to positive zero.
- isPrime( value ): test if a value is a prime number.
- isPrimitive( value ): test if a value is a JavaScript primitive.
- isPRNGLike( value ): test if a value is PRNG-like.
- isProbability( value ): test if a value is a probability.
- isPropertyKey( value ): test whether a value is a property key.
- isPrototypeOf( obj, prototype ): test if an object's prototype chain contains a provided prototype.
- isReadOnlyPropertyIn( value, property ): test if an object's own or inherited property is read-only.
- isReadOnlyProperty( value, property ): test if an object's own property is read-only.
- isReadWritePropertyIn( value, property ): test if an object's own or inherited property is readable and writable.
- isReadWriteProperty( value, property ): test if an object's own property is readable and writable.
- isReadablePropertyIn( value, property ): test if an object's own or inherited property is readable.
- isReadableProperty( value, property ): test if an object's own property is readable.
- isRegExpString( value ): test if a value is a regular expression string.
- isRelativePath( value ): test if a value is a relative path.
- isRelativeURI( value ): test whether a value is a relative URI.
- isSameComplex128( v1, v2 ): test if two arguments are both double-precision complex floating-point numbers and have the same value.
- isSameComplex64( v1, v2 ): test if two arguments are both single-precision complex floating-point numbers and have the same value.
- isSameNativeClass( a, b ): test if two arguments have the same native class.
- isSameType( a, b ): test if two arguments have the same type.
- isSameValueZero( a, b ): test if two arguments are the same value.
- isSameValue( a, b ): test if two arguments are the same value.
- isSemVer( value ): test if a value is a semantic version string.
- isSlice( value ): test if a value is a Slice.
- isSnakecase( value ): test if a value is a string in snake case.
- isStartcase( value ): test if a value is a startcase string.
- isStrictEqual( a, b ): test if two arguments are strictly equal.
- isStructConstructorLike( value ): test if a value is struct constructor-like.
- isStruct( value ): test if a value is a struct instance.
- isTruthy( value ): test if a value is truthy.
- isUint64( value ): test if a value is an unsigned 64-bit integer.
- isUNCPath( value ): test if a value is a UNC path.
- isUndefinedOrNull( value ): test if a value is undefined or null.
- isUppercase( value ): test if a value is an uppercase string.
- isURI( value ): test if a value is a URI.
- isWebAssemblyMemory( value ): test if a value is a WebAssembly memory instance.
- isWellFormedString( str ): test if a string is well-formed.
- isWhitespace( value ): test whether a string contains only white space characters.
- isWritablePropertyIn( value, property ): test if an object's own or inherited property is writable.
- isWritableProperty( value, property ): test if an object's own property is writable.
- isWriteOnlyPropertyIn( value, property ): test if an object's own or inherited property is write-only.
- isWriteOnlyProperty( value, property ): test if an object's own property is write-only.
- tools: assertion utility tools.
var objectKeys = require( '@stdlib/utils/keys' );
var assert = require( '@stdlib/assert' );
console.log( objectKeys( assert ) );