
    >ie$                    *   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                            dddg          ej                            ddej        j        ej        j        g          d	                         Zej                            dddg          d
             Zej                            dddg          ej                            ddej        j        ej        j        g          ej                            dg de          d                                     Zej                            dddg          d             Zd Zej                            dg d          d             ZdS )    )annotationsN)config)	assert_eqcupybackendnumpyrsc           	        |t           j        j        k    rt           j        nA|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        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	            ||j        dddd	            ||j        ddd	            ||j        dd	            ||j        ddd	            ||j        dd	            ||j        dd	            ||j        ddddd	            ||j        dd	            ||j         dddd	            ||j!        dddd	            ||j"        ddd	            ||j#        ddd	            ||j$        dd	            ||j%        dd	            ||j&        ddd	            ||j'        dd	            ||j(        ddd	           d d d            d S # 1 swxY w Y   d S )Nr   c                l     | |i |}t          |j                  k    sJ t          ||           d S Ntype_metar   funcargskwargsaexpects       Alib/python3.11/site-packages/dask/array/tests/test_cupy_random.pyrnd_testz-test_random_all_RandomState.<locals>.rnd_test   A    D$!&!!AG}}&&&&!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[$$$	ry$	$	$	F		    
 
_g.	/	/ *5 *5Y""r"22!QQq1111b#Aa8888qq333315555q!!A....1aa2222qq3333AAa0000"Aq!!A>>>>!A....1Q////Aa0000s15555 	%q#Aa@@@@(!QQqAAAA!Q!<<<<Aqq3333AAa0000!A....11Q////1Q////!!44441aa::::!A....a15555!QQq1111QQq1111!!A....#!A6666(q;;;;"AAa8888#!A6666!4444U*5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5 *5s    J:MMM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k    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        j        dddd            |t
          j        j        ddd            |t
          j        j        dd            |t
          j        j        ddd            |t
          j        j        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        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            |t
          j        j&        dd            |t
          j        j'        ddd            |t
          j        j(        dd            |t
          j        j)        ddd           d d d            d S # 1 swxY w Y   d S )Nr   c                l     | |i |}t          |j                  k    sJ t          ||           d S 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888#R1Q????$aa::::&!<<<<a15555!QQq9999$aa::::!11Q7777)1a1EEEE"15555#!A6666$1Q7777$c!<<<<fHRY*B	AAaPPPP,a1QGGGG/AAaHHHH'AqqCCCC!1aa::::!11Q7777"15555!!A6666#!A6666"1====!!4444(q;;;;%q!QQqAAAA"15555#Q!<<<<AAa8888"AAa888815555*1====/aBBBB)11Q????*1====%qq;;;;O'< '< '< '< '< '< '< '< '< '< '< '< '< '< '< '< '< '<s   QRRRgenshape)r   r   r    r   r       r   r    rY   r   )idsc           	        |t           j        j        k    rt           j        nA|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        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            d S # 1 swxY w Y   d S )Nr   c                l     | |i |}t          |j                  k    sJ t          ||           d S 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   
 dk%%%		%	%	%	F		    
 
_g.	/	/ < <!+CCFFFt	i##I..1aeA6666r3U1====a8888!%::::153333AquQ7777a8888#Q15CCCCqra@@@@%::::aeA6666AE!4444%2222)a@@@@#QU1====$5;;;;'< < < < < < < < < < < < < < < < < <s    E3H  HHc                `   t          j        d| i          5  t          j                            d          }|                    dd          }t          j                            d          }|                    dd          }t          ||d           d d d            d S # 1 swxY w Y   d S )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8	%%a((!!va!88!Q+..../ / / / / / / / / / / / / / / / / /s   A?B##B'*B'c                     t          j        ddi          5  t          j        dd          } t          j                            t          j                                                                      |           	                                 t          j        t                    5  t          j                                                            |           	                                 d d d            n# 1 swxY w Y   t          j        t                    5  t          j                                                            d          	                                 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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 9Ib###
	bioo//00<<Q??GGIII ].// 	= 	=I!!##//22::<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= ].// 	9 	9I!!##**2..66888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	99 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s\   BF'AC7+F7C;	;F>C;	?FAE+F+E/	/F2E/	3FF
F)rW   rX   rZ   c                   t           j                            t          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                            t          j                                                  }|                    d| d          }t          |j                  t          j        k    sJ t          ||           |j        j	        dt          |           z  k    sJ |j	        | k    sJ d S )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		C	CB


a
((A==DL((((aOOO7=D3u::-----7e
)

 7 7 9 9
:
:CCeA..A==DL((((aOOO7=D3u::-----7e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6dk&=ry?TUVV:5 :5 WV 76:5z VW$5662< 2< 762<j VW$566t{'>	@U VWW"H"H"HdSS#< #< TS XW 76#<L VW$566/ / 76/9 9 9 "C"C"CDD  ED  r   