'use strict';

// MODULES //

var isEmptyArray = require( '@stdlib/utils/is-empty-array' );
var isArray = require( '@stdlib/utils/is-array' );
var isNumberArray = require( '@stdlib/utils/is-number' ).isPrimitiveNumberArray;
var isTypedArray = require( '@stdlib/utils/is-typed-array' );


/**
* Validates `y`.
*
* @private
* @param {*} y - value to test
* @returns {(Error|null)} error object or null
*/
function test( y ) {
	var i;
	if (
		!isEmptyArray( y ) &&
		!isArray( y )
	) {
		return new TypeError( 'invalid value. `y` must be either an empty array or an array of numeric arrays. Value: `' + y + '.`' );
	}
	if ( !isEmptyArray( y ) ) {
		for ( i = 0; i < y; i++ ) {
			if (
				!isTypedArray( y[i] ) &&
				!isNumberArray( y[i] )
			) {
				return new TypeError( 'invalid value. `y` must be either an empty array or an array of numeric arrays. Value: `' + y + '.`' );
			}
		}
	}
	return null;
} // end FUNCTION test()


// EXPORTS //

module.exports = test;

'use strict';

// MODULES //

var isEmptyArray = require( '@stdlib/utils/is-empty-array' );
var isArray = require( '@stdlib/utils/is-array' );
var isNumberArray = require( '@stdlib/utils/is-number' ).isPrimitiveNumberArray;
var isTypedArray = require( '@stdlib/utils/is-typed-array' );


/**
* Validates `y`.
*
* @private
* @param {*} y - value to test
* @returns {(Error|null)} error object or null
*/
function test( y ) {
	var i;
	if (
		!isEmptyArray( y ) &&
		!isArray( y )
	) {
		return new TypeError( 'invalid value. `y` must be either an empty array or an array of numeric arrays. Value: `' + y + '.`' );
	}
	if ( !isEmptyArray( y ) ) {
		for ( i = 0; i < y.length; i++ ) {
			if (
				!isTypedArray( y[i] ) &&
				!isNumberArray( y[i] )
			) {
				return new TypeError( 'invalid value. `y` must be either an empty array or an array of numeric arrays. Value: `' + y + '.`' );
			}
		}
	}
	return null;
} // end FUNCTION test()


// EXPORTS //

module.exports = test;

Fix loop condition