U
    Cvfs                     @  s
  d dl mZ d dlZd dlZd dlZd dlZd dlm	Z	 zd dl
mZ W n ek
rd   dd ZY nX z$d dlZejddZd	d
 ZdZW n  ek
r   dd
 ZdZY nX ddddZejdejedddgedd dgddejejddgddejd dgddddejedddgfdddgfdedd dgfdd dgfdddfdddd Zejd!ejd"ejejd#dejed$ejje	 d%d&d'ejed(ejje d)d&d'fejd*d+gejd,dgd-d.gd/dejddgd-d0dejd-ddgd1dfddd2d3Zejd!ejd"ejejd#dejed$ejje	 d%d&d'ejed(ejje d)d&d'fejd*d+gejd dgd-d.gd/dejd d gd-d0dejd-d d gd1dfddd4d5Zejd6d7d8d9d:d;gddd<d=Z dS )>    )annotationsN)has_dask)
from_arrayc                 C  s   | S N xr   r   =/tmp/pip-unpacked-wheel-h316xyqg/xarray/tests/test_testing.py<lambda>       r
   T)Zforce_ndarray_likec                 C  s   t | dS )Nm)unit_registryZQuantityr   r   r   r	   quantity   s    r   c                 C  s   | S r   r   r   r   r   r	   r      s    FNone)returnc                  C  s*   t d} t d}t jj| |dd d S )Ng)\(?gRQ?g{Gz?)Zatol)xr	DataArraytestingassert_allclose)r   yr   r   r	   test_allclose_regression!   s    

r   z	obj1,obj2r   gFFg<      Variable)id)dimsr   r   gC]rB)ab   Datasetc              	   C  s(   t t tj| | W 5 Q R X d S r   )pytestraisesAssertionErrorr   r   r   )obj1obj2r   r   r	   test_assert_allclose'   s    r%   error	duckarraynumpyZdaskzrequires dask)reason)r   Zmarkspintzrequires pintr#   r$   g|=g        g       @zboth arrayszsecond scalarzfirst scalarc              	   C  s8   | |}| |}t t tj|| W 5 Q R X d S r   )r    r!   r"   r   r   assert_duckarray_equalr'   r#   r$   r   r   r   r   r	   #test_assert_duckarray_equal_failing>   s    r-   c                 C  s"   | |}| |}t j|| d S r   )r   r   r+   r,   r   r   r	   test_assert_duckarray_equal_   s    r.   funcZassert_equalZassert_identicalr   r+   Zassert_duckarray_allclosec              
   C  s  G dd dt j}|ddg}|ddg}tjddh}td tt tt j	| || W 5 Q R X t
|d	kszttt td
 W 5 Q R X W 5 Q R X tjddH}td tt tt j	| || W 5 Q R X t
|d	kstW 5 Q R X d S )Nc                      s,   e Zd Ze fddZ fddZ  ZS )z:test_ensure_warnings_not_elevated.<locals>.WarningVariablec                   s   t d t jS Nzwarning in test)warningswarnsuperr   self	__class__r   r	   r      s    
z?test_ensure_warnings_not_elevated.<locals>.WarningVariable.dimsc                   s   t d t  S r0   )r1   r2   r3   	__array__r4   r6   r   r	   r8      s    
zDtest_ensure_warnings_not_elevated.<locals>.WarningVariable.__array__)__name__
__module____qualname__propertyr   r8   __classcell__r   r   r6   r	   WarningVariable   s   r>   r   r   r   T)recordr&   r   testignore)r   r   r1   catch_warningsfilterwarningsr    r!   r"   getattrr   lenUserWarningr2   )r/   r>   r   r   wr   r   r	   !test_ensure_warnings_not_elevated   s    


rH   )!
__future__r   r1   r(   npr    Zxarrayr   Zxarray.testsr   Z
dask.arrayr   Zdask_from_arrayImportErrorr*   ZUnitRegistryr   r   Zhas_pintr   markZparametrizeparamr   r   r   r%   rC   arrayZskipifr-   r.   rH   r   r   r   r	   <module>   s   
  


