U
    /e3                  
   @   s  d dl Zd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ ejgZzd dlZeejj W n ek
rz   Y nX zd dlZeej W n ek
r   Y nX ejdedd Zejdd	d
d	d
ddgejdddddgdd Zdd Zejdedgdfeddgddgfeddgeddgfgdd Zejddddgddgfeddgeddgfgdd ZdS )    N)Array)	assert_eqmeta_from_arrayget_syncasarrayc                 C   s,  t d}t|ddjdks tt jddd}| |}t|jdksHtt|jdksZttt|t|ksrtt|ddjd	kstt|d
djdkstt|ddjdkstt|tdjdkstt	d}t
t|t jsttddksttddks
ttt dt dks(td S )N   )ndim)r   )r         float32dtype)r   r   r   r
   )r   r      )r   r   r   r   Zfloat64)r   {   Zfoo)nparrayr   shapeAssertionErroronesr   typefloatda
isinstancendarray)r   x r   E/tmp/pip-unpacked-wheel-dbjnr7gq/dask/array/tests/test_array_utils.pytest_meta_from_array   s     

r   meta str    s   strr   boolintr   c                 C   sH   |d kr"t | |djjdksDtn"t | |djtjg |djksDtd S )Nr   ZSU)r   r   kindr   r   r   )r   r   r   r   r   test_meta_from_array_literal3   s    r&   c                  C   s   t tjdtjd} t| tjs"t| jdks0t| jtjks@ttj	dtj
dfidddtjtd} t| |  tjt
dtjtjdjtjkstd S )	Nr
   )r	   r   )r   r   r   )   r'   r   )namechunksr   r   r   r'   )r   )r   r   r   r   r   r   r	   r   r   r   r   r   r   Z
from_arrayZastypeZint32)r   r   r   r    test_meta_from_array_type_inputs>   s    
r*   za,br         ?r
   c              	   C   s(   t jtdd t| | W 5 Q R X d S )Nza and b have different dtypes)match)pytestZraisesr   r   )abr   r   r   test_assert_eq_checks_dtypeQ   s    	r0   )r+   r+   c                    s^   d  fdd}t | |  dks&tt | ||d tdd | |fD d } |ksZtd S )Nr   c                     s    d7  t | |S )Nr   r   )argskwargscounterr   r   custom_scheduleri   s    z2test_assert_eq_scheduler.<locals>.custom_scheduler)Z	schedulerc                 S   s   g | ]}t |tr|qS r   )r   r   ).0r   r   r   r   
<listcomp>t   s     
 z,test_assert_eq_scheduler.<locals>.<listcomp>r
   )r   r   len)r.   r/   r5   Zn_da_arraysr   r3   r   test_assert_eq_scheduler^   s    	
r9   )Znumpyr   r-   Z
dask.arrayr   r   Zdask.array.corer   Zdask.array.utilsr   r   Z
dask.localr   r   ZasarrayssparseappendZCOOZ
from_numpyImportErrorZcupymarkZparametrizer   r&   r*   r0   r9   r   r   r   r   <module>   sL   
	
