
    bi                    4   d dl mZ d dlZd dlZd dlmZ d dlmZ  ej                  d       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 d dlmZmZ d d	lmZmZ ej2                  j5                  d
d ej6                  dej2                  j8                        g      ej2                  j5                  dg d      ej2                  j5                  deee
j>                  g      ej2                  j5                  deee
j>                  g      ej2                  j5                  ddg      ej2                  j5                  dddg      ej2                  j5                  dddg      ej2                  j5                  ddg      d                                                         Z ej2                  j5                  ddi fdi fdi fdd d!ifg      ej2                  j5                  d"g d#      ej2                  j5                  ddg      d$                      Z!ej2                  j5                  d%d&d'g      d(        Z"d) Z#e
jH                  e
jJ                  e
jL                  e
jN                  e
jP                  e
jR                  gZ*ej2                  j5                  d*e*e+e,gz         ej2                  j5                  d+e*e+e,gz         ej2                  j5                  d,e*e+e,gz         d-                      Z-ej2                  j5                  de*      d.        Z.ej2                  j_                   e
j                  d       j`                  e
jb                  k(  d/0      ej2                  j5                  d1g d2      ej2                  j5                  d3d4d5g      d6                      Z2ej2                  jg                  d70      d8        Z4d9 Z5d: Z6d; Z7d< Z8d= Z9ej2                  j5                  d>d?gd?gfd@gd@gfdAdBgdCdAgfg dDg dEfg dFg dGfdHdIgdJdBgfg      ej2                  j5                  dKdLdMg      ej2                  j5                  dNd'd&g      dO                      Z:dP Z;ej2                  j5                  dQdRdd e,d4fdSdd e,d4fdRdSd e<d4fdRdd5e+d4fdRddTe+d4fdRddUe+d5fdVdWdXe+dYfdVdWd e+dZfg      d[        Z=d\ Z>ej2                  j5                  d]g d^      d_        Z?ej2                  j5                  d]g d^      d`        Z@ej2                  j5                  d]g d^      da        ZAdb ZBdc ZCej2                  j5                  dg dd      ej2                  j5                  dedf i fdCdgi fdCdhdidRifg      dj               ZDdk ZEej2                  j5                  dlg dm      dn        ZFej2                  j5                  ddodpg      ej2                  j5                  dlg dq      dr               ZGej2                  j5                  ddodpg      ej2                  j5                  dldTdsg      dt               ZHej2                  j5                  ddodpg      ej2                  j5                  dlg du      dv               ZIej2                  j5                  ddwdxg      ej2                  j5                  dldUdyg      dz               ZJej2                  j5                  d{g d|      ej2                  j5                  dlg d}      d~               ZKej2                  j5                  dddd dddUifddd di fddd dddUifddd di fddd di fddd di fddd di fg      d        ZLej2                  j5                  dddBd5di fddBdUdddTifddBdUdd e
j                  dT      ifddBdHdddifddddddifddBdRdi fddBdRdi fddBdRddd ifddddddifddddi fddddi fddddi fddBdHdddJifddddddifddBdHdddHifddBd5di fg      d        ZMej2                  j5                  ddg e
j                  dSd       e
jN                  d5      f e
j                  dSd       e
jR                  d       f e
j                  g dd       e
j                  d      f e
j                  g de
j                         e
j                  d'      f e
j                  g de
j                         e
j                  d      f e
j                  dSd       e
j                  d5d      f e
j                  dSd       e
j                  d d      f e
j                  g dd       e
j                  dd      f e
j                  g de
j                         e
j                  d'e
j                        f e
j                  g de
j                         e
j                  de
j                        ff
      d        ZRej2                  j5                  de
jH                  e
j                  e
jP                  e<g      ej2                  j5                  dg d      ej2                  j5                  ddddddd ej6                  dej2                  j                  d0             ej6                  dej2                  j                  d0             ej6                  dej2                  j                  d0             ej6                  dej2                  j                  d0             ej6                  dej2                  j                  d0            g      d                      ZUej2                  j5                  di ddUig      d        ZVd ZWd ZXd ZYd ZZej2                  j5                  dddg      ej2                  j5                  dddg      ej2                  j5                  dde
jP                  de
jN                  g      d                      Z[d Z\ej2                  j5                  dddg      ej2                  j5                  dde
jP                  de
jN                  g      d               Z]ej2                  j5                  dg d      ej2                  j5                  dddg      ej2                  j5                  dde
jP                  de
jN                  g      d                      Z^ej2                  j5                  dej                  ej>                  ej                  ej                  ej                  g      d        Zay)    )annotationsN)Alias)collections_to_exprnumpy)concat)normalize_chunks)NUMPY_GE_210	AxisError)	assert_eq	same_keysbackendcupy)marksfuncname)
empty_likeempty	ones_likeones
zeros_likezeros	full_likefull
cast_shapecast_chunkszshape, chunks)
   r      r   namezmy-nameorderCFdtypei4c	                &   t        j                  |      }	t        j                  j	                  d|i      5  t        |	|       }
