U
    Cvfy                  	   @  s6  d dl mZ d dlZd dlZd dlZd dlmZ ejdddZ	e
 ( ed d dlmZ d dlmZ W 5 Q R X ejd	d
ddZd	ddddZd	ddddZdd
ddZdd
ddZd	ddddZd	ddddZd	ddddZd	ddddZd	dddd Zd	ddd!d"Zdd
d#d$ZdS )%    )annotationsN)assert_equalZnumpyz1.22)Z
minversionignore)Arrayz!tuple[xr.DataArray, xr.DataArray])returnc                  C  sx   t jtdddgddtjggdddd	gid
} t jtdddgddtjggdddd	gid
}t|jt	spt
| |fS )N      ?       @g      @g      @g      @xyr
   
      )dimsZcoords)xr	DataArraynparraynanxpasarray
isinstancedatar   AssertionError)np_arrxp_arr r   ?/tmp/pip-unpacked-wheel-h316xyqg/xarray/tests/test_array_api.pyarrays   s    

r   None)r   r   c                 C  s6   | \}}|d }|d }t |jts(tt|| d S )N   r   r   r   r   r   r   r   r   expectedactualr   r   r   test_arithmetic"   s
    r$   c                 C  s6   | \}}|  }|  }t|jts(tt|| d S Nsumr   r   r   r   r   r!   r   r   r   test_aggregation*   s
    r(   c                 C  s>   | \}}|j dd}|j dd}t|jts0tt|| d S )NF)Zskipnar&   r!   r   r   r   test_aggregation_skipna2   s
    r)   c                 C  sN   | \}}| tj}| tj}|jtjks0tt|jts@tt|| d S r%   )	Zastyper   Zint64Zdtyper   r   r   r   r   r!   r   r   r   test_astype:   s    r*   c           	      C  s   | \}}t jtddgdd}t jtddgdd}t ||}t ||}t|t|ksdtt	||D ]"\}}t
|jtstt|| qnd S )Nr   r   r
   r   )r   r   r   r   r   r   	broadcastlenr   zipr   r   r   r   )	r   r   r   Znp_arr2Zxp_arr2r"   r#   aer   r   r   test_broadcastC   s    r1   c                 C  sJ   | \}}t j||fdd}t j||fdd}t|jts<tt|| d S )Nr
   )Zdim)r   concatr   r   r   r   r   r!   r   r   r   test_concatP   s
    r3   c                 C  sF   | \}}|d d df }|d d df }t |jts8tt|| d S )Nr   r    r!   r   r   r   test_indexingX   s
    r4   c                 C  s0   | \}}|j |jj kst|j |jj ks,td S r%   )nbytesr   r   )r   r   r   r   r   r   test_properties`   s    r6   c                 C  s6   | \}}|  }|  }t|jts(tt|| d S r%   )Z	transposer   r   r   r   r   r!   r   r   r   test_reorganizing_operationf   s
    r7   c                 C  s>   | \}}|j dd}|j dd}t|jts0tt|| d S )Nr	   )z)stackr   r   r   r   r   r!   r   r   r   
test_stackn   s
    r:   c                  C  sj   t jtddgdd} t jtddgdd}t | dd}t |dd}t|jt	s\t
t|| d S )N   r   r
   r+   )r   r   r   r   r   r   wherer   r   r   r   r   )r   r   r"   r#   r   r   r   
test_wherev   s    r=   )
__future__r   warningsZpytestZxarrayr   Zxarray.testingr   Zimportorskipr   catch_warningssimplefilterZnumpy.array_apiZ	array_apir   Znumpy.array_api._array_objectr   Zfixturer   r$   r(   r)   r*   r1   r3   r4   r6   r7   r:   r=   r   r   r   r   <module>   s,   

	