
    bi$                    p   d dl mZ d dlZej                  j                  Zd dlZd dlm	Z
 d dlmZ d dlmZ  ej                  d      Zej                  j#                  dddg      ej                  j#                  ddej$                  j&                  ej$                  j&                  g      d	               Zej                  j#                  dddg      d
        Zej                  j#                  dddg      ej                  j#                  ddej$                  j,                  ej$                  j,                  g      ej                  j#                  dg de      d                      Zej                  j#                  dddg      d        Zd Zej                  j#                  dg d      d        Zy)    )annotationsN)config)	assert_eqcupybackendnumpyrsc           	     b   |t         j                  j                  k(  rt         j                  nT|t        j                  j                  k(  rt        j                  n&| dk(  rt         j                  nt        j                  fd}t        j                  d| i      5  t        j                  j                  |      } ||j                  dddd	        ||j                  d
ddd	        ||j                  ddd	        ||j                  ddd	        ||j                  dddd	        ||j                  dddd	        ||j                  ddd	        ||j                  ddd	        ||j                   ddddd	        ||j"                  dd	        ||j$                  dd	        ||j&                  dd	        ||j(                  ddd	        ||j*                  dddd	        ||j,                  dddd	        ||j.                  ddddd	        ||j0                  dddd	        ||j2                  ddd	        ||j4                  dd	        ||j6                  ddd	        ||j8                  dd	        ||j:                  dd	        ||j<                  ddddd	        ||j>                  dd	        ||j@                  dddd	        ||jB                  dddd	        ||jD                  ddd	        ||jF                  ddd	        ||jH                  dd	        ||jJ                  dd	        ||jL                  ddd	        ||jN                  dd	        ||jP                  ddd	       d d d        y # 1 sw Y   y xY w)Nr   c                b     | |i |}t        |j                        k(  sJ t        ||       y Ntype_metar   funcargskwargsaexpects       \/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/array/tests/test_cupy_random.pyrnd_testz-test_random_all_RandomState.<locals>.rnd_test   1    $!&!AGG}&&&!Q    array.backendRandomState            sizechunks
         ?))r   randomr   ndarraynpr   setdabetabinomial	chisquareexponentialfgamma	geometricgumbelhypergeometriclaplacelogistic	lognormal	logseriesnegative_binomialnoncentral_chisquarenoncentral_fnormalparetopoissonpowerrayleighrandom_sample
