
    bi                    (   d dl mZ d dlZd dlZd dlmZ d dlZd dlm	Z
 d dlmZmZ d dlmZ  ej                   d      Z eej$                        Zer ej                   dd	       g d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 Zej*                  j-                  d9e      d:        Zd; Zd< Zd= Zd> Zd? Zd@ ZdA Zej*                  j-                  dBeeg      ej*                  j-                  dCg dD      ej*                  j-                  dEdFdGg      dH                      Zy)I    )annotationsN)Version)nannumelnumel)	assert_eqsparsenumbaz0.40.0)
minversionc                    | S N xs    W/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/array/tests/test_sparse.py<lambda>r      s    a     c                ,    t        j                  |       S r   )daexpm1r   s    r   r   r      s    bhhqk r   c                    d| z  S N   r   r   s    r   r   r      
    a!e r   c                    | dz  S r   r   r   s    r   r   r      r   r   c                    | dz  S r   r   r   s    r   r   r      s
    ad r   c                    | | z   S r   r   r   s    r   r   r      r   r   c                    | | z  S r   r   r   s    r   r   r      r   r   c                    | d   S )Nr   r   r   s    r   r   r      s
    ad r   c                    | d d df   S N   r   r   s    r   r   r      s    a1g r   c                    | d dd ddf   S )Nr!      r   r   s    r   r   r      s    aD!A# r   c                    | j                   S r   )Tr   s    r   r   r       s
    acc r   c                .    t        j                  | d      S )N)r!   r   r   )r   	transposer   s    r   r   r   !   s    bll1i( r   c                ,    t        j                  |       S r   r   nanmeanr   s    r   r   r   "       bjjm r   c                0    t        j                  | d      S Nr!   axisr)   r   s    r   r   r   #   s    bjj# r   c                ,    t        j                  |       S r   )r   nanmaxr   s    r   r   r   $       biil r   c                ,    t        j                  |       S r   )r   nanminr   s    r   r   r   %   r2   r   c                ,    t        j                  |       S r   )r   nanprodr   s    r   r   r   &   r+   r   c                ,    t        j                  |       S r   )r   nanstdr   s    r   r   r   '   r2   r   c                ,    t        j                  |       S r   )r   nanvarr   s    r   r   r   (   r2   r   c                ,    t        j                  |       S r   )r   nansumr   s    r   r   r   )   r2   r   c                "    | j                         S r   sumr   s    r   r   r   0       aeeg r   c                &    | j                  d      S )Nr   )order)momentr   s    r   r   r   1   s    ahhQh r   c                "    | j                         S r   meanr   s    r   r   r   2   s    affh r   c                &    | j                  d      S r-   rE   r   s    r   r   r   3   s    aff!fn r   c                "    | j                         S r   )stdr   s    r   r   r   4   r@   r   c                "    | j                         S r   )varr   s    r   r   r   5   r@   r   c                d    | j                  t        j                  | j                  d               S N)dotnparangeshaper   s    r   r   r   6   s     aeeBIIaggbk*+ r   c                d    | j                  t        j                  | j                  d               S rM   )rO   rP   eyerR   r   s    r   r   r   7   s     aeeBFF1772;'( r   c                v    t        j                  | t        j                  | j                  d d       ddg      S )Nr   r   r!   axes)r   	tensordotrP   onesrR   r   s    r   r   r   8   s+    bll1bggaggbqk2&&9IJ r   c                &    | j                  d      S Nr   r.   r>   r   s    r   r   r   9       aeeem r   c                &    | j                  d      S r\   )maxr   s    r   r   r   :   r]   r   c                &    | j                  d      S )Nr!   r   r.   r>   r   s    r   r   r   ;   s    aeee  r   c                @    | j                  t        j                        S r   )astyperP   
complex128r   s    r   r   r   <   s    ahhr}}% r   c                &    | j                  d       S )Nc                    | dz  S r   r   r   s    r   r   z<lambda>.<locals>.<lambda>=   s
    QU r   )