t        t        |       } ||      } ||      }d| v r|
|fd}
fd}t        j                  |      }d| v rC|	j                  j                  dd|      j                  |      } |
||      } |||||	      }n |
|||
      } ||||||      }|j                  |j                  k(  sJ |j                  |j                  k(  sJ t        |j                  |	j                        sJ t        |j!                         |	j                        sJ d| vrt#        ||       |"| j%                  d      d   |j&                  v sJ |j&                  |k(  sJ ddk(  r%t        j(                  |j!                               s'J t        j(                  |j!                               rJ d d d        y # 1 sw Y   y xY w)Nzarray.backendr   c                      | ddi|S N
fill_value    )akold_np_funcs     Y/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/array/tests/test_creation.py<lambda>ztest_arr_like.<locals>.<lambda><       k1&H&Ha&H     c                      | ddi|S r'   r*   )r+   r,   old_da_funcs     r.   r/   ztest_arr_like.<locals>.<lambda>=   r0   r1   liker   r   )r    )r    chunksr   )r    r#   )r    r#   r5   r   r   _r    r"   )pytestimportorskipdaskconfigsetgetattrdanpr#   randomrandintastypeshape
isinstance_metandarraycomputer   splitr   	isfortran)r   rB   r   r#   r   r5   r   r    r   backend_libnp_funcda_funcr+   np_rda_rr3   r-   s                  @@r.   test_arr_likerN      s   4 %%g.K	/73	4 *4+x0"h'5!V$X!K!KHGHGX""**1b%8??FA1E*D1E&tDD5U;D5U6PTUDzzTZZ'''zzTZZ''' $**k&9&9:::$,,.+*=*=>>>("dD!<>>#&q)TYY66699$$$c><<///||DLLN333U*4 *4 *4s   GHHzfuncname, kwargsr   r   r   r   r(   r)   zshape, chunks, out_shape))r   r   N)r   r   )      )r   r   rO   ))r   r   r   )r      r)   r)   )rQ   rP   r)      NrP   r)   rT   )rS   )rQ   r)   rP   rU   )rS   )rQ   r)   rP   autorP   )   rQ   rP   r)   rT   )rS   rV   rU   c                `   t        t        |       }t        t        |       }t        j                  j	                  dd|      j                  |      } ||fd|i|}	 ||f||d|}
|	j                  |
j                  k(  sJ |	j                  |
j                  k(  sJ d| vrt        |	|
       y y )Nr   r   rB   )r5   rB   r   )	r<   r>   r=   r?   r@   rA   rB   r#   r   )r   kwargsrB   r#   r5   	out_shaperJ   rK   r+   rL   rM   s              r.   test_arr_like_shaper[   _   s    0 b(#Gb(#G
		!R'..u5A10I00D1?V9??D::###::###h$ r1   endpointTFc           
     >   t        j                  dd| d      }t        j                  dd|       }t        ||       t        j                  dd| dd	      }t        j                  dd| d
      }t        ||       t        j                  dd| dt              }t        j                  dd| t              }t        ||       t        j                  dd| dd      \  }}t        j                  dd| d      \  }}t        j
                  ||      sJ t        ||       t        j                  dd| ddt              }t        j                  ddd| t              }t        ||       t        t        j                  dd| dd	      j                        t        t        j                  dd| dd	      j                        k(  sJ t        t        j                  dd| dt              j                        t        t        j                  dd| dt              j                        k(  sJ t        j                  g d      }t        j                  ddd|       }t        j                  t        j                  |      t        j                  |      dz   d|       }t        ||       t        j                  ddd|       }t        j                  ddd|       }t        ||       t        j                  ddd|       }t        j                  ddd|       }t        ||       t        j                  ddd|       }t        j                  ddd|       }t        ||       t        j                  ddd|       }t        j                  ddd|       }t        ||       t        j                  ddd|       }t        j                  ddd|       }t        ||       t        j                  ddd|       }t        j                  ddd|       }t        ||       y )N   1   r)   )r\   r5   )r\   gffffff?g@   )r\   r5   num)r\   ra   )r\   r5   r#   )r\   r#   T)r\   r5   retstep)r\   rb   )r\   r5   ra   r#   )ra   r\   r#   )g?g@g      @g?r   rQ         )r=   linspacer>   r   floatallcloseintsortedr9   arrayargminargmax)r\   darrnparrdstepnpstepxs         r.   test_linspacerr      sN   ;;q"x:DKK21EdE;;sC(1"EDKKS8<EdE;;q"xGDKK2>EdE++ahq$OKD%KK2$GME6;;uf%%%dE;;sC(1"CPDKKSb83GEdE
CxrBGG	CxrJOO	PQ Q Q 
ArHQeDII	ArHQeLQQ	RS S S 	%&AKK1a(3E;;ryy|RYYq\A%5q8LDdEKK1a(3E;;q!Q2DdEKK1a(3E;;q!Q2DdEKK1a(3E;;q!Q2DdEKK1a(3E;;q!Q2DdEKK1a(3E;;q!Q2DdEKK1a(3E;;q!Q2DdEr1   c                 |   t        j                  dd      } t        j                  d      }t        | |       t        j                  ddd      } t        j                  dd      }t        | |       t        j                  dddd      } t        j                  ddd      }t        | |       t        j                  d	dd
d      } t        j                  d	dd
      }t        | |       t        j                  ddt              } t        j                  dt              }t        | |       t        j                  dddt
              } t        j                  ddt
              }t        | |       t        t        j                  ddd      j                        t        t        j                  ddd      j                        k(  sJ t        t        j                  ddt              j                        t        t        j                  ddt              j                        k(  sJ t        j                  dddd      } t        j                  ddd      }t        | |       t        j                  dddd      } t        j                  ddd      }t        | |       t        j                  d      } t        j                  d      }t        | |       t        j                  dd      } t        j                  dd      }t        | |       t        j                  dd      } t        j                  dd      }t        | |       t        j                  ddd      } t        j                  ddd      }t        | |       t        j                  t        d      5  t        j                          d d d        t        j                  t        d      5  t        j                  ddd       d d d        t        j                  d      j                  dk(  sJ y # 1 sw Y   jxY w# 1 sw Y   :xY w)NM   r`   r5   rQ   r)   r      	   5   r5   r#   r#   r   rd   g      rO         ?r   )stop)step)r~   r   rP   zrequires stopmatch	whatsthis)r5   r   )r   )r=   aranger>   r   rf   rh   ri   r9   r7   raises	TypeErrorr5   rm   rn   s     r.   test_aranger      s/   99R#DIIbMEdE99Q1%DIIaEdE99QAb)DIIaQEdE 99RBq)DIIb!R EdE99R%0DIIb&EdE99Q1C0DIIa3'EdE"))Ar!,112f
		!R"''7    "))Br7<<=
		"Ru-22B   
 99Q4+DIIaD!EdE99QC+DIIaS!EdE 99"DII2EdE99Ra DIIbq!EdE99"1%DII2A&EdE99QRa(DIIabq)EdE	y	8 
		 
