U
    /e                     @   s   d dl Zd dlZd dlmZ ejjZd dl	m
Z d dlmZmZ edZeejZdd Zdd Zd	d
 Zdd Zdd Zejjeedk dddd Zejjeedk dddd ZdS )    N)parse)	assert_eq	same_keyscupyc                  C   s  t dd} tj| ddd}tj|ddd}|jd	ksBtt	
d
dddddddddg
ddddddddddg
ddddddddddg
d d!d"d#d$d#d$d%d&d'g
d(d)d*d+d,d+d,d-d.d/g
d0d1d2d3d4d3d4d5d6d7g
ddddddddddg
d d!d"d#d$d#d$d%d&d'g
d(d)d*d+d,d+d,d-d.d/g
d0d1d2d3d4d3d4d5d6d7g
d8d9d:d;d<d;d<d=d>d?g
d@dAdBdCdDdCdDdEdFdGg
g}t||ddH ttj|ddd|std S )IN@      r      r
   FchunksZasarray      r   r   ))   r      r   r      r
   r   r      r   	   
                                                                      !   "   #   $   %   &   '   (   )   *   +   ,   -   .   /   0   1   2   3   4   5   6   7   8   9   :   ;   <   =   >   ?   Z
check_type)r   arangereshapeda
from_arrayoverlapZoverlap_internalr   AssertionErrornparrayr   r   )xdgexpected rY   F/tmp/pip-unpacked-wheel-dbjnr7gq/dask/array/tests/test_cupy_overlap.pytest_overlap_internal   s*    r[   c                  C   sD   t d} tj| ddd}tjj|ddddd	}|jd
ks@td S )N)r4   rH   )r   r   Fr   r   r   r   reflect)Zaxesboundary))r   r   r   r   )r   r   r   r   r   r   )r   onesrO   rP   rQ   Ztrim_internalr   rR   rU   rV   erY   rY   rZ   test_trim_internal*   s    
ra   c                  C   s   t dd} tj| ddd}tjj|ddd}|jd |jd d	 ksNt|jd
 |jd
 ksftt	|d
d d f |dd d f  t	|dd d f |dd d f  d S )Nr   r   r	   Fr   r   r   axisdepthr
   r   )
r   rM   rN   rO   rP   rQ   periodicshaperR   r   r_   rY   rY   rZ   test_periodic2   s    "ri   c                  C   s   t d} tj| ddd}tjj|ddd}tdddddd	d
dddddddg}t||dd tjj|ddd}tddddd	d
ddddddg}t||dd d S Nr   r   Fr   r   r   rb   r   r   r
   r   r   r   r   r   rL   )	r   rM   rO   rP   rQ   r\   rS   rT   r   rU   rV   r`   rX   rY   rY   rZ   test_reflect>   s    
&"rl   c                  C   s   t d} tj| ddd}tjj|ddd}tdddddd	d
dddddddg}t||dd tjj|ddd}tddddd	d
ddddddg}t||dd d S rj   )	r   rM   rO   rP   rQ   ZnearestrS   rT   r   rk   rY   rY   rZ   test_nearestK   s    
&"rm   z6.4.0zBRequires CuPy 6.4.0+ (with https://github.com/cupy/cupy/pull/2418))reasonc                  C   s   t dd} tj| ddd}tjj|dddd	}|jd |jd d
 ksPt|jd |jd kshtt	|dd d f t
jd| jdd dd t	|dd d f t
jd| jdd dd d S )Nr   r   r	   Fr   r   r   r   )rc   rd   valuer
   r   r   )dtyperL   re   )r   rM   rN   rO   rP   rQ   Zconstantrh   rR   r   rS   r^   rp   r_   rY   rY   rZ   test_constantX   s    *rq   c                  C   s`  t dd} tj| ddd}tj|dddd	d
d}td	d	d	d	d	d	d	d	d	d	g
d	d	d	d	d	d	d	d	d	d	g
dd	dddddddd	g
ddddddddddg
ddddddddddg
d d!d"d#d$d%d&d'd d!g
d(d)d*d+d,d-d.d/d(d)g
d0d1d2d3d4d5d6d7d0d1g
d8d9d:d;d<d=d>d?d8d9g
d@dAdBdCdDdEdFdGd@dAg
d	d	d	d	d	d	d	d	d	d	g
d	d	d	d	d	d	d	d	d	d	g
g}t	||ddH d S )INr   r   r	   Fr   r   r   r   r   rg   r   r   r
   r   r   r   r   r   r   r   r   r   r   r#   r   r   r   r   r    r!   r"   r+   r$   r%   r&   r'   r(   r)   r*   r3   r,   r-   r.   r/   r0   r1   r2   r;   r4   r5   r6   r7   r8   r9   r:   rC   r<   r=   r>   r?   r@   rA   rB   rK   rD   rE   rF   rG   rH   rI   rJ   rL   )
r   rM   rN   rO   rP   rQ   Z
boundariesrS   rT   r   rk   rY   rY   rZ   test_boundariesh   s&    rr   )ZnumpyrS   ZpytestZpackaging.versionr   parse_versionmarkZgpuZ
pytestmarkZ
dask.arrayrT   rO   Zdask.array.utilsr   r   Zimportorskipr   __version__Zcupy_versionr[   ra   ri   rl   rm   Zskipifrq   rr   rY   rY   rY   rZ   <module>   s,   




