
    bi<              	         d dl mZ d dlZ ej                  d       d dlZd dlZd dlmZ	 d dlm
Z
 d dlmZ d dlmZmZ d dlmZ  ej$                  e	j&                  j(                  e	j&                  j*                  g      d	        Zd
 Zej0                  j3                  dddej&                  j4                  e	j&                  j7                  ej&                  j4                        ge      d        Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+ej0                  j3                  dg de      d        Z,d  Z-ej0                  j3                  dg de      d!        Z.ej0                  j3                  dg de      d"        Z/ej0                  ja                   e1ed#       d$%      d&        Z2d' Z3d( Z4d) Z5d* Z6d+ Z7d, Z8d- Z9d. Z:d/ Z;y)0    )annotationsNnumpy)Array)	assert_eq)_dumps_loads)	key_split)paramsc                    | j                   S N)param)requests    W/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/array/tests/test_random.pygenerator_classr      s    ==    c                     | d      }|j                  dddd      }t        ||        | d      }|j                  dddd      }t        ||       y N   
      sizechunks)normalr   r   statexys       r   test_generatorsr      sT    AERA.AaOAERA.AaOr   sd*   )idsc                    t         j                  j                  |       }t        |t         j                  j                        sJ y )N)seed)darandomdefault_rng
isinstance	Generator)r    rngs     r   test_default_rngr+       s5     ))

R