y	4 .
		"R1-. 99R=8+++ . .s   (P& P2&P/2P;
start_type	stop_type	step_typec                     | d      } |d      } |d      }t        j                  |||      }t        j                  |||      }t        ||       y )NrP   r`   rQ   r>   r   r=   r   )r   r   r   startr~   r   a_npa_das           r.   test_arange_dtype_inferr     sM     qMER=DQ<D99UD$'D99UD$'DdDr1   c                4   t        j                  d|       j                  | k(  sJ t        j                  t        j                  d      |       j                  | k(  sJ t        j                  t        j
                  d      |       j                  | k(  sJ y )Nr   r{   )r=   r   r#   r>   float32int64r{   s    r.   test_arange_dtype_forcer     so    99Ru%++u44499RZZ^51775@@@99RXXb\/55>>>r1   z64-bit platforms only)reasonzstart,stop,step))   X     rd   )r   r   r|   )r   r   r   )        r   r   )r   l:=
Gu lGuQ8=
)	            g      ?)r   r         ?r5   rV   rd   c                |    t        j                  | ||      }t        j                  | |||      }t        ||       y)zYTest args that are very close to 2**63
    https://github.com/dask/dask/issues/11706
    ru   Nr   )r   r~   r   r5   r   r   s         r.   test_arange_very_large_argsr   !  s4    $ 99UD$'D99UD$v6DdDr1   zdCasting floats to ints is not supported since edge behavior is not specified or guaranteed by NumPy.c                     t        j                  ddddd      } t        j                  dddd      }t        | |       y )Ngffffff
@g333333"g      пrP   i8rz   r{   r=   r   r>   r   r   s     r.   test_arange_cast_float_int_stepr   8  s8    
 99S$at<DIIc4d3EdEr1   c                    t        j                  dddd      } t        j                  ddd      }t        | |       t        j                  dddd	      } t        j                  ddd      }t        | |       t        j                  d
ddd      } t        j                  d
dd      }t        | |       t        j                  d
ddd      } t        j                  d
dd      }t        | |       y )N       @g      *@g333333?r   ru   g@r   grP   r   rd   g{Gz?rO   gQ?r   r   s     r.   test_arange_float_stepr   B  s    99S$A.DIIc4%EdE99S#tA.DIIc3%EdE99Q4+DIIaD!EdE99Q4+DIIaD!EdEr1   c                     t        j                  t              5  t        j                  dt                      d d d        y # 1 sw Y   y xY w)Nrd   ru   )r7   r   
ValueErrorr=   indicestupler*   r1   r.   test_indices_wrong_chunksr   T  s3    	z	" )


4() ) )s    AAc                 N   d} t        j                  d|       }|j                  d| z   k(  sJ t        j                  j                  ddi      5  d}t        d|t        	      }t        j                  |d      }|j                  d
d  }||k(  sJ 	 d d d        y # 1 sw Y   y xY w)N))rd   r   rQ   rP   rR   r   ru   )rd   rd   array.chunk-size50 MiB'  r   rV   rB   r#   rd   )r=   r   r5   r9   r:   r;   r   rh   )r5   rm   rB   expectedresultactuals         r.   test_indices_dimensions_chunksr   Y  s    #F::hv.D;;)f,,,,	,h7	8 "#F%sCE&1qr"6!!!" " "s   ABB$c                    t        j                  t               t                     } t        j                  t                     }| j                  |j                  k(  sJ | j
                  |j
                  k(  sJ t        | |       t        j                  t               t        t                     } t        j                  t               t              }| j                  |j                  k(  sJ | j
                  |j
                  k(  sJ t        | |       t        j                  dt        d      } t        j                  dt              }| j                  |j                  k(  sJ | j
                  |j
                  k(  sJ t        | |       t        j                  dt        d      } t        j                  dt              }| j                  |j                  k(  sJ | j
                  |j
                  k(  sJ t        | |       y )Nru   r   r   r   rd   rQ   )rd   rd   rQ   )r=   r   r   r>   rB   r#   r   rf   r   s     r.   test_empty_indicesr   g  sj   ::egeg.DJJuwE::$$$::$$$dE::eguUW5DJJuw&E::$$$::$$$dE::dE$/DJJtU#E::$$$::$$$dE::iy9DJJy%(E::$$$::$$$dEr1   c                    t        j                  dd      } t        j                  d      }t        | |       t        j                  dt        d      } t        j                  dt              }t        | |       t        j                  dd      } t        j                  d      }t        | |       t        j                  dd      } t        j                  d      }t        | |       y )Nr   ru   rQ   rd   rQ   rP   rd   rQ   )r=   r   r>   r   rf   r   s     r.   test_indicesr     s    ::d4(DJJtEdE::dE$/DJJtU#EdE::fV,DJJvEdE::fV,DJJvEdEr1   zshapes, chunksr*   r   rQ   rP   r   )r   r   r   )r   r   r   )r   r   r   )r)   )r   r   r   r   r   r   r   indexingijxysparsec                T   g }g }g }t        | |      D ]  \  }}|j                  t        j                  j                  |             t	        j
                  |d   |      }	|j                  |	       |	j                         }
|j                  |
j                  d           t        t        t        |                  }|dk(  r0t        |      dkD  r"|d   |d   c|d<   |d<   |d   |d   c|d<   |d<   t        |      }t        j                  |||d}t	        j                  |||d}t        |      t        |      u sJ t        |      t        |      k(  sJ t        |||      D ]=  \  }}}t        ||       |r|j                  |   ||   k(  r+J |j                  |k(  r=J  y )Nr|   ru   r   r   rd   )r   r   )zipappendr>   r?   r=   
from_arrayflattenr5   listrangelenr   meshgridtyper   )shapesr5   r   r   xi_axi_dxi_dc
each_shape
each_chunkxi_d_exi_d_efdor_ar_de_r_ae_r_dis                    r.   test_meshgridr     s    DDE"%ff"5 (
JBII$$Z01tBx
;F.."W^^A&'( 
eCJ	 B4CJN!ube1r!u"1XuQxa%(%LE
++thv
>C
++thv
>C9S	!!!s8s3xsC, )ua%<<?eAh...<<5((()r1   c                    g d} t        j                  g d      }t        j                  | |d      \  }}||z  }t        j                  | |d      \  }}||z  }|j                  t        |       t        |      fk(  sJ t        ||       y )N)rd   rQ   rP   )r   r)   r^   rT   r   )r   )r>   rj   r   r=   rB   r   r   )r+   brq   yzx_dy_dz_ds           r.   test_meshgrid_inputcoercionr     s|    A
A;;q!d+DAq	AA{{1a$/HC
)C99QQ((((ar1   zN, M, k, dtype, chunksrP   r   r|   rQ   r^   rc   rP   r   )rP   rV   c           	     v    t        t        j                  | ||||      t        j                  | |||             y N)r   r=   trir>   )NMr,   r#   r5   s        r.   test_trir     s.     bffQ1eV,bffQ1e.DEr1   c                 J   t        t        j                  dd      t        j                  d             t        t        j                  d      t        j                  d             t        t        j                  dd      t        j                  d             t        t        j                  ddd      t        j                  dd             t        t        j                  ddd      t        j                  dd             t        t        j                  ddd      t        j                  dd             t        t        j                  ddd      t        j                  dd             t        t        j                  ddd	
      t        j                  dd	             t        t        j                  ddd
      t        j                  dd             t        t        j                  dddd      t        j                  ddd             t        t        j                  dddd      t        j                  ddd             t        t        j                  dddd      t        j                  ddd             t        t        j                  dddd      t        j                  ddd             t        t        j                  ddt              t        j                  dt                     t        t        j                  ddt              t        j                  dt                     t        t        j                  ddt              t        j                  dt                     t        t        j                  ddd       t        j                  dd              t
        j                  j                  ddi      5  t        j                  dd      } d| j                  cxk  rdk  sJ  J 	 d d d        y # 1 sw Y   y xY w)Nrw   rP   ru   r   rW   )r5   r   )r   rT   rQ   )r5   r,   )r,   r   r)   )r5   r   r,   )r   r,   r^      ry   rz   r{   r|   r   r   r   rV   r       )	r   r=   eyer>   rh   r9   r:   r;   npartitionsrq   s    r.   test_eyer     s   bffQq!266!9-bffQi#bffR"BFF2J/bffQqB'R9bffRQ'a9bffQqB'R9bffRQ'a9bffQqA&qA7bffQqB'R9bffQqB!,bffQ".BCbffRQ"-rvvbA/DEbffQqA+RVVAa-@AbffRQ"-rvvbA/DEbffQq,bffQc.BCbffR-rvvb/DEbffR#.r0EFbffQq-rvvat/DE	,h7	8 &FF5&!1==%2%%%%%& & &s   1PP"r,   )r   rP   ry   rc   c                <   t        j                  d      j                  d      }t        j                  t
        d      5  t        j                  ||        d d d        t        j                  d      j                  d      }t        j                  t
        d      5  t        j                  ||        d d d        d}t        j                  t        d      5  t        j                  ||        d d d        y # 1 sw Y   xY w# 1 sw Y   RxY w# 1 sw Y   y xY w)N   )rQ   rP   r   zArray must be 1d or 2d onlyr   rd   z%v must be a dask array or numpy array)	r>   r   reshaper7   r   r   r=   diagr   )r,   vs     r.   test_diag_bad_inputr     s     			)$$Y/A	z)F	G 
1 			)$$Y/A	z)F	G 
1 	
A	y(O	P 
1  
 
 s$    C:DD:DDDc                   t        j                  d      }t        t        j                  ||       t        j                  ||              t        j                  dd      }t        j                  ||       }t        j                  ||       }t        ||       t        t        j                  ||       j                        t        t        j                  ||       j                        k(  sJ ||z   dz   }t        j                  ||       }t        j                  ||       }t        ||       t        j                  dd      }t        j                  ||       }t        j                  ||       }t        ||       t        t        j                  ||       j                        t        t        j                  ||       j                        k(  sJ y )NrW   rP   ru   )r>   r   r   r=   r   ri   r9   )r,   r   rm   rn   s       r.   test_diag_2d_array_creationr     sF    			"AbggamRWWQ]+ 			"QA771a=DGGAqMEdE"''!Q-$$%10B0B)CCCC	A	A771a=DGGAqMEdE
		"R A771a=DGGAqMEdE"''!Q-$$%10B0B)CCCCr1   c                   t        j                  d      j                  d      }t        t	        j
                  ||       t        j
                  ||              t	        j                  |d      }t        t	        j
                  ||       t        j
                  ||              t	        j                  |d      }t        t	        j
                  ||       t        j
                  ||              t        j                  d      j                  d      }t        t	        j
                  ||       t        j
                  ||              t	        j                  |d      }t        t	        j
                  ||       t        j
                  ||              t	        j                  |d      }t        t	        j
                  ||       t        j
                  ||              y )	N@   rc   rc   r   ru   )rP   rQ   rP   r   rd   rQ   rd   (   )r)   rc   )rP   rQ   r  )r>   r   r   r   r=   r   r   )r,   rq   dr   s       r.   test_diag_extractionr     s-    			"f%AbggamRWWQ]+
a'AbggamRWWQ]+
a 9:AbggamRWWQ]+ 			%  (AbggamRWWQ]+
a'AbggamRWWQ]+
a 67AbggamRWWQ]+r1   c                 8   t        j                  d      j                  d      } t        j                  | d      }t        |g      j                         }t        d |j                         D              sJ |j                  d      } t        | g      j                         }t        d |j                         D              dk(  sJ t        d	 |j                         D              dk(  sJ t        |      d
k(  sJ |t        dd      d f   j                  d      } t        | g      j                         }t        d |j                         D              dk(  sJ t        d |j                         D              dk(  sJ t        |      d
k(  sJ |g d   j                  d      } t        | g      j                         }t        d |j                         D              dk(  sJ t        d |j                         D              d
k(  sJ t        |      dk(  sJ y )Nr  r  r   ru   c              3  4   K   | ]  }|j                     y wr   data_producer.0r   s     r.   	<genexpr>z/test_creation_data_producers.<locals>.<genexpr>;       51q5   float64c              3  4   K   | ]  }|j                     y wr   r  r  s     r.   r  z/test_creation_data_producers.<locals>.<genexpr>@  r  r  r   c              3  <   K   | ]  }t        |t                y wr   rC   r   r  s     r.   r  z/test_creation_data_producers.<locals>.<genexpr>A       :z!U#:   rc   r   r^   c              3  4   K   | ]  }|j                     y wr   r  r  s     r.   r  z/test_creation_data_producers.<locals>.<genexpr>G  r  r  c              3  <   K   | ]  }t        |t                y wr   r  r  s     r.   r  z/test_creation_data_producers.<locals>.<genexpr>H  r  r  )rd   rP   r)   rT   r^   r   rQ   r   c              3  L   K   | ]  \  }}|j                   xr d |d   v   yw)zarray-r   Nr  )r  r,   r   s      r.   r  z/test_creation_data_producers.<locals>.<genexpr>N  s)     L1q38qt#33Ls   "$c              3  4   K   | ]  }|j                     y wr   r  r  s     r.   r  z/test_creation_data_producers.<locals>.<genexpr>O  r  r  r   )r>   r   r   r=   r   r   __dask_graph__allvaluesrA   sumr   sliceitems)rq   r  dsks      r.   test_creation_data_producersr#  7  s   
		"f%A
a'A
qc
"
1
1
3C5

5555 	
A
qc
"
1
1
3C5

55::::SZZ\::a???s8q== 	
%1+t
##I.A
qc
"
1
1
3C5

55::::SZZ\::a???s8q== 	

"#**95A
qc
"
1
1
3CL		LLPQQQQ5

55:::s8r>>r1   c            	        t        j                  d      } t        j                  t              5  t        j                  |        d d d        t        j                  d      j                  d      } t        j                  t              5  t        j                  | dd       d d d        t        j                  t              5  t        j                  | d       d d d        t        j                  t              5  t        j                  | d       d d d        t        j                  d	      j                  d
      } t        j                  | d      } t        t        j                  |       t        j                  |              t        t        j                  | d      t        j                  | d             t        t        j                  | d      t        j                  | d             t        j                  t              5  t        j                  | d       d d d        t        t        j                  | d      t        j                  | d             t        t        j                  | dd      t        j                  | dd             t        j                  d      j                  d      } t        j                  | d      } t        t        j                  |       t        j                  |              t        t        j                  | ddd      t        j                  | ddd             t        t        j                  | ddd      t        j                  | ddd             t        t        j                  | ddd      t        j                  | ddd             t        t        j                  | d      t        j                  | d             t        t        j                  | d      t        j                  | d             t        t        j                  | ddd      t        j                  | ddd             t        j                  d      j                  d      } t        t        j                  | dd      t        j                  | dd             t        t        j                  | ddd      t        j                  | ddd             t        t        j                  | ddd      t        j                  | ddd             t        t        j                  | ddd      t        j                  | ddd             t        t        j                  | ddd      t        j                  | ddd             t        t        j                  | ddd      t        j                  | ddd             t        t        j                  | ddd      t        j                  | ddd             t        j                  | d      } t        t        j                  | ddd      t        j                  | ddd             t        t        j                  | ddd      t        j                  | ddd             t        j                  d      j                  d      } t        t        j                  | dd      t        j                  | dd             t        j                  | d      } t        t        j                  | dd      t        j                  | dd             y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   VxY w)NrW   r   rQ   rQ   r   )axis1axis2)r&  )r'  x   )r   r)   r^   rQ   ru   r   )offsetir   r|   rd   )r*  r&  i  )rQ   rP   r   r)   r^   )rd   r   )rd   rQ   rd   )rQ   rd   rQ   )r)   rd   rP   )r*  r&  r'  r   ry   i  )rc   rc   r^   )r   r   rQ   )r>   r   r7   r   r   r=   diagonalr   r
   r   r   )r   s    r.   test_diagonalr-  S  sM   
		"A	z	" 
A 			!V$A	z	" )
AQa() 
y	! !
AR ! 
y	! !
AR ! 			)$$Y/A
a"Abkk!nbkk!n-bkk!B'Qr)BCbkk!C("++a*DE	z	" !
AR ! bkk!2&AR(@Abkk!AR0"++aQS2TU 			#$,,_=A
a IJAbkk!nbkk!n-
Aaq2
Aaq2
 
Ab3
Ab3
 
Ab3
Ab3
 bkk!QQ!23bkk!R "++a"45bkk!Q1%r{{1aA'>?
		#$,,_=Abkk!1A.AQa0PQ
Aaq2
Aaq2
 
Aaq2
Aaq2
 
Ab3
Ab3
 
Ab3
Ab3
 
Ab!4
Ab!4
 
Ab!4
Ab!4
 	a"A
Aaq2
Aaq2 
Ab3
Ab3
 			#y)Abkk!Ba0"++aRS2TU
a	*Abkk!Ba0"++aRS2TUE ) )! !! !! !s;   ]
]]!=].];]]!]+.]8;^)Nf8r   zfunc, kwargsc                    | |z   S r   r*   )rq   r   s     r.   r/   r/     s
    a!e r1   c                    | ||z  z   S r   r*   rq   r   cs      r.   r/   r/         1q1u9 r1   c                    | ||z  z   S r   r*   r1  s      r.   r/   r/     r3  r1   r2  c                    t        j                  | fd|d|}t        j                  | fdd|d|}t        ||       t        j                  | fdd|d|}t	        ||      sJ y )NrR   r   r%  )rB   r5   r#   )r>   fromfunctionr=   r   r   )funcr#   rY   r+   r  d2s         r.   test_fromfunctionr9    so     	BF%B6BA
QF6Q&QAaO		RVF%	R6	RBQr1   c            	        t         j                  j                  d      } t        j                  | d      }g d}g d}|D ]7  }|D ]0  }t	        | j                  ||      |j                  ||             2 9 t	        |j                  dd      t        j
                  |dd             t        j                  t              5  t        j
                  |t        j                  d	             d d d        t        j                  t              5  t        j
                  |dd        d d d        t        j                  t              5  t        j
                  |d       d d d        d
D ]<  }t        j                  t              5  t        j
                  |d|       d d d        > t        j                  d      } t        j                  dd      }t	        | j                  d      |j                  d             dD ]1  }t        t        |j                  |      j                              r1J  y # 1 sw Y   IxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr   rW   r`   r   r)   rP   ru   )r   rd   rQ   r)   )ry   r   r|   r   rd   rQ   )axisrQ   r   r   )rP   r(  r)   r   rP   )rd   rQ   rP   r   )r>   r?   r=   r   r   repeatr7   r   NotImplementedErrorr   r   r  r   r5   )rq   r  repeatsaxesrr+   invalid_axiss          r.   test_repeatrD    s   
		&A