triangularuniformvonmiseswaldweibullzipfstandard_cauchystandard_exponentialstandard_gammastandard_normal
standard_t)r   r	   r   r   s      @r   test_random_all_RandomStaterL      s    
T[[$$$	ryy$$	$	F	
 
_g.	/ *5YY""r"2!QQq1b#Aa8qq315q!!A.1aa2qq3AAa0""Aq!!A>!A.1Q/Aa0s15 	%%q#Aa@((!QQqA!Q!<Aqq3AAa0!A.11Q/1Q/!!!41aa:!A.a15!QQq1QQq1!!A.##!A6((q;""AAa8##!A6!4U*5 *5 *5s    K<N%%N.c           	     
   | dk(  rt         j                  nt        j                  fd}t        j                  d| i      5   |t
        j                  j                  dddd        |t
        j                  j                  d	d
dd        |t
        j                  j                  ddd        |t
        j                  j                  ddd        |t
        j                  j                  dddd        |t
        j                  j                  dddd        |t
        j                  j                  ddd        |t
        j                  j                  ddd        |t
        j                  j                  ddddd        |t
        j                  j                   dd        |t
        j                  j"                  dd        |t
        j                  j$                  dd        |t
        j                  j&                  d
dd       | dk7  r) |t
        j                  j(                  ddgdz  dd        |t
        j                  j*                  dd
dd        |t
        j                  j,                  dddd        |t
        j                  j.                  ddddd        |t
        j                  j0                  dddd        |t
        j                  j2                  ddd        |t
        j                  j4                  dd        |t
        j                  j6                  ddd        |t
        j                  j8                  dd        |t
        j                  j:                  d	dd        |t
        j                  j                  dd        |t
        j                  j<                  dd        |t
        j                  j>                  ddddd        |t
        j                  j@                  dd        |t
        j                  jB                  dddd        |t
        j                  jD                  dddd        |t
        j                  jF                  ddd        |t
        j                  jH                  ddd        |t
        j                  jJ                  dd        |t
        j                  jL                  dd        |t
        j                  jN                  ddd        |t
        j                  jP                  dd        |t
        j                  jR                  ddd       d d d        y # 1 sw Y   y xY w)Nr   c                b     | |i |}t        |j                        k(  sJ t        ||       y r   r   r   s       r   r   z.test_random_all_direct_calls.<locals>.rnd_testV   r   r   r   r   r   r   r    r!   r$   r%      gUUUUUU?   )lowr"   r#   )*r   r'   r(   r   r)   r*   r&   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   multinomialr8   r9   r:   r;   r<   r=   r>   r?   randintr@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   )r   r   r   s     @r   test_random_all_direct_callsrT   O   s   &
 
_g.	/ '<AAa8##R1Q?$$aa:&&!<a15!QQq9$$aa:!!11Q7))1a1E""15##!A6$$1Q7$$c!<fRYY**B	AAaP,,a1QG//AAaH''AqqC!!1aa:!!11Q7""15!!A6##!A6""1=!!!4((q;%%q!QQqA""15##Q!<AAa8""AAa815**1=//aB))11Q?**1=%%qq;O'< '< '<s   TU,,U5genshape)r   r   r    r   r       r   r    rY   r   )idsc           	        |t         j                  j                  k(  rt         j                  nT|t        j                  j                  k(  rt        j                  n&| dk(  rt         j                  nt        j                  fd}t        j                  d| i      5  |r |d      nd }t        j                  j                  |      } ||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d|d        ||j                   dd	|d        ||j"                  d
|d        ||j$                  d|d        ||j&                  d|d        ||j                  |d        ||j(                  |d        ||j*                  d|d        ||j,                  |d       d d d        y # 1 sw Y   y xY w)Nr   c                b     | |i |}t        |j                        k(  sJ t        ||       y r   r   r   s       r   r   z+test_random_all_Generator.<locals>.rnd_test   r   r   r   r   r   r   r    r!   r$   r%   )highr"   r#   )r   r&   default_rngr'   r(   r   r)   r*   r+   r,   r-   r.   r/   r0   r1   r3   integersr7   r=   r>   rH   rI   rJ   )r   rU   rV   r   	generatorrngr   s         @r   test_random_all_Generatorrc      s   
 dkk%%%			%%	%	F	
 
_g.	/ <!CFt	ii##I.1aeA6r3U1=a8!%:153AquQ7a8##Q15Cqra@%:aeA6AE!4%2))a@##QU1=$$5;'< < <s    FH99Ic                @   t        j                  d| i      5  t        j                  j	                  d      }|j                  dd      }t        j                  j	                  d      }|j                  dd      }t        ||d       d d d        y # 1 sw Y   y xY w)Nr   r   rW   r    r!   	processes)	scheduler)r   r)   r*   r&   r_   rJ   r   )r   statexys       r   test_random_Generator_processesrj      s    	_g.	/ / 		%%a(!!va!8		%%a(!!va!8!Q+./ / /s   A3BBc                    t        j                  ddi      5  t        j                  dd      } t        j                  j                  t        j                  j                               j                  |       j                          t        j                  t              5  t        j                  j                         j                  |       j                          d d d        t        j                  t              5  t        j                  j                         j                  d      j                          d d d        d d d        y # 1 sw Y   oxY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r      r    )r#   r$   )r   r)   r*   aranger&   r_   r(   PCG64permutationcomputepytestraisesNotImplementedErrorchoice)rh   s    r   test_cupy_unsupportedru      s    	_f-	. 9IIb#
		biioo/0<<Q?GGI ]]./ 	=II!!#//2::<	= ]]./ 	9II!!#**2.668	99 9	= 	=	9 	99 9s<   B	E#!<E!E#><E:E#E	E#E 	E##E,)rW   rX   rZ   c                   t         j                  j                  t        j                  j                        }|j	                  | d      }t        |j                        t        j                  k(  sJ t        ||       |j                  j                  dt        |       z  k(  sJ |j                  | k(  sJ t         j                  j                  t        j                  j                               }|j	                  d| d      }t        |j                        t        j                  k(  sJ t        ||       |j                  j                  dt        |       z  k(  sJ |j                  | k(  sJ y )Nr   r    r!   )r   g      ?)r*   r&   r   r   r=   r   r   r'   r   rV   lenr_   )rV   r	   rh   rb   s       r   test_random_shapesrx      s   			4;;+B+B		CB


a
(A=DLL(((aO77==D3u:----77e
))

 7 7 9
:CCeA.A=DLL(((aO77==D3u:----77er   )
__future__r   rq   markgpu
pytestmarkr   r(   
dask.arrayarrayr*   daskr   dask.array.utilsr   importorskipr   parametrizer&   r   rL   rT   r_   r   rc   rj   ru   rx    r   r   <module>r      s   " [[__
    &v6" VW$56dkk&=&=ryy?T?TUV:5 W 7:5z VW$562< 72<j VW$56t{{'>'>		@U@U VW"HdS#< T X 7#<L VW$56/ 7/9 "CD Er   