U
    /e+	                  	   @   s  d dl Z d dlZd dlZejjZd dlZd dlm	Z
 d dlmZ d dlmZ edZejje ddejddge
jejfe
jejfe
jejfe
jejfgd	d
 Zejje ddejddge
jejfe
jejfgdd Zejdejejgdd ZdS )    N)
_numpy_120)	assert_eqcupyzNEP-35 is not available)reasondfuncfuncc              	      sf  t jd}tj|dd t || t d||d t d||d t d||d tjjddZ t || t d||d t d||d t d||d W 5 Q R X t	t
 fdd	 t	t fd
d	 t d}tj|dd}t||| t|d||d t|ddd||d d S )N
   r	   r	            chunksr         )Zsplit_everyc                      s
    dS )Nr    r   ar   r   I/tmp/pip-unpacked-wheel-dbjnr7gq/dask/array/tests/test_cupy_reductions.py<lambda>(       z%test_arg_reductions.<locals>.<lambda>c                      s
    dS )N)r   r   r   r   r   r   r   r   )   r   r	   r   )r   randomda
from_arrayr   daskconfigsetpytestraises
ValueError	TypeErrorZarange)r   r   xZx2Za2r   r   r   test_arg_reductions   s$     
r#   c              
   C   s   t jd}t j|d< tj|dd}t| ||| t| |d||d t  tdt	 t
t | |d  W 5 Q R X t
t | |d  W 5 Q R X t j|d d < tj|dd}t
t | |  W 5 Q R X W 5 Q R X d S )	Nr   r   r
   r   r   ignorer   r   )r   r   nanr   r   r   warningscatch_warningssimplefilterRuntimeWarningr   r   r    Zcompute)r   r   r"   r   r   r   r   test_nanarg_reductions2   s    

r*   c                 C   s:   t d}tj|dd}| |dd}t|| |dd d S )N)r	   r	   )r   r   r   r   )Zaxis)r   Zonesr   r   r   )r   r   bresultr   r   r   test_cumreduction_with_cupyK   s    
r-   )r&   Znumpynpr   markZgpuZ
pytestmarkr   Z
dask.arrayarrayr   Zdask.array.numpy_compatr   Zdask.array.utilsr   Zimportorskipr   ZskipifZparametrizeZargminZargmaxZ	nanargminZ	nanargmaxr#   r*   ZcumsumZcumprodr-   r   r   r   r   <module>   s4   




	 