a	*AG D @ 	@Aahhqqh)188AA8+>?	@@ ahhq!nbii1a01	*	+ $
		!RYYr]#$ 
*	+ 
		!Q 
*	+ 
		!Q   /]]:& 	/IIa.	/ 	// 			!A
		!D!Aahhqk188A;' /6!((1+,,-.../%$ $  	/ 	/s0   *H6I	II6I III%	reps)rQ   r%  r   r   )rQ   rP   r   r   c                .   t        j                  g d      }ddgddgg}t        t        j                  |j                         |       t        j                  ||              t        t        j                  ||       t        j                  ||              y )Nr   rd   rQ   rP   r   )r=   asarrayr   r>   tilerF   )rE  r+   r   s      r.   test_tile_basicrI    sh    


9A
Q!QAbggaiik4("''!T*:;bgga4 01r1   )r   r   )r;  r<  )r   rd   rQ   rP   r)   r   r   c                    t         j                  j                  |       }t        j                  ||      }t	        t        j
                  ||      t        j
                  ||             y Nru   r>   r?   r=   r   r   rH  rB   r5   rE  rq   r  s        r.   test_tile_chunksrN    H     			A
a'Abgga4 01r1   r+  c                    t         j                  j                  |       }t        j                  ||      }t	        j
                  t              5  t        j                  ||       d d d        y # 1 sw Y   y xY wrK  )r>   r?   r=   r   r7   r   r   rH  rM  s        r.   test_tile_neg_repsrQ    sW     			A
a'A	z	" 
4  s   A00A9)r   r   rQ   r   )r   rP   r   r   c                    t         j                  j                  |       }t        j                  ||      }t	        t        j
                  ||      t        j
                  ||             y rK  rL  rM  s        r.   test_tile_zero_repsrT    rO  r1   )rd   rd   r   rU  )rR  )rd   r   )rP   rQ   r)   c                    t        j                  |       }t        j                  ||      }t	        t        j
                  ||      t        j
                  ||             y rK  )r>   r   r=   r   r   rH  rM  s        r.   test_tile_empty_arrayrW    sA     	A
