function createBenchmark( N ) {
	var outShape;
	var inShape;
	var x;
	var i;

	outShape = [];
	inShape = [];

	// Create an input shape such that half of the dimensions are one (and thus need to be broadcasted) and half of the dimensions are equal to the respective output shape dimensions...
	for ( i = 1; i < N+1; i++ ) {
		outShape.push( i );
		if ( isEven( i ) ) {
			inShape.push( i );
		} else {
			inShape.push( 1 );
		}
	}
	x = zerosnd( inShape );

	return benchmark;

	/**
	* Benchmark function.
	*
	* @private
	* @param {Benchmark} b - benchmark instance
	*/
	function benchmark( b ) {
		var out;
		var i;

		b.tic();
		for ( i = 0; i < b.iterations; i++ ) {
			out = broadcastArray( x, inShape, outShape );
			if ( typeof out !== 'object' ) {
				b.fail( 'should return an object' );
			}
		}
		b.toc();
		if (
			!isArray( out.data ) ||
			!isArray( out.ref ) ||
			!isArray( out.shape ) ||
			!isArray( out.strides )
		) {
			b.fail( 'should return an array' );
		}
		b.pass( 'benchmark finished' );
		b.end();
	}
}
Creates a benchmark function.

@private
@param {PositiveInteger} N - number of dimensions
@returns {Function} benchmark function