
    >ie!                       d dl mZ d dl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d d d d	 d
 d d d d d d d d d d d d d d d d g          d             Zej                            dd d d g          d             Zej                            dej        j        ej        j        g          d              Zej                            dd! d" d# g          d$             Zej                            dd% d& d' g          d(             Zd) Zej                            d*d+d,g          d-             Zej                            dd. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: g          d;             Zd< Zej                            dej        ej        ej        d= g          ej                            d> e
ej                                                            d?                    ej                                                            d?d@A          fej                                                            d?d@A           e	ej                                                            d?                    f e
ej                                                            d?                     e	ej                                                            d?                    fg          dB                         Zej                            dej        ej         ej!        ej"        g          dC             Z#ej                            dej        ej         ej!        g          dD             Z$ej                            dej        ej         ej!        g          dE             Z%dS )F    )annotationsN)EncapsulateNDArrayWrappedArray	assert_eqfuncc                ,    t          j        | |           S N)npappendxs    Dlib/python3.11/site-packages/dask/array/tests/test_array_function.py<lambda>r          ")Aq//     c                0    t          j        | | | g          S r
   r   concatenater   s    r   r   r          ".!Q++ r   c                ,    t          j        | |           S r
   r   covr   s    r   r   r          "&A,, r   c                ,    t          j        | |           S r
   r   dotr   s    r   r   r      r   r   c                .    t          j        | | f          S r
   r   dstackr   s    r   r   r          ")QF## r   c                .    t          j        | d          S Nr   axisr   flipr   s    r   r   r          "'!!$$$ r   c                .    t          j        | | f          S r
   r   hstackr   s    r   r   r      r!   r   c                ,    t          j        | |           S r
   r   matmulr   s    r   r   r      r   r   c                *    t          j        |           S r
   r   meanr   s    r   r   r          "'!** r   c                .    t          j        | | g          S r
   r   stackr   s    r   r   r          "(Aq6"" r   c                .    t          j        | | g          S r
   )r   blockr   s    r   r   r      r6   r   c                *    t          j        |           S r
   r   sumr   s    r   r   r          "&)) r   c                *    t          j        |           S r
   r   varr   s    r   r   r      r<   r   c                .    t          j        | | f          S r
   r   vstackr   s    r   r   r      r!   r   c                @    t           j                            |           S r
   r   linalgnormr   s    r   r   r          ")..## r   c                *    t          j        |           S r
   )r   minr   s    r   r   r      r<   r   c                *    t          j        |           S r
   )r   aminr   s    r   r   r      r2   r   c                *    t          j        |           S r
   )r   roundr   s    r   r   r      s    "(1++ r   c                2    t          j        | ddd          S )Nr      r$   )r   insertr   s    r   r   r       s    ")Aq!!,,, r   c                0    t          j        | dd          S r#   )r   deleter   s    r   r   r   !   s    ")Aqq))) r   c                `    t          j        | dk     | dk     | dk    g| dz  | | dz  gd          S )Ng333333?g333333?gffffff?   g?)default)r   selectr   s    r   r   r   "   s@    ")Wa#gq3w'!a%AE):D
 
 
 r   c                   t           j                                                            d          }t          j        |d          } | |          } | |          }t          |t          j                  sJ t          ||           d S )Nd   rY   2   r[   chunks)r   randomdefault_rngda
from_array
isinstanceArrayr   r   r   yres_xres_ys        r   test_array_function_daskrh      s    : 		&&z22A
a)))ADGGEDGGEeRX&&&&&eUr   c                *    t          j        |           S r
   r   r   s    r   r   r   4       ")A,, r   c                *    t          j        |           S r
   r*   r   s    r   r   r   5   rj   r   c                *    t          j        |           S r
   rA   r   s    r   r   r   6   rj   r   c                   t           j                                                            d          }t          j        |d          }t          j        t          d          5   | |           d d d            d S # 1 swxY w Y   d S )NrX   rZ   r\   z2expects a sequence of arrays as the first argumentmatch)r   r^   r_   r`   ra   pytestraisesNotImplementedErrorr   r   re   s      r   /test_stack_functions_require_sequence_of_arraysrt   1   s     		&&z22A
a)))A	#W
 
 
   	Q                    #A<<B B c                .   t           j                                                            d          }t          j        |d          } | |          } | |          }| j        dk    rt          |t          j                  sJ t          ||           d S )NrX   r\   zmkl_fft._numpy_fft)	r   r^   r_   r`   ra   
__module__rb   rc   r   rd   s        r   test_array_function_fftrx   C   s    
	&&z22A
a
+++ADGGEDGGE...%*****eUr   c                *    t          j        |           S r
   )r   min_scalar_typer   s    r   r   r   R   s    "$Q'' r   c                @    t           j                            |           S r
   )r   rE   detr   s    r   r   r   S   s    ")--"" r   c                @    t           j                            |           S r
   )r   rE   eigvalsr   s    r   r   r   T   s    ")##A&& r   c                   t           j                                                            d          }t          j        |d          }t          j        t          d          5   | |           d d d            d S # 1 swxY w Y   d S )NrX   rZ   r\   z,The `.*` function is not implemented by Daskrn   )r   r^   r_   r`   ra   rp   warnsFutureWarningrs   s      r    test_array_notimpl_function_daskr   O   s     		&&z22A