a'Abgga4 01r1   rB   )r   r   )rP   r   rP   r  )r   rP   rQ   r   r%  )r   r   r   r%  )rQ   rP   rQ   r  c                    t         j                  j                  |       }t        j                  |      }t	        t        j
                  ||      t        j
                  ||             y r   )r>   r?   r=   rG  r   rH  )rB   rE  rq   r  s       r.   !test_tile_np_kroncompare_examplesrY    sE    
 			A


1Abgga4 01r1   z&shape, chunks, pad_width, mode, kwargsr   rW   r   r)   constantconstant_valuesedgelinear_ramp
end_valuesreflect	symmetricwrapr   c                    t         j                  j                  |       }t        j                  ||      }t        j                  |||fi |}t        j                  |||fi |}||u sJ t        ||       y rK  r>   r?   r=   r   padr   	rB   r5   	pad_widthmoderY   np_ada_arL   rM   s	            r.   test_pad_0_widthrl  *  sl     99E"D==f-D66$	4262D66$	4262D4<<dDr1   r   r|   r   ))rd   r   r   )rm  r   )rm  )r   rP   maximumstat_lengthmean)r   r   minimumc                   t         j                  j                  |       }t        j                  ||      }t        j                  |||fi |}t        j                  |||fi |}|dk(  rt        |||  |||         y t        ||       y )Nru   r   re  rg  s	            r.   test_padrs  B  s    D 99E"D==f-D66$	4262D66$	4262Dw$y),d9iZ.HI$r1   rj  	pad_valuer   r{   r  )z
2000-01-01z
2000-01-02z
2000-01-03z
2000-01-04zdatetime64[ns]z
1972-01-01)TFTT)abbcdeef00c                    d}t        j                  | d      }t        j                  | |d|      }t        j                  ||d|      }t	        ||       y )Nr   r   ru   r\  ri  r]  )r=   r   r>   rf  r   )rj  rt  rh  rk  rL   rM   s         r.   test_pad_constant_valuesr|  q  sL    D I==d+D66$	
IND66$	
INDdDr1   
pad_widths)rQ   r   r   )r   ))rP   rd   r   r   rR  ri  zUBug when pad_width is larger than dimension: https://github.com/dask/dask/issues/5303medianzNot implementedz7Empty leads to undefined values, which may be differentc                   t        j                  d      j                  ddd      j                  |       }t	        j
                  |d      }t        j                  |||      }t	        j                  |||      }t        ||       y )Nr   rQ   rP   r   rV   ru   )ri  )r>   r   r   rA   r=   r   rf  r   )r#   r}  ri  rj  rk  rL   rM   s          r.   test_pad_3d_datar    sk    X 99Y''1a077>D==f-D66$