map_blocksr   s    r   r   r   =   s    all?+ r   c                .    | j                  d ddd      S )Nc                    | dz  S r   r   r   s    r   r   z<lambda>.<locals>.<lambda>>   
    a!e r   r   Tnonedepthtrimboundarymap_overlapr   s    r   r   r   >   s    ammO14&mQ r   c                .    | j                  d ddd      S )Nc                    | dz  S r   r   r   s    r   r   z<lambda>.<locals>.<lambda>?   rj   r   r   Frk   rl   rp   r   s    r   r   r   ?   s    ammO156mR r   c                $    | j                  d      S r    )roundr   s    r   r   r   @   s    aggaj r   c                |    | j                  | j                  d   | j                  d   z  | j                  d   f      S )Nr   r!   r   )reshaperR   r   s    r   r   r   A   s1    aiiaggaj0!''!*=> r   c                    t        |       S r   )absr   s    r   r   r   B   s
    c!f r   c                    | dkD  S )Ng      ?r   r   s    r   r   r   C   s
    a#g r   c                $    | j                  d      S )N)   r|   r|   rechunkr   s    r   r   r   D       aii	" r   c                $    | j                  d      S )Nr   r   r!   r}   r   s    r   r   r   E   r   r   c                ,    t        j                  |       S r   )rP   isneginfr   s    r   r   r   F       bkk!n r   c                ,    t        j                  |       S r   )rP   isposinfr   s    r   r   r   G   r   r   c                ,    t        j                  |       S r   )rP   
zeros_liker   s    r   r   r   H   s    bmmA r   c                ,    t        j                  |       S r   )rP   	ones_liker   s    r   r   r   I   s    bll1o r   c                0    t        j                  | d      S )Nr   
fill_value)rP   	full_liker   s    r   r   r   J   s    bll1+ r   funcc                   t         j                  j                  dd      }d||dk  <   |j                  t        j                  j
                        } | |      } | |      }t        ||d       |j                  rd|j                         }t        |t        j                        s9|dk7  j                         t        j                  |j                        d	z  kD  sJ y y y )
Nr   r#   r|   r!   r   r   chunksr   皙?F)
check_metar!   r   )r   randomrg   r   COO
from_numpyr   rR   compute
isinstancer?   rP   prod)r   r   yxxyyzzs         r   
test_basicr   N   s    
		95AAa#gJ	VZZ**+A	aB	aBb"'	xxZZ\"fjj)!G==?RWWRXX%6%:::: * r   c                    t         j                  j                  dd      } d| | dk  <   t         j                  j                  dd      }d||dk  <   | j                  t        j                  j
                        }|j                  t        j                  j
                        }t        t        j                  | |d	      t        j                  ||d	             t        t        j                  | |d
	      t        j                  ||d
	             t        t        j                  | |d	      t        j                  ||d	             y )Nr   r   r   r   r   )r|   r#   r   r   )r   r   rW   )r!   r!   )ra   )r!   r   )r   r   rg   r   r   r   r   rY   )r   r   r   r   s       r   test_tensordotr   `   s    
		95AAa#gJ
		95AAa#gJ	
fjj++	,B	
fjj++	,Bbll1af-r||B/PQbll1af-r||B/PQ
Q 01
R"23r   c                 j   t         j                  j                  dd      } d| | dk  <   t        j                  j	                  | j                               }| j                  t        j                  j                        } t        | j                  t        j                        sJ t        | dz   j                  t        j                        sJ t        | j                  d      j                  t        j                        sJ t        | j                  d      j                  t        j                        sJ t        | d dd d d	f   j                  t        j                        sJ t        | j                  d
      j                  t        j                        sJ t        | |z
  j                  t        j                        sJ t        | j                         j                  t        j                        sJ t        t        j                  | | g      j                  t        j                        sJ t        t        j                  | | d d | g      j                  t        j                        sJ t        t        j                  | | g      j                  t        j                        sJ t        t        j                  | d d | d d g      j                  t        j                        sJ t        t        j                  | d d | d d g      j                  t        j                        sJ y )N
   r      r   r   r   r   r!   r.   r   r   )r   r   )r   r   r   r   r   r   rg   r   _metar?   rK   r~   persistrP   concatenatestack)r   zs     r   test_metadatar   q   sB   
		&1AAa#gJ