(Cc299..///r   c                     | d      }|j                  dddd      } | d      }|j                  dddd      }|j                  d      |j                  d      k(  j                         sJ y )Nr   r   r      r   	processes)	scheduler)r   computeallr   s       r   test_concurrencyr2   (   so    AERA.AAERA.AIII,		K	0PPUUWWWr   c                D    d | d      j                   j                  v sJ y )Nmeanr   )r   __doc__r   s    r   test_doc_randomstater7   1   s!    _Q'..66666r   c                 |    t         j                  j                         } dt        |       v sJ dt	        |       v sJ y )Nr)   )r%   r&   r'   strreprr   s    r   test_doc_generatorr<   5   s8    
		A#a&   $q'!!!r   c                ~     | d      }|j                  dddd      }t        t        |            }t        ||       y r   )r   r   r   r   r   s       r   test_serializabilityr>   ;   s9    AERA.AvayAaOr   c                     | d      j                  dd      } | d      j                  dd      }t        |j                        t        |j                        k(  sJ t        ||       y )Nr!     r   r   )r   setdaskr   )r   	samples_1	samples_2s      r   %test_determinisim_through_dask_valuesrE   D   s`    #**R*@I#**R*@Iy~~#inn"5555i#r   c           	     h    | d      } | d      }t        |j                  dd      j                        t        |j                  dd      j                        k(  sJ t        |j                  dddd	      j                        t        |j                  dddd	      j                        k(  sJ y )
Nr!   )d   rG   r   r   r   rG   g      @g      @r   )r   locscaler   )sortedr   rB   )r   state1state2s      r   test_generator_consistent_namesrN   L   s    R FR F&--Z-AFFG6:h7<<L    3Cs2>CC	3Cs2FKK	LM M Mr   c                \    |        j                  dd      }t        |t              sJ t        |j                  t              r|j                  sJ |j
                  dk(  sJ |j                  dk(  sJ t        t        j                  |      j                        }t        |      dkD  sJ y )NrH   r   r   r   rP   rP   Z   )r&   r(   r   namer9   shaper   rA   nparrayflatlenr   ar   s      r   test_randomr\   W   s      & 9Aaaffc"qvv--77h88''''BHHQKAq6B;;r   c                    |        j                  ddd      }t        |t              sJ t        |j                  t              r|j                  sJ |j
                  dk(  sJ |j                  dk(  sJ t        j                  |      }d|j                         cxk  rdk  sJ  J t        |j                        }t        |      dkD  sJ y )	Nr@   rH   rP   rQ   rR   r   順 rS   )exponentialr(   r   rT   r9   rU   r   rV   rW   r4   rA   rX   rY   )r   r[   r   r   s       r   !test_parametrized_random_functionr`   c   s    %%dHV%DAaaffc"qvv--77h88''''
A!6!!!!!AFFAq6B;;r   c                     |        j                  dddd      }t        |t              sJ t        j                  |      }d|j                         cxk  rdk  sJ  J y )Ng      $@g?rH   rP   )rI   rJ   r   r         )r   r(   r   rV   rW   r4   rZ   s      r   test_kwargsrd   q   sZ      T8F SAa
Aqvvx"r   c                     |        j                  dd      } |        j                  dd      }|j                  |j                  k7  sJ y )NrH   rP   rQ   )r&   rT   )r   r[   bs      r   test_unique_namesrg   x   sH      & 9A  & 9A66QVVr   c                    d |        j                   j                  v sJ d |        j                   j                  v sJ d |        j                  j                  v sJ y )Nr_   z# doctest: +SKIP)r_   r5   __name__r   r6   s    r   	test_docsrj      sY    O-99AAAAAO-99BBBBB!2!9!9!A!AAAAr   c                8     |        j                  dddd       y )Nr   r   )@B rl   )r^   r^   rQ   )r   r6   s    r   %test_can_make_really_big_random_arrayrm      s    R$6?OPr   c                    t         j                  j                  d       t         j                  j                  dd      } t         j                  j                  dd      }t         j                  j                  d       t         j                  j                  dd      }t         j                  j                  dd      }t	        | |       t	        ||       y )N{   r   r   r   )r%   r&   r$   r   r   )r   r   r[   rf   s       r   test_random_seedrp      s    IINN3
		b+A
		b+AIINN3
		b+A
		b+AaOaOr   c                     | d      j                  dd      } | d      j                  dd      d d } | d      j                  dd      d d }t        ||       t        ||       y )Nro      rQ   rG      )r&   r   )r   x1x2x3s       r   test_consistent_across_sizesrw      sr    			$	$R	$	3B			$	$S	$	4Sb	9B			$	$S	$	4Sb	9Bb"b"r   sz)Nr   )r-   r-   c                z   t         j                  j                  dd| d      j                          t         j                  j	                  dd| d      j                          t         j                  j                  d| d      j                          t         j                  j                  d| d      j                          t         j                  j                  dd| d      j                          t         j                  j                  dd| d      j                          t         j                  j                  d| d      j                          t         j                  j                  d| d      j                          t         j                  j                  ddd| d      j                          t         j                  j                  | d      j                          t         j                  j                  | d      j                          t         j                  j                  | d      j                          t         j                  j                  d| d      j                          t         j                  j!                  dd	gd
z  | d      j                          t         j                  j#                  dd| d      j                          t         j                  j%                  dd| d      j                          t         j                  j'                  ddd| d      j                          t         j                  j)                  dd| d      j                          t         j                  j+                  d| d      j                          t         j                  j-                  | d      j                          t         j                  j/                  d| d      j                          t         j                  j1                  | d      j                          t         j                  j3                  ddd| d      j                          t         j                  j5                  | d      j                          t         j                  j7                  dd| d      j                          t         j                  j9                  dd| d      j                          t         j                  j;                  d| d      j                          t         j                  j=                  d| d      j                          t         j                  j?                  | d      j                          t         j                  jA                  | d      j                          t         j                  jC                  d| d      j                          t         j                  jE                  | d      j                          t         j                  jG                  d| d      j                          y )Nr   r-      r   r         ?r   rr   UUUUUU?   )$r%   r&   betar0   binomial	chisquarer_   fgamma	geometricgumbelhypergeometriclaplacelogistic	lognormal	logseriesmultinomialnegative_binomialnoncentral_chisquarenoncentral_fr   paretopoissonpowerrayleigh
triangularuniformvonmiseswaldweibullzipfstandard_cauchystandard_exponentialstandard_gammastandard_normal
standard_trx   s    r   test_random_allr      sf   IINN1abN+335IIr3R2::<II1-557II!"Q/779IIKK12aK(002IIOOAqr!O,446II1-557IIQR*224IIQ12a8@@BII2a(002IIBq)113IIR*224II"Q/779II"wi!m"Q?GGIII3R:BBDII""1ab";CCEII1aA6>>@IIQ1-557IIQR*224II2a(002IIOOABqO)113IIBq)113IIAqr!4<<>II2a(002IIq!"Q/779IINN1abN+335IIab+335IINN12aN(002II2a088:II""1"5==?IIQR2::<II2a088:IIA.668r   c                 ~   t         j                  j                  ddd      j                          t	        j
                  t              5  t         j                  j                  ddd      j                          d d d        t         j                  j                  dd      j                          y # 1 sw Y   9xY w)Nr   r   rz   r   rQ   )	r%   r&   randintr0   pytestwarnsDeprecationWarningrandom_integersrandom_sample r   r   test_RandomState_only_funcsr      s    IIbq+335	(	) B
		!!"1Q!7??ABIIBq)113B Bs   
1B33B<c                   t         j                  j                         j                  dd| d      j	                          t         j                  j                         j                  g dd| d      j	                          y )Nr      rz   )highr   r   )   rb      r}   r   )r%   r&   r'   integersr0   multivariate_hypergeometricr   s    r   test_Generator_only_funcsr      s_    II$$QRb$CKKMII77ABq 8 gir   c                   d } | |        j                   dd|d        | |        j                  dd|d        | |        j                  d|d        | |        j                  d|d        | |        j                  dd|d        | |        j
                  dd|d        | |        j                  d|d        | |        j                  d|d        | |        j                  ddd|d        | |        j                  |d        | |        j                  |d        | |        j                  |d        | |        j                  d|d        | |        j                  d	d
gdz  |d        | |        j                  dd|d        | |        j                  dd|d        | |        j                   ddd|d        | |        j"                  dd|d        | |        j$                  d|d        | |        j&                  |d        | |        j(                  d|d        | |        j*                  |d        | |        j,                  ddd|d        | |        j.                  |d        | |        j0                  dd|d        | |        j2                  dd|d        | |        j4                  d|d        | |        j6                  d|d        | |        j8                  |d        | |        j:                  |d        | |        j<                  d|d        | |        j>                  |d        | |        j@                  d|d       y )Nc                |     | |i |}t        |j                        t        j                  k(  sJ t	        ||       y r   )type_metarV   ndarrayr   )funcargskwargsr[   s       r   rnd_testz4test_random_all_with_class_methods.<locals>.rnd_test   s4    $!&!AGG}

***!Qr   r   r-   rz   r   r   r{   r   rr   r|   r}   )!r~   r   r   r_   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   rx   r   s      r   "test_random_all_with_class_methodsr      s   
 _##Q1=_''Sr!D_((!"Q?_**ABqA_  !QR:_$$aA>_((!"Q?_%%qr!<_--q!QRJ_&&R:_''b;_((r!<_((#BqA_**B	ABqQ_00!Sr!L_33Q1M_++Q12aH_%%q!"Q?_%%qr!<_&&R:_$$ab;_''b;_))1aAF_&&R:_''ABqA_##Q1=_&&1=_##QR:_..RB_33"QG_--qr!D_..RB_))12a@r   broadcast_toz)requires numpy 1.10 method "broadcast_to")reasonc                   t        j                  d      j                  d      }t        j                  dd      } |        j                  |d      j                         j                  dk(  sJ ||fD ]_  } |        j                  |dd      }|j                  |j                  k(  sJ |j                         j                  |j                  k(  r_J   |        j                  |dd      }t        |j                        j                  t        |j                              sJ  |        j                  t        j                  d      t        j                  dd      d      j                         j                  dk(  sJ  |        j                  t        j                  d      t        j                  dd      dd	      j                         j                  dk(  sJ t        j                  t              5   |        j                  |t        j                  d
      dd       d d d        t        j                  d      t        j                  dd      dfD ]J  } |        j                  d|z  dd      }d|j                         j                         cxk  rdk  rGJ  J  t        j                  d      dz  }t        j                   |d      } |        j                  |dd      }d|j                         j                         |j                         z  cxk  rdk  sJ  J y # 1 sw Y   
xY w)Nr}   r-   rz   )r-   rz   r   rz   rQ   r-   )r   r   )r-   r-   rz   r   )rJ   rI   r   r   )rz   r   r   rG   )2   r   r@   g{Gz?i   i  r   )r   r   g?g333333?)rV   arangereshaper%   onesr   r0   rU   r   rA   rB   issubsetr   raises
ValueErrorr4   
from_array)r   arrdaonesr   r   or[   zs           r   test_array_broadcastingr     s    ))A,

v
&CWWYq)F$$S$3;;=CCvMMM6] ,$$Q!$4ww!''!!!yy{  AGG+++,
 	  1 5Av{{$$S[111##
9=i $ gi# # # ##ggfoGGIi0	 $ 
 gi& & & 
z	" Q  bggfoIa PQ ggclBGGC6: /$$TAXtE$BQVVX%%'.$...../
 			"A
a%A  D 7A!!#affh.444444Q Qs   ?.L55L?c                   dD ]  \  }} |        j                  ddgdz  ||      }t        j                  j                  ddgdz  |      }|j                  |j                  cxk(  r|j	                         j                  k(  rJ  J  y )N))r   rz   ))r   r   r   rr   r|   r}   r   r   )r   rV   r&   rU   r0   )r   r   r   r   r   s        r   test_multinomialr   *  s    2 7f))"wi!m$v)VII!!"wi!m$!?ww!''6QYY[%6%666666	7r   c                V	   t         j                  j                  t        j                  j                  t         j                  j                  t        j                  j                  i} ||           j                  dd      j                  }d}d} |        j                  d||      }|j                  |k(  sJ |j                  |k(  sJ |j                         }|j                  |k(  sJ |j                  |k(  sJ g d}t        j                  |d	
      }t        j                  |d      }	|||	fD ]  }
 |        j                  |
||      }|j                         }t        j                  |
      j                  }|j                  |k(  sJ |j                  |k(  sJ t        t        j                  |            j                  |      rJ  t        j                  g d      }t        j                  |d      }|	|f||ffD ]  \  }
} |        j                  |
|||      }|j                         }|j                  |j                  k(  sJ |j                  |j                  k(  sJ t        t        j                  |            j                  |dd        rJ   ||           j                  ddt        j                  dg            j                  } |        j                  d|||      }|j                         }|j                  |k(  sJ |j                  |k(  sJ d|d d d f   d f||d d d f   f||d d fd|fdg dfg}|D ]A  \  }
}t        j                   t"              5   |        j                  |
|||       d d d        C t        j                   t$              5   |        j                  |	||d       d d d        t        j                   t"              5  t         j                  j	                         j                  |	||d       d d d         |        j                  |	|	j                  d   dd      }|j                         }t'        |      t'        t        j                  |            k(  sJ y # 1 sw Y   AxY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr   r   r   )r   rz   r   rz   r   )r   rz   r      	   f8dtyper-   rQ   )r   皙?r   333333?r   )r   r   p)r   r   r   )N)r   r   r   F)r   r   replace)r   r   axisr   r   )r%   r&   RandomStaterV   r'   choicer   rU   r0   rW   r   asarrayrA   uniquer   r   r   r   NotImplementedErrorrY   )r   np_generatornp_dtyper   r   r   respy_anp_ada_ar[   expected_dtypenp_pda_pr   errss                   r   test_choicer   2  sJ   
		ryy44
		ryy44L -|O,.55ab5AGGHDF  f =A77h77d??
))+C99   99D88D%D==a(DD$ 2$$QT&$AiikA,,ww.(((yyN***299S>"++D1112 88+,D==a(Dd|, 61$$QT&A$Fiikww$**$$$yyDJJ&&&299S>"++DH5556 -|O,.55abBHHaSM5RXXH  f EA
))+C77h99    		ag	tAtG}	tCRy	
D		
OD  G1]]:& 	G$$QT&A$F	G 	GG 
*	+ P  D OP 
z	" O
		&&t$vA&NO 	  DJJqM"e TA
))+Cs8s299S>****	G 	GP PO Os$   .R,R(2RR	RR(c                 :   t         j                  j                  ddi      5  t        j                  j	                  dd      } | j
                  dk(  sJ t        j                  j	                  dd      }|j
                  dk(  sJ 	 d d d        y # 1 sw Y   y xY w)	Narray.chunk-size128MiB'  r   )r   autorQ   ))r   )  r   r   r   r   iO  r   )   r   i  r   )rB   configrA   r%   r&   r   )r   r   s     r    test_create_with_auto_dimensionsr   w  s    	,h7	8 5II^LAxx<<<<II^F;xx44445 5 5s   A%BBc                     t         j                  j                  dddd      j                  } | j	                  d      sJ t        t        |             dk  sJ y )Nr   r   )r@   )i  r   r   r   )r%   r&   r   rT   
startswithrY   r	   )rT   s    r   
test_namesr     sN    99Aqwv>CCD??8$$$y"$$$r   c                   t        j                  dd      } |        j                  |      }|j                  |j                  k(  sJ |j                  |j                  k(  sJ |j                           | d      } | d      }|j                  |      }|j                  |      }t        ||       |j                  |      }|j                  |      }t        ||       t        j                  t              5  t        ||       d d d         |        j                  d      }|j                  dk(  sJ y # 1 sw Y   1xY w)Nrc   rz   rQ   r   rG   )rG   )
r%   r   permutationrU   r   r0   r   r   r   AssertionError)	r   r   r   r[   rf   r1r2r3r4s	            r   test_permutationr    s   
		"QA%%a(A77agg77aggIIKAA	
q	B	
q	Bb" 
q	B	
q	Bb"	~	& "b 	%%c*A77f	 s   9D66D?c                    t         j                  j                  ddi      5   |        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   z50 MiBr   r       )rB   r   rA   r&   npartitions)r   r   s     r   test_auto_chunksr    s]    	,h7	8 &$$^41==%2%%%%%& & &s   1AA&c                     t         j                  j                  dddd      } t        | |        | j                  dk(  sJ | j                         j                  dk(  sJ y )Nr      r   uint8r   r   )r%   r&   r   r   r   r0   r;   s    r   test_randint_dtyper
    sT    
		!Sr9AaO77g99;'''r   c                    t        j                  t              5 } |        j                  dd       d d d        dt	        j
                        v sJ y # 1 sw Y   #xY w)Nr   float64r	  r   )r   r   	Exceptionr   r9   value)r   infos     r   test_raises_bad_kwargr    sW    	y	! GT))uI)FG c$**o%%%G Gs   AAc                    t        j                  d      } t        j                  j	                  | j                  j                        }|j                  dt        j                        }|j                  t        j                  k(  sJ t        j                  j                  | j                  j                               }|j                  dt        j                        }|j                  t        j                  k(  sJ y )Ncupy)r   )r   r   r   )
r   importorskipr%   r&   r   r   rV   float32r   r'   )r  rsr   s      r   test_randomstate_kwargsr    s    v&D			4;;+B+B		CB
7"**5A77bjj   			t{{668	9B
7"**5A77bjj   r   )<
__future__r   r   r  r   rV   rB   
dask.arrayrW   r%   r   dask.array.utilsr   dask.multiprocessingr   r   
dask.utilsr	   fixturer&   r   r'   r   r   markparametrizePCG64r)   r   r+   r2   r7   r<   r>   rE   rN   r\   r`   rd   rg   rj   rm   rp   rw   r   r   r   r   skipifhasattrr   r   r   r   r   r  r  r
  r  r  r   r   r   <module>r"     s   "    G      & /   		--ryy/D/DEF G 4RYY__bii&9&9"))//&J
KQU  00
X7"$M	BQ
 0d;&9 <&9R4 0d; < 0d;&A <&AR N##,W  #5#5L7B+J5%6&(&	!r   