.D66$
.DdDr1   rY   scalerc                      fd}d}d}d}t         j                  j                  |      }t        j                  ||      }t        j                  |||fi  }t        j                  |||fi  }t        ||       y )Nc                v    |k(  sJ |j                  dd      }| |d   z  | d |d    ||d   z  | |d    d  | S )Nr  rd   r   )get)vectorrh  iaxisinner_kwargsr  rY   s        r.   udf_padztest_pad_udf.<locals>.udf_pad  s^    %%%!!(A."(9Q<!7~1"(9Q<"7	!}r1   rZ  r[  )r   r   ru   re  )	rY   r  rB   r5   rh  rj  rk  rL   rM   s	   `        r.   test_pad_udfr    su     EF I99E"D==f-D66$	75f5D66$	75f5DdDr1   c            	     >   t         j                  j                  dd      } t         j                  j                  | ddd      }t	        t        t        |j                              dk(  sJ t        |t        j                  | j                         ddd             y )	Nr   r   ru   ))r   r^   r~  r\  r   r{  )ri  r]  rh  )r9   rj   r   rf  r   mapmaxr5   r   r>   rF   )rj   r   s     r.   test_pad_constant_chunksizesr    s    JJOOHVO4EZZ^^%J  F S&--()V333
MMO,		
r1   c                     t         j                  j                  ddi      5  t        j                  d      } d| j
                  cxk  rdk  sJ  J 	 d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r   )r9   r:   r;   r=   r   r   r   s    r.   test_auto_chunksr    sX    	,h7	8 &GGN#1==%2%%%%%& & &s   0AA%c                     t        j                  t              5  t        j                  ddd       d d d        y # 1 sw Y   y xY w)Nr   