a)))A	K
 
 
   	Q                 ru   c                *    t          j        |           S r
   )r   realr   s    r   r   r   b   s    rwqzz r   c                *    t          j        |           S r
   )r   imagr   s    r   r   r   b   s    RWQZZ r   c                *    t          j        |           S r
   )r   	transposer   s    r   r   r   b   s    2<PQ?? r   c                   t          j        d          }t          j                                                            dd          }d||dk     <   |                    |j                  }t           | |           | |                     d S )Nsparse)  r   rX   r\   r   ?)rp   importorskipr`   r^   r_   
map_blocksCOOr   )r   r   r   re   s       r   test_array_function_sparser   a   s      **F
	&&z*&EEAAa#gJ	VZ  Add1ggttAwwr   c                    t          j        d          } t          j                                        }|                    d          }d||dk     <   |                    d          }d||dk     <   |                     |          }|                     |          }t          t          j        ||d          t          j        ||d                                                     d S )Nr   )rT   rO      r   r   )r   rO   rT   )rT   r   )axes)	rp   r   r   r^   r_   r   r   	tensordottodense)r   rngr   re   xxyys         r   $test_array_function_sparse_tensordotr   n   s     **F
)


!
!C

9AAa#gJ

9AAa#gJ	AB	AB
Q'''b"6)J)J)J)R)R)T)T    r   r]   rX   r   rY   c                   t          j        d          }|j                                                            d          }t	          j        || d          }t          j                            |          \  }}}t          j                            |          \  }}}	t          ||           t          ||           t          |	|           d S )Ncupyr   F)r]   asarray)
rp   r   r^   r_   r`   ra   rE   svdr   r   )
r]   r   r   re   u_bases_basev_baseusvs
             r   test_array_function_cupy_svdr   ~   s    v&&D!!((44A
a666AY]]1--FFFimmAGAq!aaar   c                0    t          j        | | | g          S r
   r   r   s    r   r   r      r   r   c                ,    t          j        | |           S r
   r   r   s    r   r   r      r   r   c                ,    t          j        | |           S r
   r   r   s    r   r   r      r   r   c                .    t          j        | | f          S r
   r   r   s    r   r   r      r!   r   c                .    t          j        | d          S r#   r&   r   s    r   r   r      r(   r   c                .    t          j        | | f          S r
   r*   r   s    r   r   r      r!   r   c                ,    t          j        | |           S r
   r-   r   s    r   r   r      r   r   c                *    t          j        |           S r
   r0   r   s    r   r   r      r2   r   c                .    t          j        | | g          S r
   r4   r   s    r   r   r      r6   r   c                *    t          j        |           S r
   r:   r   s    r   r   r      r<   r   c                *    t          j        |           S r
   r>   r   s    r   r   r      r<   r   c                .    t          j        | | f          S r
   rA   r   s    r   r   r      r!   r   c                @    t           j                            |           S r
   rD   r   s    r   r   r      rG   r   c                &   t          t          j                                                            d                    }t	          j        |d          }t          ||dd            | |          } | |          }t          ||dd           d S )NrX   rZ   r\   F)
check_meta
check_type)r   r   r^   r_   r`   ra   r   )r   r   re   r   r   s        r   test_unregistered_funcr      s    ( 	29002299*EEFFA 	a)))A au7777 
aB 
aB b"5999999r   c                    t          j        t          j        g d          d          } t	          j        t          d          5  t          t          j        |                     g dk    sJ 	 d d d            d S # 1 swxY w Y   d S )N)   rT   r   rO   )rT   r\   z4The `numpy.sort` function is not implemented by Daskrn   )r   rT   rO   r   )	r`   ra   r   arrayrp   r   r   listsortr   s    r   test_non_existent_funcr      s     	bh|||,,T:::A	S
 
 
 0 0 BGAJJ<<</////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   *A>>BBc                .    t          j        | |g          S r
   r4   )r   re   s     r   r   r      s    RXq!f%% r   zarr_upcast, arr_downcast)
   r   )   r   r\   c                    t           | ||                    t           | ||                    cxk    rt          |          k    sn J dS )z.Test proper dispatch on binary NumPy functionsN)type)r   
arr_upcastarr_downcasts      r   $test_binary_function_type_precedencer      sy    : 	TT*l++,,\:..//	 	 	 	
	 	 	 	 	 	 	 	r   c                `    t           | d | d                     | d                     d S Nr   )liker   r   s    r   test_like_raisesr      s7    dd14477###TT!WW-----r   c                r    t           | dt          j        d                     | d                     d S r   )r   r`   r   r   s    r   test_like_with_numpy_funcr      s7    dd128A;;'''a11111r   c           	         t           | dt          t          j        d                     | dt                               d S )Nr   )dtyper   )r   )r   floatr`   r   r   s    r   #test_like_with_numpy_func_and_dtyper      s@    dd1E444dd1E6J6J6JKKKKKr   )&
__future__r   numpyr   rp   
dask.arrayr   r`   dask.array.tests.test_dispatchr   r   dask.array.utilsr   markparametrizerh   rt   fftfft2rx   r   r   r   r   r   r   equalr.   r   r^   r_   r   r   
asanyarraytrir   r   r    r   r   <module>r      sP   " " " " " "            K K K K K K K K & & & & & & 
!!++##$$##!!""""####,,))	
 	
+ 8 9 8 
    "&*bfk!:;;  <; 
''""&&    
!!#7#79R9RS          J
#;<<  =< 
++##$$##!!""#### $: :% $:,0 0 0 


	
%%	   L..0077AABBI!!##**8F*CC	

 I!!##**8F*CCry4466==hGGHH	

 L..0077AABBry4466==hGGHH	
 " #  4 "(BJrv!NOO. . PO. "(BJ!FGG2 2 HG2 "(BJ!FGGL L HGL L Lr   