U
    /e                     @   s  d dl Zd dlZejjZd dlmZ d dl	m
Z
 d dlmZ edZdd Zdd Zejje
 d	d
ejdddddi fddddddifddddddifddddddifddddi fddddi fdddddd ifddddddifddddi fddddi fdddd i fdddd!d"d#ifdddd$d"d%ifdddd&d"difdddd'i fgd(d) Zejje
 d	d
ejd*eegejd+ddd ed,fd-dd ed,fdd-d ed,fddded,fddded,fdddedfd.d/d0ed1fd.d/d ed2fgd3d4 ZdS )5    N)
_numpy_120)	assert_eqcupyc                  C   s   t d} tj| ddd}t|jt jks.tt|| tt	|t 	|  | |  d } || d }t	|}t 	| }t|jt jkstt|| t|| t d
d}tj|ddd}t|jt jkstt|| tt	|t 	| d S )	N   )   FchunksZasarray   @   )   r   )r   r   )r   arangeda
from_arraytype_metandarrayAssertionErrorr   Zdiagreshape)vZdvdarrZcupyarrxZdx r   G/tmp/pip-unpacked-wheel-dbjnr7gq/dask/array/tests/test_cupy_creation.py	test_diag   s"    






r   c               	   C   s  t d} tt t|  W 5 Q R X t dd} tt tj| ddd W 5 Q R X ttj	 tj| dd W 5 Q R X ttj	 tj| dd W 5 Q R X t d	d
} tj
| ddd} tt| t|  ttj| ddtj| dd ttj| ddtj| dd tt|  t js:ttt tj| dd W 5 Q R X ttj| ddtj| dd ttj| dddtj| ddd t dd} tj
| ddd} tt| t|  ttj| ddddtj| dddd ttj| ddddtj| dddd ttj| ddddtj| dddd tt| dt| d tt| dt| d tt| dddt| ddd d S )Nr   r   )   r   r   )axis1axis2)r   )r   x   )r         r   Fr   
   )offseti   )r"   r   i  )r   r	   r   r   r    )r%   r%   r   )r%   r   r%   )r   r%   r   )r   r%   r	   )r"   r   r   )r   r   pytestZraises
ValueErrorr   Zdiagonalr   npZ	AxisErrorr   r   
isinstancecomputer   r   )r   r   r   r   test_diagonal#   sT    
"  r,   zNEP-35 is not available)reasonz&shape, chunks, pad_width, mode, kwargs)r!   )r	   r%   Zconstantr   Zconstant_valuesr$   r   r	   r$   r#   )r!   r   )r   r   ))r%   r   r.   )r/   r   r%   r	   ZedgeZlinear_rampZ
end_values)r/   )r   r	   ZreflectZ	symmetricwrapmaximumZstat_lengthr&   Zmean)r	   r   r0   Zminimumemptyc           	      C   s   t j| }tjt||d}t j|||f|}tj|||f|}t|jtj	sVt
t| tj	sjt
|dkrt|||  |||  dd nt||dd d S )N)r   r4   F)Z
check_type)r)   randomr   r   r   arraypadr*   r   r   r   r+   r   )	shaper   Z	pad_widthmodekwargsZnp_aZda_aZnp_rZda_rr   r   r   test_pad]   s    "  r;   xpzN, M, k, dtype, chunksautor   r    r   r#   r3   )r	   r=   c           	      C   sR   ||||g}t j| }| tkr(|| | j|dtt di}t|| d S )Nliker   )r   Ztrir   appendr   r6   r   )	r<   NMkZdtyper   argsZcp_aZxp_ar   r   r   test_tri_like   s    

rD   )Znumpyr)   r'   markZgpuZ
pytestmarkZ
dask.arrayr6   r   Zdask.array.numpy_compatr   Zdask.array.utilsr   Zimportorskipr   r   r,   ZskipifZparametrizer;   floatboolintrD   r   r   r   r   <module>   sl   
: 