auto_chunkrV   ru   )r7   r   r   r=   r   r*   r1   r.   test_string_auto_chunkr    s3    	z	" =
V<= = =s	   <Ac                 :   t        j                  dd      } t        j                  dd      }t        j                  |      }t        j                  d      }t	        ||       t	        ||z   d|z         || z   }t	        |t        j
                  dd             y )Nr  r   ru   )rc   rQ   r   )r=   r   r,  r>   r   r   )rq   ddr  r   As        r.   test_diagonal_zero_chunksr    sv    
v&A		'B
BAwwt}Haa!eQ\"	AAa%&r1   fnshape_chunks))2   r   )r   rQ   ))r  r   u4c                   t        t        |       }t        t        |       }|\  }}t        j                  j	                  ||      }||dk     }|j                         }	|	|	dk     }
t         |||       ||
|             y Nsizer5   r}   r{   )r<   r=   r>   r?   standard_normalrF   r   )r  r  r#   dafnnpfnrB   r5   x1y1x2y2s              r.   test_nan_zeros_ones_liker    s}     2r?D2r?D ME6		"	"f	"	=B	BHB	B	BHBRuRur1   c                    t        j                  d      j                  dd      } t        j                  | d      }|t        dd      d d f   t        dd      d d f   }t        |g      j                         }|D cg c]  }d|d	   v s| c}d	   }||   j                  d	   j                         D cg c]  \  }}d
|d	   v rt        |t              s|  c}}d	   }||   j                  d	   |   j                  d   t        dd      t        d	d       fk(  sJ t        || t        dd      d d f   t        dd      d d f          y c c}w c c}}w )Nd   r   rR   ru   rd   r)   rP   zarray-getitemr   getitemrQ   r   )r>   r   r   r=   r   r   r   r  argsr!  rC   r   r   )arrrm   r   r"  r,   keyr   key_2s           r.   test_from_array_getitem_fusedr     sG   
))C.
 
 R