aiik*A	VZZ**+Aaggvzz***q1ummVZZ000aeeem))6::666aeeem))6::666aCaCj&&

333aii'--vzz:::q1ummVZZ000aiik''444bnnaV,22FJJ???bnna2A]3996::FFFbhh1v&,,fjj999bhh"1q!u~.44fjjAAAbnnaeQrU^4::FJJGGGr   c                    t        j                  d       t        j                  j                  dd      } d| | dk  <   | j	                  t
        j                  j                        } | j                         }d|v sJ d|v sJ d	|vsJ y )
Njinja2r   r   r   r   r   r   r   Bytes)	pytestimportorskipr   r   rg   r   r   r   _repr_html_)r   texts     r   test_html_reprr      s    
!
		&1AAa#gJ	VZZ**+A==?DD==t$r   c            	     2   d }  t        j                  |              }t        j                  |dt        j
                  j                  t        j                  d                  }t        |j                  t        j
                        sJ t        ||       y )Nc                 f    t         j                  j                  t        j                  d            S )Nr#   )r   r   r   rP   rT   r   r   r   fz!test_from_delayed_meta.<locals>.f   s    zz$$RVVAY//r   )r#   r#   r!   )rR   meta)daskdelayedr   from_delayedr   r   r   rP   rT   r   r   r   )r   dr   s      r   test_from_delayed_metar      se    0 	QA
fjj.C.CBFF1I.NOAaggvzz***aOr   c                 N   t         j                  j                  t        j                  d            } t        j                  | d      }t        |j                  t         j                        sJ t        ||       t        |j                         t         j                        sJ y )Nr   r   r   )r   r   r   rP   rT   r   
from_arrayr   r   r   r   )r   r   s     r   test_from_arrayr      si    

bffRj)A
a'Aaggvzz***aOaiik6::...r   c                 L   t        j                  dd      } | j                  t        j                  j
                  t        j                  j                  t        j                  d                  }t        |j                  t        j                        sJ t        ||       y )Nr   r   r   r!   )r   )
r   rT   rg   r   r   r   rP   r   r   r   r   r   s     r   test_map_blocksr      sf    
r!A	VZZ**1F1Frvvay1QRAaggvzz***aOr   c                     t         j                  j                  t        j                  d            } t
        j                  j                  | d      }t        |t         j                        sJ y )Nr!   r   )ndim)	r   r   r   rP   rT   r   utilsmeta_from_arrayr   r   s     r   test_meta_from_arrayr      sK    

bffQi(A
   +Aa$$$r   r   r/   )r   rV   NkeepdimsTFc                    t         j                  j                  d      }d||dk  <   t         j                  ||dkD  <   t        j                  j                  |d      }t         | |||       | |||             y )Nr   r   r   g?g        r   )r/   r   )rP   r   nanr   r   r   r   )r   r/   r   r   xss        r   
test_numelr      sn     			#AAa#gJAa#gJ			qS		1BadX.bth0Wr   ) 
__future__r   numpyrP   r   packaging.versionr   r   
dask.arrayarrayr   dask.array.reductionsr   r   dask.array.utilsr   r   r   __version__SPARSE_VERSION	functionsmarkparametrizer   r   r   r   r   r   r   r   r   r   r   r   <module>r      s	   "   %   1 &			X	&++,	 FH5666 6 	6
 6 6 6 6 6 6 6 )6 6 $6 6  !6" #6$ %6& '6( )66 768  96: ;6< =6> ?6@ A6B ,C6D )E6F KG6H I6J K6L !M6N &O6P ,Q6R RS6T SU6V W6X ?Y6Z [6\ ]6^ #_6` #a6b c6d e6f g6h i6j ,k6	r +; ,;""H*
/% 5("34!23dE]3	 4 4 5	r   