function createBenchmark( len, shape, xtype, ytype ) {
	var x;
	var y;

	x = filledarrayBy( len, xtype, discreteUniform( -100, 100 ) );
	y = filledarray( 0.0, len, ytype );
	x = {
		'dtype': xtype,
		'data': x,
		'shape': shape,
		'strides': shape2strides( shape, order ),
		'offset': 0,
		'order': order
	};
	y = {
		'dtype': ytype,
		'data': y,
		'shape': shape,
		'strides': shape2strides( shape, order ),
		'offset': 0,
		'order': order
	};
	return benchmark;

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

		b.tic();
		for ( i = 0; i < b.iterations; i++ ) {
			assign( x, y );
			if ( isnan( y.data[ i%len ] ) ) {
				b.fail( 'should not return NaN' );
			}
		}
		b.toc();
		if ( isnan( y.data[ i%len ] ) ) {
			b.fail( 'should not return NaN' );
		}
		b.pass( 'benchmark finished' );
		b.end();
	}
}
Creates a benchmark function.

@private
@param {PositiveInteger} len - ndarray length
@param {NonNegativeIntegerArray} shape - ndarray shape
@param {string} xtype - input ndarray data type
@param {string} ytype - output ndarray data type
@returns {Function} benchmark function