(C==V,D%1+q.!%1+q.1F
vh
'
6
6
8C
5_!41
5a
8C HMM!$**,Aq!Z5%9 	
 		E
 s8==E"''*aU1d^/LMMMfc%1+q.)%1+q.9: 6s   ?EE9#Ec                t   | \  }}t         j                  j                  ||      }||dk     }|j                         }||dk     }t        j                  ||      j                         }t        j                  ||      }	|j                  |	j                  k(  sJ |j                  |	j                  k(  sJ y r  )r=   r?   r  rF   r   r>   rB   r#   )
r  r#   rB   r5   r  r  r  r  r   r   s
             r.   test_nan_empty_liker  0  s     !ME6		"	"f	"	=B	BHB	B	BHB==5)113D==5)D::###::###r1   val)r   r   c   r|   c                J   t         r| dk(  r|dk(  rt        j                  d       |\  }}t        j                  j                  ||      }||dk     }|j                         }||dk     }t        t        j                  || |      t        j                  || |             y )Nr|   r  z3can't insert negative numbers into unsigned integerr  r}   r{   )
r	   r7   xfailr=   r?   r  rF   r   r   r>   )	r  r  r#   rB   r5   r  r  r  r  s	            r.   test_nan_full_liker  >  s     r	etmJK ME6		"	"f	"	=B	BHB	B	BHB
RE*
RE*r1   r7  c                   t        j                  d      j                  d       }t        j                  t
        d      5  t        j                  |       ddd        | d|      }t        j                  |       y# 1 sw Y   )xY w)z^Test that array creation functions with like=x do not
    internally store the graph of x
    rP   c                    | S r   r*   r   s    r.   r/   z)test_like_forgets_graph.<locals>.<lambda>V  s    ! r1   zlocal objectr   Nrd   )r4   )r=   r   
map_blocksr7   r   	Exceptionpickledumps)r7  rq   r+   s      r.   test_like_forgets_graphr  O  sb     			!,A	y	7 Q 	QQA
LLO	 s   A??B)b
__future__r   r  r7   dask._task_specr   	dask.baser   r8   r   r>   tlzr   r9   
dask.arrayrj   r=   dask.array.corer   dask.array.numpy_compatr	   r
   dask.array.utilsr   r   markparametrizeparamgpur   r   rG  rN   r[   rr   r   uint8uint64int8r   r   r  arange_dtypesrh   rf   r   r   skipifr#   int32r   r  r   r   r   r   r   r   r   r   boolr   r   r   r   r  r#  r-  r9  rD  rI  rN  rQ  rT  rW  rY  rl  rs  r   
datetime64bool_str_r|  int16skipr  r  r  r  r  r  r  r  r  r  
asanyarrayr   r  r*   r1   r.   <module>r     s]   "   ! )   G       , ; 1 lfll69: 	 tRZZ'@Abjj(AB+=*>?$	!233*-4&).4 * . 4 @ C B	..4b 	r	b	r	|Q'(	 	 4&) *. dE]37 47tA,J HHIIGGHHJJJJ }U|'CDmsEl&BCmsEl&BC D D E -0? 1? HBHHQK%%1:QR FA;/ 0 S 8  	$)
"4$ 
t
$
d|$	/0	!#;<
$&$(
 dD\2E4=1) 2 3
)<
 	
D!UF#	
D!UF#	
Aq$	
D!S&!	
D"c6"	
D!S!	
Ar3	
Aq#{#	FF&2 m, -" m,D -D0 m,, -,,8dVN "45	R 	$b)	$sAh/ 6 /F !JK2 L2 =:S*TU!>?2 @ V2 =:S*TU"b* + V =:S*TU!@A2 B V2 +ACS*TU!Y02 1 V2 G !RS2 T2 ,	61j+<a*@A	61fb)	61mlA->?	61i,	61k2.	61fb)	61gr*		 ,	aR(	a&7%<=	a&7"%FG	v
->,IJ 23	
 
a$	a+	aq(9:-.	
 
6+Y;	6+["=	6+VR8	v	M6+BC	6+VmEU5VW	v	M6+BC	a"%9 BC B [	1G	$hbhhqk2	1I	&


16BHHH& BMM,'	
 
+288	<hbhhuoN	*"''	:GBGGDMJ	1G	$hbhhq&@A	1I	&)(DEBHHH& BHH\)9:	
 BHH.bhh?BHHU"((+	

 BHH-RWW=BHHT)	
3 BC B 288RXXrzz4"HIH 
++""n # 	
 	++""n # 	
 	++""n # 	
 	++""*;"<	
 	++""P # 	
;#&NO& JV B1#67 8*"&=
	' k:;*<n)MN4T288"DE F O <;  *<n)MN4T288"DE	$ F O	$  01*<n)MN4T288"DE F O 2 
RXXrzz2=="))RVVD		r1   