
    ds                       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	 	 d dl
mZ n# e$ r d ZY nw xY w	 d dlZ ej        d          Zd ZdZn# e$ r d	 Zd
ZY nw xY wd3dZej                            d ej         ej        dddg           ej        dd dg          d           ej         ej        ddgd           ej        d dgd          d           ej         ej        dddgfdddgfd           ej        dd dgfdd dgfd          d          f          d3d            Zej                            d          ej                            d ej        ej        d           ej        ed ej                            e	 d!"          #           ej        ed$ej                            e d%"          #          f          ej                            d&d'g ej        d(dgd)d*gd+           ej        ddgd)d,           ej        d)ddgd-          f          d3d.                                    Zej                            d          ej                            d ej        ej        d           ej        ed ej                            e	 d!"          #           ej        ed$ej                            e d%"          #          f          ej                            d&d'g ej        d dgd)d*gd+           ej        d d gd)d,           ej        d)d d gd-          f          d3d/                                    Zej                            d0g d1          d3d2            Z dS )4    )annotationsN)has_dask)
from_arrayc                    | S N xs    9lib/python3.11/site-packages/xarray/tests/test_testing.py<lambda>r      s         T)force_ndarray_likec                8    t                               | d          S )Nm)unit_registryQuantityr	   s    r   quantityr      s    %%a---r   c                    | S r   r   r	   s    r   r   r      s    r   FreturnNonec                     t          j        d          } t          j        d          }t           j                            | |d           d S )Ng)\(?gRQ?g{Gz?)atol)xr	DataArraytestingassert_allclose)r
   ys     r   test_allclose_regressionr   !   sC    
TA
TAJq!$/////r   z	obj1,obj2r
   gFFg<      Variable)id)dimsr   r   gC]rB)ab   Datasetc                    t          j        t                    5  t          j                            | |           d d d            d S # 1 swxY w Y   d S r   )pytestraisesAssertionErrorr   r   r   )obj1obj2s     r   test_assert_allcloser.   '   s    & 
~	&	& / /

""4.../ / / / / / / / / / / / / / / / / /s   !AAAerror	duckarraynumpydaskzrequires dask)reason)r"   markspintzrequires pintr,   r-   g|=g        g       @zboth arrayszsecond scalarzfirst scalarc                     | |          } | |          }t          j        t                    5  t          j                            ||           d d d            d S # 1 swxY w Y   d S r   )r)   r*   r+   r   r   assert_duckarray_equalr0   r,   r-   r$   r%   s        r   #test_assert_duckarray_equal_failingr9   >   s    6 		$A	$A	~	&	& 0 0

))!Q///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   !AA"%A"c                r     | |          } | |          }t           j                            ||           d S r   )r   r   r7   r8   s        r   test_assert_duckarray_equalr;   _   s<    : 		$A	$AJ%%a+++++r   func)assert_equalassert_identicalr   r7   assert_duckarray_allclosec                    G d dt           j                  } |ddg          } |ddg          }t          j        d          5 }t          j        d           t          j        t                    5   t          t           j	        |           ||           d d d            n# 1 swxY w Y   t          |          d	k    sJ t          j        t                    5  t          j        d
           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        d          5 }t          j        d           t          j        t                    5   t          t           j	        |           ||           d d d            n# 1 swxY w Y   t          |          d	k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nc                  8     e Zd Ze fd            Z fdZ xZS ):test_ensure_warnings_not_elevated.<locals>.WarningVariablec                R    t          j        d           t                      j        S Nzwarning in test)warningswarnsuperr#   self	__class__s    r   r#   z?test_ensure_warnings_not_elevated.<locals>.WarningVariable.dims   s     M+,,,77<r   c                l    t          j        d           t                                                      S rD   )rE   rF   rG   	__array__rH   s    r   rL   zDtest_ensure_warnings_not_elevated.<locals>.WarningVariable.__array__   s*    M+,,,77$$&&&r   )__name__
__module____qualname__propertyr#   rL   __classcell__)rJ   s   @r   WarningVariablerB      s[        		  	  	  	  
	 	' 	' 	' 	' 	' 	' 	' 	' 	'r   rR   r
   r&   r   T)recordr/   r   testignore)r   r!   rE   catch_warningsfilterwarningsr)   r*   r+   getattrr   lenUserWarningrF   )r<   rR   r$   r%   ws        r   !test_ensure_warnings_not_elevatedr\      s    ' ' ' ' '"+ ' ' ' 	aS!!AaS!!A		 	-	-	- 
"(((]>** 	, 	,%GBJ%%a+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 1vvzzzz ];'' 	" 	"M&!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"
" 
" 
" 
" 
" 
" 
" 
" 
" 
" 
" 
" 
" 
" 
" 
	 	-	-	- )))]>** 	, 	,%GBJ%%a+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 1vv{{{{{                 s   .D6%B'D'B+	+D.B+	/1D D5DD	DD		DDD8.G&%FGF	GF	GG	G	)r   r   )!
__future__r   rE   r1   npr)   xarrayr   xarray.testsr   
dask.arrayr   dask_from_arrayImportErrorr5   UnitRegistryr   r   has_pintr   markparametrizeparamr!   r   r'   r.   rW   arrayskipifr9   r;   r\   r   r   r   <module>rk      s^   " " " " " "           ! ! ! ! ! !"8888888 " " "!kOOO"KKK%D%>>>M. . . HH      HHH0 0 0 0 BKeQZ((+"+cAq6*B*Bz	
 	
 	
 	BL%#...BL!Qc***	
 	
 	

 	BJcE1:.cFA;5GHHIIBJcAq6]#1v??@@	
 	
 	
 $/ / /% $/
 G$$RX'***+$$\/$JJ	
 	
 	

 	+$$\/$JJ	
 	
 	
   VeQZ#s>>>eQZ999S5!*888 0 0 0 !  %$20 G$$H	
 	
 	
 	+$$\/$JJ	
 	
 	

 	+$$\/$JJ	
 	
 	
 & VaVc3ZM:::aVS_555S1a&^444 , , , '  %$8, 
  	 	& & &	 	& & &s   % 00A 
AA