
    bi                       d dl mZ d dlZd dlmZ d dlZd dlZd dlZd dl	m
Z d dlmZ d dlmZ  ej                   d      Zd Zd Zd	 Zd
 Zd Zd Zd Zej2                  j5                  dddg      d        Zej2                  j5                  dddg      d        Zd Zej2                  j=                  d      dd       Zy)    )annotationsN)partial)	assert_eq)tmpdirxarrayc                     t        j                  t        j                  g d            } t	        | t         j
                        sJ t        | |        y N      g      @)dameanxr	DataArray
isinstanceArrayr   ys    W/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/array/tests/test_xarray.py	test_meanr      s6    
[)*Aa"""aO    c                     t        j                  t        j                  g d            } t	        | t         j
                        sJ t        | |        y r	   )r   asarrayr   r   r   r   r   r   s    r   test_asarrayr      s6    


2<<,-Aa"""aOr   c                     t        j                  t        j                  g d            } t	        | t         j
                        sJ t        | |        y r	   )r   
asanyarrayr   r   r   r   r   r   s    r   test_asanyarrayr      s6    
bll;/0Aa"""aOr   c                    t         j                  j                  } 	 dt         j                  _        t        j                  t         j                  g d            }t        |t        j                        sJ t        |j                        j                  dk(  sJ t        ||       | t         j                  _        y # | t         j                  _        w xY w)Nr   r
   ndarray)r   r   
__module__r   r   r   r   type_meta__name__r   )moduler   s     r   *test_asarray_xarray_intersphinx_workaroundr%   #   s    \\$$F)"*JJr||K01!RXX&&&AGG}%%222!Q"(&s   BB= =Cc                 \   t        j                  dd      } t         j                  j                  dd      dz   }t        j	                  || | dddg	      }t         j
                  j                  |      }t         j
                  j                  |j                        }t        ||       y )
N   chunksr'   r'   r   xr   r-   r   coordsdims)r   arangerandomr   r   fftdatar   )coordr4   r-   resultexpecteds        r   test_fftr8   0   s~    IIa#E99F2.2D
TE":#sLAVVZZ]Fvvzz!&&!Hfhr   c                     t         j                  t        j                  dd      g d      } | j	                  dd      }|j
                  j                  dk(  sJ y )	N)
         )r      r<   r)   )zr   r-   )r0   r-   r   ))r   )
r   r   r   r   r   r   r   r   r   r   )r=   r=   r=   r=   )r   r   r   onespolyfitpolyfit_coefficientsr*   )arrr6   s     r   test_polyfit_reshapingrC   :   sJ    
,,rww|J?o,
VC[[a F&&--1LLLLr   c                    d} t         j                  t        g dt        j                  j                  dddd| fdd| dz  f      fg dt        j                  j                  dddd| fdd| dz  f      f	      t        t        t        d            t        t        d            t        j                  |             
      }t        j                  |       }t        j                  j                  |       |j                  |      }|j                         }t        |D ch c]	  }d|v s| c}      dk(  sJ t        |D ch c]	  }d|v s| c}      dk(  sJ y c c}w c c}w )N   )r-   r   timer   d   r:   r(   r   r)   )ab)	data_varsr/   )rF   zshuffle-taker   zshuffle-sorter)r   Datasetdictr   r2   randintlistrangenpr1   shuffleisel__dask_graph__len)ndsindexerr6   graphks         r   *test_positional_indexer_multiple_variablesr[   A   sI   A	"		!!!S2r1+r2qAv>N!O
 #		!!!S2r1+r2qAv>N!O	
 59o59o1
 
 
B" iilGIIgWW'W"F!!#E59aOq$89:a???5:a$4$9:;q@@@ ::s   #	E!-E!	E&E&computeTFc                >   d }t        j                  t        d      5  t        |d      }t	        j
                  t        j                  d      |       d d d        t        j                  dd	
      }t        j                  j                  dd	
      dz   }t        j                  |||dddg      }|dz   dz  dz  dz
  }d}t        ||      }t	        j
                  ||       t               5 }| r=t        j                  j                  |      5  |j                  |d       d d d        n<|dz  }t        ||      }|j                  |d      }	t	        j
                  |	|       d d d        y # 1 sw Y   %xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                    | j                         } t        |       |k(  sJ dt        |        d|        |D cg c]  }d c}S c c}w )NzFalse number of tasks got z but expected *   )rT   rU   )dskkeysr7   kwargs_s        r   custom_scheduler_getz@test_xarray_blockwise_fusion_store.<locals>.custom_scheduler_get^   sS      "H 	K'CzzJ	K  !q!!!s   	AzFalse number of tasks)matchr_   )r7   r:   )	schedulerr'   r(   r)   r+   r   r,   r-   r   r.   r   T)r\   F)pytestraisesAssertionErrorr   daskr\   r   r?   r1   r2   r   r   r   configsetto_zarr)
r\   rd   rf   r5   r4   r-   r   r7   dirnamestoreds
             r   "test_xarray_blockwise_fusion_storerp   \   sn   " 
~-D	E 702>	RWWR[I67 IIa#E99F2.2D
TE":#sLA
a%1AA H,x@ILLi(	 
6W95 1		'4	01 1
 MH 4xHIYYwY6FLL95
6 
6!7 7$1 1
6 
6s0   8E:5#FF,AF:FF	FFwrap_xarrayc                h   dd
fd}t        j                  dd      }t        j                  ||t        j                  d|j
                        |j
                        }|d	z   }|dz   }| r*t        j                  |      }t        j                  |      }t        j                  ||      }| rHt        |d   t        j                        sJ t        |d   j                  t        j                        s!J t        |d   t        j                        sJ |j                  j                  k(  sJ y )Nr   c                    dz  | S )Nr    )rH   total_callss    r   my_funcz"test_shared_tasks.<locals>.my_func   s    qr   )r=   r=   r   r)   rt   )dtype)metarw   r   )rH   
np.ndarrayreturnry   )r   zeros
map_blocksrQ   arrayrw   r   r   rj   r\   r   r4   r   blockssize)rq   rv   in1resout1out2comp_resru   s          @r   test_shared_tasksr      s    K
 ((6!
$C
--288Bcii8		C 7D7D||D!||D!||D$'H(1+r||444(1+**BJJ777(1+rzz222#**//)))r   c                    t         j                  ddt        j                  d      fi      } | j	                         } | j                  dgd      j                  d d d d dd d df   d d d d dd d f   }| j                  dg      j                  d	      j                  d d d d dd d df   d d d d dd d f   }t        |j                  |j                         y )
Nr>   )tpr   r-   )r   r      (   r   )r   r   r:   r(   )r   )r   )	r   rL   rQ   r?   chunkrS   r>   r   r4   )rW   subsetsubset2s      r   test_slicingr      s    		#RWW^%<=>
B 
BWWsaW ""1ddDbD=1!TrT1*=Fgggn!!A!&((DbD$B$74R4
CGfkk7<<(r   z&ignore:Passing an object to dask.arrayc                     dd l } dd l}|j                  d      }| j                  t        j
                  d|gd      }|j                  dk(  sJ y )Nr   a          import sys
        sys.modules["pyarrow"] = None
        import xarray as xr
        import dask.array as da
        import numpy as np
        import dask

        y = xr.DataArray(
            data=da.zeros((1)),
            dims=('y',),
            coords={'y': np.arange(1)},
            name='foo'
        ).to_dataset()
        y['foo'] = y.foo.dims, y.foo.data + 1
        dask.optimize(y)
        z-cT)capture_outputr   )
subprocesstextwrapdedentrunsys
executablestderr)r   r   codeouts       r   test_tokenize_without_pyarrowr      sN     ??	D& ..#..$5d.
KC::r   )rz   None) 
__future__r   r   	functoolsr   numpyrQ   rg   rj   
dask.arrayr}   r   dask.array.utilsr   
dask.utilsr   importorskipr   r   r   r   r%   r8   rC   r[   markparametrizerp   r   r   filterwarningsr   rt   r   r   <module>r      s    " 
      & V"
) MA6 T5M2#6 3#6L 6* 7*8) DE Fr   