
    Bwg.                       d dl Zd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZ  e e             Zd dddd	d
dd	dddddd	ddd	dg ddddd	ddd	dgZ ej:                  dddg      d        Z G d d      Z G d  d!      Z  G d" d#      Z! G d$ d%      Z" G d& d'      Z# G d( d)      Z$ G d* d+      Z% G d, d-      Z&ejN                  jQ                  ed./       G d0 d1             Z) G d2 d3      Z*ejN                  jW                  d4e      d5        Z,d6 Z-d7 Z.d8 Z/ejN                  jW                  d9d:d:gg      ejN                  jW                  d;ddg      d<               Z0ejN                  jW                  d=d>d?g      d@        Z1ejN                  jW                  d=d>d?g      ejN                  jW                  dAdBdCg      ejN                  jW                  dDejd                  ej6                  g      dE                      Z3dF Z4dG Z5ejN                  jW                  dHdIdJg      dK        Z6y)L    N)	AxisError)LinAlgError)
assert_assert_raisesassert_equalassert_allcloseassert_warnsassert_no_warningsassert_array_equalassert_array_almost_equalsuppress_warningsIS_WASM)	GeneratorMT19937SeedSequenceRandomState
   @bb1636883c2707b51c5b7fc26c6927af4430f2e0785a8c7bc886337f919f9edf	   )
key_sha256pos@ff682ac12bb140f2d72fba8d3506cf4e46817a0db27aae1683867629031d8d55iV  )seedstepsinitialjumpedi$<i8  @16b791a1e04886ccbbb4d448d6ff791267dc458ae599475d08d5cced29d11614i7  @a0110a2cf23b56be0feaed8f787a7fc84bef0cb5623003d75b26bdfa1c18002ci  )i|2iEm:iS43i5  i  @d306cf01314d51bd37892d874308200951a35265ede54d200f1e065004c3e9eai  @0e00ab449f01a5195a83b4aee0dfbc2ce8d46466a640b92e33977d2e42f777f8i  moduleTF)scopeparamsc                     | j                   S N)param)requests    `/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/random/tests/test_generator_mt19937.pyendpointr)   )   s    ==    c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestSeedc                     t        t        d            }t        |j                  d      d       t        t        d            }t        |j                  d      d       y )Nr           D  )r   r   r   integersselfss     r(   test_scalarzTestSeed.test_scalar/   sE    gaj!QZZ%s+gj)*QZZ%s+r*   c                    t        t        t        d                  }t        |j	                  d      d       t        t        t        j                  d                  }t        |j	                  d      d       t        t        dg            }t        |j	                  d      d       t        t        dg            }t        |j	                  d      d       y )Nr   r.   i  r   r/   r0   r1   )r   r   ranger   r2   nparanger3   s     r(   
test_arrayzTestSeed.test_array5   s    geBi()QZZ%s+gbiim,-QZZ%s+gqcl#QZZ%s+gzl+,QZZ%s+r*   c                 b    t        t        d            }t        |j                  d      d       y )Nr      iz)r   r   r   
random_rawr3   s     r(   test_seedsequencezTestSeed.test_seedsequence?   s"    LO$Q\\!_j1r*   c                 X    t        t        t        d       t        t        t        d       y )N      r   	TypeErrorr   
ValueErrorr4   s    r(   test_invalid_scalarzTestSeed.test_invalid_scalarC   s    i$/j'2.r*   c                     t        t        t        dg       t        t        t        dg       t        t        t        g d       y )NrA   rB   )r=           rC   rF   s    r(   test_invalid_arrayzTestSeed.test_invalid_arrayH   s+    i4&1j'B40j'+>?r*   c                 6    t        t        t        t               y r%   )r   rE   r   r   rF   s    r(   test_noninstantized_bitgenz#TestSeed.test_noninstantized_bitgenN   s    j)W5r*   N)	__name__
__module____qualname__r6   r;   r?   rG   rK   rM    r*   r(   r,   r,   .   s!    ,,2/
@6r*   r,   c                       e Zd Zd Zd Zy)TestBinomialc                     t        j                  dd      }dD ]D  }t        t        j	                  d|      dk(         t        t        j	                  ||      |       F y )N   intdtype)r         ?r=   r   )r9   zerosr   randombinomialr   )r4   rZ   ps      r(   test_n_zerozTestBinomial.test_n_zeroS   sR     %( 	AAFOOAq)Q./vua8%@	Ar*   c                 `    t        t        t        j                  dt        j
                         y )Nr=   )r   rE   r[   r\   r9   nanrF   s    r(   test_p_is_nanzTestBinomial.test_p_is_nan\   s    j&//1bff=r*   N)rN   rO   rP   r^   ra   rQ   r*   r(   rS   rS   R   s    A>r*   rS   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestMultinomialc                 4    t         j                  dddg       y )Nd   皙?皙?r[   multinomialrF   s    r(   
test_basiczTestMultinomial.test_basicb   s    3c
+r*   c                 4    t         j                  dg d       y )Nre   )rf   rg           rl   rl   rh   rF   s    r(   test_zero_probabilityz%TestMultinomial.test_zero_probabilitye   s    3 9:r*   c                    t        dt        j                  dd      cxk  xr dk  nc        t        j                  ddd      }t        t        j                  d|k               t        t        j                  |dk               y )NrB      )r   r[   r2   r9   allr4   xs     r(   test_int_negative_intervalz*TestMultinomial.test_int_negative_intervalh   sY    foob"-223OOBA&rQw q2vr*   c           	          ddg}t        t        j                  d|t        j                  d            j
                  d       t        t        j                  d|t        j                  d            j
                  d       t        t        j                  d|t        j                  d            j
                  d       t        t        j                  d|ddg      j
                  d       t        t        j                  d|d      j
                  d       t        t        j                  d|t        j                  d            j
                  d       t        t        t        j                  d|t        d             y )NrY   r=   r=   rU   rU   rU   rU   rU   rU   rU   )
r   r[   ri   r9   uint32shapearrayr   rD   floatr4   r]   s     r(   	test_sizezTestMultinomial.test_sizen   s   #JV''1biil;AA6JV''1biil;AA6JV''1biil;AA6JV''1q!f5;;YGV''1f5;;YGV''1bhhv.>?EE	  	i!3!3QAh	 r*   c                     t        t        t        j                  dddg       t        t        t        j                  dddg       y )Nre   皙?rf   皙?r   rE   r[   ri   rF   s    r(   test_invalid_probz!TestMultinomial.test_invalid_prob|   s2    j&"4"4cC:Fj&"4"4cC:Fr*   c                     t        t        t        j                  dddg       t        t        t        j                  dgdz  ddg       y )NrB   rg   rf   r   r   rF   s    r(   test_invalid_nzTestMultinomial.test_invalid_n   s8    j&"4"4b3*Ej&"4"4rdRi#sLr*   c                 T   t        j                  d      }|t        j                  |dd d         z  }|dd d   }t        t	        d            }|j                  d|      }t        t	        d            }|j                  dt        j                  |            }t        ||       y )Ng      .@r=      ۠iUre   )pvals)r9   r:   sumr   r   ri   ascontiguousarrayr   )r4   r]   r   r[   
non_contigcontigs         r(   test_p_non_contiguousz%TestMultinomial.test_p_non_contiguous   s    IIcN	RVVAaddG_!$Q$7:./''5'9
7:./##Cr/C/CE/J#K:v.r*   c                 (   t        j                  g dt         j                        }||j                         z  }t	        t        d            }d}t        j                  t        |      5  |j                  d|       d d d        y # 1 sw Y   y xY w)N)
Gz?r   &.>r   r   r   r   r   r   r   rW   r   z-[\w\s]*pvals array is cast to 64-bit floatingmatchr=   )
r9   r{   float32r   r   r   pytestraisesrE   ri   )r4   rs   r   r[   r   s        r(   test_multinomial_pvals_float32z.TestMultinomial.test_multinomial_pvals_float32   ss    HH :ACMAEEG7:./@]]:U3 	)q%(	) 	) 	)s   ,BBN)rN   rO   rP   rj   rm   rt   r~   r   r   r   r   rQ   r*   r(   rc   rc   a   s,    ,;  GM/)r*   rc   c                   >   e Zd Zd Zd Zej                  j                  dddg      d        Zej                  j                  dg d      ej                  j                  dddg      ej                  j                  d	g d
      d                      Z	d Z
d Zd Zy)TestMultivariateHypergeometricc                     d| _         y )Ni_ r   rF   s    r(   setup_methodz+TestMultivariateHypergeometric.setup_method   s	    	r*   c                 v   t        t        t        j                  dd       t        t        t        j                  g dd       t        t        t        j                  g dd       t        t        t        j                  g dd       t        t        t        j                  g d       t        t        t        j                  dd	gd
dd       t	        j
                  t        j                        }|j                  }||j                  j                  z  }t        t        t        j                  |dz
  d	gd
dd       y )Nr      )rU   r   r   rB   )rB   rU   r   rU   r=   iɚ;e   rp   	marginalsre   count)
r   rE   r[   multivariate_hypergeometricr9   iinfoint64maxrX   itemsize)r4   
int64_info	max_int64max_int64_indexs       r(   test_argument_validationz7TestMultivariateHypergeometric.test_argument_validation   s     	j&"D"D!	 	j&"D"D	% 	j&"D"D !	% 	j&"D"D	% 	j&"D"D!	 	j&"D"D #&1k	; XXbhh'
NN	#z'7'7'@'@@j&"D"D&,c2Aq'	Cr*   methodr   r   c                    t        t        | j                              }|j                  g dd|      }t	        |g d       |j                  g d|      }t	        |g        |j                  g dd|      }t	        |t        j                  dt
        j                               |j                  g dd|      }t	        |g d       |j                  g d	d
|      }t	        |g d       g d}|j                  |t        |      |      }t	        ||       |j                  g ddd
|      }t	        |g dgd
z         y )Nr   r   r   r   r   r=   sizer   )r=   r   rW   r=   rU   r   )r   r   r   r   )r   r   r   )r=   r=   r   r=   r=   r   r   rp      )	r   r   r   r   r   r9   emptyr   r   )r4   r   r[   rs   colorss        r(   test_edge_casesz.TestMultivariateHypergeometric.test_edge_cases   s*    7499-...y!F.K1i(..r1V.D1b!..r11V.L1bhhvRXX>?..y!F.K1i(..y!F.K1i( ..vs6{6< / >1f%..y"16< / >1yk!m,r*   nsample)      -   7   r   )rp   rU   r   iI c                    t        t        | j                              }t        j                  g d      }|j                  ||||      }t        |t              r|f|j                  z   }n||j                  z   }t        |j                  |       t        |dk\  j                                t        ||k  j                                t        |j                  d      t        j                  ||t                     t        |t              r:|dk\  r4t        |j!                  d      ||z  |j                         z  dd	
       y y y )N)r   rp      r   r   r   rB   axis)
fill_valuerX   順 MbP?{Gzt?)rtolatol)r   r   r   r9   r{   r   
isinstancerV   rz   r   r   rq   r   r   fullr   mean)r4   r   r   r   r[   r   sampleexpected_shapes           r(   test_typical_casesz1TestMultivariateHypergeometric.test_typical_cases   s    7499-./*33FGT;A 4 CdC "Wv||3N!FLL0NV\\>21!!#$6!&&()6::2:.774G3G	IdC TV^ FKKQK/#f,vzz|;!%E3 &4 r*   c                     t        t        | j                              }|j                  g dddd      }t	        j
                  g dg dg dg dg dg      }t        ||       y )Nr   rp   r   r   )rU   r=   rU   r=   r=   r   rU   r   r   r   r   r   r   r9   r{   r   r4   r[   r   expecteds       r(   test_repeatability1z2TestMultivariateHypergeometric.test_repeatability1   sa    7499-.33Iqq;B 4 D88Y&&&&	( )
 	68,r*   c                     t        t        | j                              }|j                  g dddd      }t	        j
                  g dg dg dg dg d	g      }t        ||       y )
Nr      2   r   rp   r   r   )r         )      r   )r         )r      r   r   r   s       r(   test_repeatability2z2TestMultivariateHypergeometric.test_repeatability2  sd    7499-.33L"9:;F 4 H 88\))))	+ ,
 	68,r*   c                     t        t        | j                              }|j                  g dddd      }t	        j
                  g dg dg dg dg d	g      }t        ||       y )
Nr   r   rp   r   r   )rU   r   r   )rp   r   r   )rU   rp   rp   )r=   rp      r   r   s       r(   test_repeatability3z2TestMultivariateHypergeometric.test_repeatability3  sd    7499-.33L"9:;F 4 H 88Y&&&&	( )
 	68,r*   N)rN   rO   rP   r   r   r   markparametrizer   r   r   r   r   rQ   r*   r(   r   r      s    CB [[X'=>- ?-D [[Y8[[X'=>[[V%893 : ? 93,	-
-
-r*   r   c                   $    e Zd Zd Zd Zd Zd Zy)TestSetStatec                 2   d| _         t        t        | j                               | _        | j                  j                  | _        | j                  j
                  | _        | j
                  d   | j
                  d   d   | j
                  d   d   f| _        y )NIbit_generatorstatekeyr   )r   r   r   rgr   r   legacy_staterF   s    r(   r   zTestSetState.setup_method  s{    	GDII./!WW22''--
!ZZ8!ZZ07!ZZ079r*   c                     | j                   j                  d      }| j                  | j                  _        | j                   j                  d      }t	        t        j                  ||k(               y Nr   r   )r   standard_normalr   r   r   r9   rq   )r4   oldnews      r(   test_gaussian_resetz TestSetState.test_gaussian_reset(  sW    gg%%1%-#':: gg%%1%-scz"#r*   c                 8   | j                   j                          | j                  j                  }| j                   j                  d      }|| j                  _        | j                   j                  d      }t	        t        j                  ||k(               y r   )r   r   r   r   r   r9   rq   )r4   r   r   r   s       r(    test_gaussian_reset_in_media_resz-TestSetState.test_gaussian_reset_in_media_res/  sv     	!""((gg%%1%-#( gg%%1%-scz"#r*   c                 <    | j                   j                  dd       y NrY   )r   negative_binomialrF   s    r(   test_negative_binomialz#TestSetState.test_negative_binomial:  s     	!!#s+r*   N)rN   rO   rP   r   r   r   r   rQ   r*   r(   r   r     s    9$	$,r*   r   c                      e Zd Zej                  Zeej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  g	Zd Zd Zd Zd Zd Zd Zd Zd Zd	 Zd
 Zd Zej:                  j=                  dd ej>                  g d      fd ej>                  g d      fd ej>                  g d      fg      d        Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'ej:                  jP                  ej:                  j=                  dddej                  dfddej                  d fd!d"ej                  d#fd$d%ej                  d&fg      d'               Z)y())TestIntegersc                 H    t        t        | j                  d|t               y Nr=   r)   rX   )r   rD   rfuncr|   )r4   r)   s     r(   test_unsupported_typez"TestIntegers.test_unsupported_typeG  s    iQOr*   c           	      B   | j                   D ]  }|t        u rdnt        j                  |      j                  }|t        u rdn!t        j                  |      j
                  dz   }|r|dz
  n|}t        t        | j                  |dz
  |||       t        t        | j                  ||dz   ||       t        t        | j                  ||||       t        t        | j                  dd||       t        t        | j                  |dz
  g|||       t        t        | j                  |g|dz   g||       t        t        | j                  |g|g||       t        t        | j                  ddg||       t        t        | j                  |dz   g|g||        y Nr   rU   r=   r   	itypeboolr9   r   minr   r   rE   r  r4   r)   dtlbndubnds        r(   test_bounds_checkingz!TestIntegers.test_bounds_checkingJ  sd   ** 	7Bd
1(8(8Dd
1(8(81(<D'4!8TD*djj$(D#+27*djj$q#+27*djj$#+27*djj!Q "$ *djj4!8*d#+27*djj4&4!8*#+27*djj4&4&#+27*djj!aS#+27*djj46(TF#+27+	7r*   c           	         | j                   D ]  }|t        u rdnt        j                  |      j                  }|t        u rdn"t        j                  |      j
                  | z   }t        t        | j                  |dz
  gdz  |gdz  ||       t        t        | j                  |gdz  |dz   gdz  ||       t        t        | j                  ||gdz  ||       t        t        | j                  dgdz  d||        y r  r  r	  s        r(   test_bounds_checking_arrayz'TestIntegers.test_bounds_checking_arrayc  s    ** 	7Bd
1(8(8Dd
1(8(8L(ID*djj4!8*q.4&1*#+27*djj4&1*!8*q.82G*djj$
#+27*djj1#'1#+27	7r*   c           
         | j                   D ]I  }|t        u rdnt        j                  |      j                  }|t        u rdn!t        j                  |      j
                  dz   }|r|dz
  n|}| }|dz
  }t        | j                  |||z   d||      |       t        | j                  |g||z   d||      |       |}t        | j                  |||z   d||      |       t        | j                  |||z   gd||      |       ||z   dz  }t        | j                  |||z   d||      |       t        | j                  |g||z   gd||      |       L y )Nr   rU   r=   r.   r   r)   rX   r  r  r9   r   r  r   r   r  )r4   r)   r
  r  r  is_opentgts          r(   test_rng_zero_and_extremesz'TestIntegers.test_rng_zero_and_extremesq  s   ** 	Bd
1(8(8Dd
1(8(81(<D'4!8TD"lG(CCwT-5R $ ABEGSE3=t-5R $ ABEG CCwT-5R $ ABEGC#-t-5R $ ABEG $;1$CCwT-5R $ ABEGSEC'M?)- $ L+	r*   c           	         d}| j                   D ]  }|t        u rdnt        j                  |      j                  }|t        u rdn!t        j                  |      j
                  dz   }|r|dz
  n|}|dz
  }t        | j                  |g|dz   g||      |       t        | j                  |g|z  |dz   g|z  |      |       t        | j                  |g|z  |dz   g|z  ||      |       |}t        | j                  |g|dz   g||      |       t        | j                  |g|z  |dz   g|z  |      |       t        | j                  |g|z  |dz   g|z  ||      |       ||z   dz  }t        | j                  |g|dz   g||      |       t        | j                  |g|z  |dz   g|z  |      |       t        | j                  |g|z  |dz   g|z  ||      |        y )Nr.   r   rU   r=   r   rX   rW   r  )r4   r)   r   r
  r  r  r  s          r(    test_rng_zero_and_extremes_arrayz-TestIntegers.test_rng_zero_and_extremes_array  sI   ** 	KBd
1(8(8Dd
1(8(81(<D'4!8TD(CSEC!G9)-R $ 9:=?sQwi$.b $ :;>@sQwi$.T $ EFIK CSEC!G9)-R $ 9:=?sQwi$.b $ :;>@sQwi$.T $ EFIK $;1$CSEC!G9)-R $ 9:=?sQwi$.b $ :;>@sQwi$.T $ EFIK5	Kr*   c                 ^   | j                   D ]v  }|t        u rdnt        j                  |      j                  }|t        u rdn!t        j                  |      j
                  dz   }|r|dz
  n|}	 | j                  ||||       x y # t        $ r}t        dt        |      z        d }~ww xY wNr   rU   r=   r   zMNo error should have been raised, but one was with the following message:

%s
r  r  r9   r   r  r   r  	ExceptionAssertionErrorstrr4   r)   r
  r  r  es         r(   test_full_rangezTestIntegers.test_full_range  s     ** 
	@Bd
1(8(8Dd
1(8(81(<D'4!8TD@

4
C
	@  @$ &68;A&? @ @@s   /B	B,B''B,c                 h   | j                   D ]{  }|t        u rdnt        j                  |      j                  }|t        u rdn!t        j                  |      j
                  dz   }|r|dz
  n|}	 | j                  |gdz  |g||       } y # t        $ r}t        dt        |      z        d }~ww xY wr  r  r  s         r(   test_full_range_arrayz"TestIntegers.test_full_range_array  s     ** 
	@Bd
1(8(8Dd
1(8(81(<D'4!8TD@

D6A:v
K
	@  @$ &68;A&? @ @@s   /B	B1B,,B1c           	         t        t                     }| j                  dd  D ]Z  }dD ]S  }| j                  d||z
  d||      }t	        |j                         |k         t	        |j                         dk\         U \ | j                  dd|z
  d|t              }t	        |j                         dk         t	        |j                         dk\         y )Nr=   )r   r      rU   i   r  r   )r   r   r  r  r   r   r  r  )r4   r)   r[   r
  r  valss         r(   test_in_bounds_fuzzz TestIntegers.test_in_bounds_fuzz  s    79%**QR. 	)B" )zz!TH_7+32 " ?
T)*
a(	)	) zz!Q\( $  &
Q
a r*   c                 *   | j                   D ]  }|t        u rdnt        j                  |      j                  }|t        u rdn!t        j                  |      j
                  dz   }|r|dz
  n|}d}t        t        d            }|j                  |||||      }t        t        d            }|j                  |g|g|||      }t        t        d            }|j                  |g|z  |g|z  |||      }	t        ||       t        ||	        y )Nr   rU   r=   r.     r  
r  r  r9   r   r  r   r   r   r2   r   )
r4   r)   r
  r  r  r   r[   scalarscalar_arrayr{   s
             r(   test_scalar_array_equivz$TestIntegers.test_scalar_array_equiv  s   ** 	.Bd
1(8(8Dd
1(8(81(<D'4!8TDDwt}-F__T4dX&( % *F wt}-F!??D6D6/7r + CL wt}-FOOTFTMD6#4$*. $ MEv|4vu-%	.r*   c           
         dddddddddd	}| j                   dd  D ]  }t        t        d            }t        j                  d	k(  r|j                  d
d|z
  d||      }n'|j                  d
d|z
  d||      j                         }t        j                  |      j                         }t        |t        j                  |      j                     |k(          t        t        d            }|j                  d
d|z
  d|t              j                  t        j                         }t        j                  |      j                         }t        |t        j                  t              j                     |k(         y )N@053594a9b82d656f967c54869bc6970aa0358cf94ad469c81478459c6a90eee3@54de9072b6ee9ff7f20b58329556a46a447a8a29d67db51201bf88baa6e4e5d4@d3a0d5efb04542b25ac712e50d21f39ac30f312a5052e9bbb1ad3baa791ac84b@14e224389ac4580bfbdccb5697d6190b496f91227cf67df60989de3d546389b1@0e203226ff3fbbd1580f15da4621e5f7164d0d8d6b51696dd42d004ece2cbec1)	r  int16int32r   int8uint16ry   uint64uint8r=   r)  littler   r   r.   r  rU   )r  r   r   sys	byteorderr2   byteswaphashlibsha256	hexdigestr   r9   rX   namer  viewr6  )r4   r)   r  r
  r[   valress          r(   test_repeatabilityzTestIntegers.test_repeatability  sa    \[[[[[[[[] **QR. 	3Bwt}-F }}(ooaXD8') & + ooaXD8') & ++38:  ..%//1CC))*c12	3 74=)ooaXD8#  %%)T"''] 	nnS!++-BHHTN''(C/0r*   c                 f   | j                   D ]!  }|t        t        j                  fv rdnt        j                  |      j                  }|t        t        j                  fv rdn!t        j                  |      j
                  dz   }|r|dz
  n|}t        t        d            }|j                  ||d||      }t        t        d            }|j                  |gdz  |||      }t        ||       t        t        d            }|j                  |gdz  |gdz  ||      }t        ||       $ y )Nr   rU   r=   r)  r.   r  r   r*  )r4   r)   r
  r  r  r[   rC  val_bcs           r(   test_repeatability_broadcastingz,TestIntegers.test_repeatability_broadcasting  s   ** 	,BtRWWo-1288B<3C3CDtRWWo-1288B<3C3Ca3GD'4!8TD wt}-F//$4(#% " 'C wt}-F__dVd]D8&( % *F sF+wt}-F__dVd]TFTM)1 % =F sF+)	,r*   zbound, expectedr0   )iui,YQiXgi$#Pl   bA i{El   /Yi rJ   )ui,YQXgi%#Pl   bA i|El   0Yi        )rI  rJ  l   bA l   1Yi i{,miuHl   HM c                     d t        |      fD ]<  }t        t        d            }|j                  ||      }t	        |||n|d          > y )Nr)  r   r   )lenr   r   r2   r   )r4   boundr   r   r[   rs   s         r(   !test_repeatability_32bit_boundaryz.TestIntegers.test_repeatability_32bit_boundary'  sS     3x=) 	KDwt}-FD1A(8HhqkJ	Kr*   c           
      &   t        j                  g dg dg dgg dg dg dgg dg dg d	gg d
g dg dgg dg dg dgg      }dD ]E  }t        t        d            }|j	                  dgdgdggg d|      }t        |||n|d          G y )N)i
`l   Y/ i0b)i)H{TiP-iTq)l   C iZ'l   !g )l   k40 l   n2c l   DBJ )i|(iy+l   _&A )ip@GiG^l   J|xK )l   
f l   Dmv l   E"g )i>{l   wT2L iJQ)iQ//itLol   k )i\siJi)i=l   }D l   E9l )l   
+x i#Jl   b )i0i7Ol   rn )ixiiAi.t)l   q/q i;-/i)N)rp   r   r   i90  rB   r   r=   )r0   rJ   rK  r   )r9   r{   r   r   r2   r   )r4   desiredr   r[   rs   s        r(   .test_repeatability_32bit_boundary_broadcastingz;TestIntegers.test_repeatability_32bit_boundary_broadcasting6  s    ((AAAC BAAC BAAC BAAC BAACD E & 	ODwu~.F"sQC 0 =%)   +A qT-='71:N	Or*   c           
      f   t         j                  dddz  fdddft         j                  di}|D ]  }||   D ]t  }|\  }}||z
  }t        j                  |gdz  g      }t        j                  |gdz        }t	        t
        t        j                  ||||	       t	        t
        t        j                  ||||	       t	        t
        t        j                  ||||	       t	        t
        t        j                  ||||	       t        j                  |gdz  gt        
      }	t        j                  |gdz  t        
      }
t	        t
        t        j                  |	|||	       t	        t
        t        j                  ||
||	       t	        t
        t        j                  |	|
||	       w  y )Nr   rU   A   )rB               r   r   r   r   ))r   l            )l         rU  rV  rW  )        rX  r   r   rW   )	r9   r8  r   r{   r   rE   r[   r2   object)r4   r)   configsrX   configlowhighlow_ahigh_alow_ohigh_os              r(   &test_int64_uint64_broadcast_exceptionsz3TestIntegers.test_int64_uint64_broadcast_exceptionsM  sn   991b5z;H88 45  	>E!%. >"	Th3%(,4&2+.j&//3'/u>j&//5$'/u>j&//3'/u>j&//5&'/u> 3%(6:4&2+V<j&//5$'/u>j&//3'/u>j&//5&'/u>)>	>r*   c                    t         j                  }t        j                  t         j                        j                  }t        j                  t        j                  t         j                        j                        }t        j                  t        j                  t         j                        j                  dz   |z
        }t
        j                  ||||      }t        ||       y r   )r9   r   r   r   r8  r[   r2   r   )r4   r)   r
  r  r  r  actuals          r(   test_int64_uint64_corner_casez*TestIntegers.test_int64_uint64_corner_casei  s     XXhhrxx $$xx*../yy"((+//!3h>? thbIVS!r*   c                    | j                   D ]  }|t        u rdnt        j                  |      j                  }|t        u rdn!t        j                  |      j
                  dz   }|r|dz
  n|}|t        u rt        j                  n|}| j                  ||||      }t        |j                  |        t        t        fD ]  }|t        u rdnt        j                  |      j                  }|t        u rdn!t        j                  |      j
                  dz   }|r|dz
  n|}| j                  ||||      }t        |d      rJ t        t        |      |        y )Nr   rU   r=   r   rX   )r  r  r9   r   r  r   r  r   rX   rV   hasattrtyper4   r)   r
  r  r  r   s         r(   test_respect_dtype_singletonz)TestIntegers.test_respect_dtype_singleton  s%   ** 	+Bd
1(8(8Dd
1(8(81(<D'4!8TD$JBBZZdXRZHFr*	+ + 	+Bd
1(8(8Dd
1(8(81(<D'4!8TD ZZdXRZHFvw///fr*	+r*   c                    | j                   D ]  }|t        u rdnt        j                  |      j                  }|t        u rdn!t        j                  |      j
                  dz   }|r|dz
  n|}|t        u rt        j                  n|}| j                  |g|g||      }t        |j                  |       | j                  |gdz  |gdz  ||      }t        |j                  |        y r  )	r  r  r9   r   r  r   r  r   rX   ri  s         r(   test_respect_dtype_arrayz%TestIntegers.test_respect_dtype_array  s    ** 
	+Bd
1(8(8Dd
1(8(81(<D'4!8TD$JBBZZZLFr*ZZ
TFQJ&(   *Fr*
	+r*   c                    | j                   D ]  }| j                  ddd||      }|j                  dk(  sJ |j                  |k(  sJ | j                  ddd||      j                  dk(  sJ t	        t
        j                  ddd      j                  d       t	        t
        j                  ddd      j                  d       t	        t
        j                  ddd      j                  d        y )Nr   r   r   r   r   r   r   r   )r  r  rz   rX   r   r[   r2   )r4   r)   r
  r   s       r(   test_zero_sizezTestIntegers.test_zero_size  s    ** 		FBZZ1i("ZMF<<9,,,<<2%%%::aa($&  ((-6 6 6AI>DD"$Ca8>>ERa8>>E		Fr*   c                     t         j                  dk(  rdnd}t        j                  t              5  t
        j                  ddd|       d d d        y # 1 sw Y   y xY w)Nbigz<i4z>i4r      r   r  )r;  r<  r   r   rE   r[   r2   )r4   other_byteord_dts     r(   test_error_byteorderz!TestIntegers.test_error_byteorder  sO    $'MMU$:5]]:& 	EOOAs3COD	E 	E 	Es   AAzsample_size,high,dtype,chi2maxi@KL rp   g     @_@r   g     b@i i	  g     ȩ@i  g     d@c                     t         j                  |||      }t        j                  |d      \  }}||z  }||z
  dz  |z  j	                         }	|	|k  sJ y )Nr  T)return_countsrU   )r[   r2   r9   uniquer   )
r4   sample_sizer]  rX   chi2maxsamplesvaluescountsr   chi2s
             r(   $test_integers_small_dtype_chisquaredz1TestIntegers.test_integers_small_dtype_chisquared  s_     //$[/F7$?%("Q&1668g~~r*   N)*rN   rO   rP   r[   r2   r  r  r9   r6  r9  r4  r7  r5  ry   r   r8  r  r  r  r  r  r  r!  r#  r'  r-  rE  rH  r   r   r   r{   rO  rR  rb  re  rj  rl  rq  rv  slowr  rQ   r*   r(   r   r   @  s   OOE 277BHHbhh		XXryy"((BII7EP7274K>@@! .*!1F,. [[
XRXX C D 
E
 ? @ 
A
XRXX C D 
E		FKKO.>8".+*+FE [[[[=
1bggu	%
1bhh	&
D"((F	+
D"))V	,	
 r*   r   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
ej                  j                  d	ej                  ej                   fej"                  ej$                  fg      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!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j                  j                  d%e.e/g      ej                  j                  d&d' ej`                  g d(g d)g      fd* ej`                  g d+g d,g      fd- ej`                  g d.g d/g      fg      d0               Z1d1 Z2d2 Z3ej                  j                  d3d4d5g      d6        Z4d7 Z5d8 Z6d9 Z7d: Z8d; Z9d< Z:d= Z;d> Z<d? Z=d@ Z>ej                  j~                  dA        Z@ej                  j                  dBg dCg dDg dEg dFg dGg dHdIgg dJg      dK        ZAdL ZBdM ZCdN ZDdO ZEdP ZFdQ ZGdR ZHdS ZIdT ZJdU ZKdV ZLdW ZMdX ZNdY ZOdZ ZPd[ ZQd\ ZRej                  j                  d] ej                  dId^      d_ej                  d`g      da        ZUdb ZVej                  j                  eXdcd      ej                  j                  deg df      dg               ZYej                  j                  dhd*gdiggfdjgd-ggfg      dk        ZZej                  j                  deg df      dl        Z[dm Z\dn Z]do Z^dp Z_dq Z`dr Zads Zbdt Zcdu Zddv Zedw Zfdx Zgdy Zhdz Zid{ Zjd| Zkd} Zld~ Zmd Znd Zod Zpd Zqd Zrd Zsd Ztd Zud Zvd Zwd Zxd Zyd Zzd Z{d Z|d Z}d Z~d Zd Zej                  j                  dddg      d        Zej                  j                  ddej                   dej                  dg      ej                  j                  dg d      d               Zd Zd Zd Zd Zy')TestRandomDistc                     d| _         y )Nr   r   rF   s    r(   r   zTestRandomDist.setup_method  s	    	r*   c                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||       y )Nc   r   rU   r   )   %   ir   r   r   r2   r9   r{   r   r4   r[   rd  rQ  s       r(   test_integerszTestRandomDist.test_integers  sT    7499-.bv6((S#JR3*=>67+r*   c                     t        t        | j                              }|j                  dddt        j
                        }t	        j                  ddgddgd	d
ggt        j
                        }t        ||       y )Nr   r  r  r  r      F   D   r   r  rW   )r   r   r   r2   r9   ry   r{   r   r  s       r(   test_integers_maskedz#TestRandomDist.test_integers_masked  sb     7499-.BV299E((QGb"X2w7ryyI67+r*   c                     t        t        | j                              }|j                  dddd      }t	        j
                  ddgdd	gd
dgg      }t        ||       y )Nr  r  r  T)r   r)   r  r  r  &   r  ir  r  s       r(   test_integers_closedz#TestRandomDist.test_integers_closed  sV    7499-.bvE((S#J"b	C:>?67+r*   c                     t         j                  t        j                  d      j                  t        j                  d      j                  d      }t        j                  d      j                  }t        ||       y )NlTr)   )r[   r2   r9   r   r   r   )r4   rd  rQ  s      r(   test_integers_max_intz$TestRandomDist.test_integers_max_int  sY     #!2!2BHHSM4E4E*. ! 0 ((3-##VW%r*   c                 8   t        t        | j                              }|j                  d      }t	        j
                  ddgddgddgg      }t        ||d	       t        t        | j                              }|j                         }t        ||d
   d	       y )Nr  gG0Ը?gæ?g2?gu	A?gH
>H?g;dE?r   decimalrW  r   r   r   r[   r9   r{   r   r  s       r(   test_randomzTestRandomDist.test_random  s    7499-.v&((.0AB.0AB.0ABD E 	"&'2>7499-.!&'$-Dr*   c                     t        t        | j                              }|j                  d      }t	        j
                  ddgddgddgg      }t        ||d	       y )
Nr  CԸ?gP?gtX?g81
A?grO>H?g88dE?r   r  r  r  s       r(   test_random_floatz TestRandomDist.test_random_float  s[    7499-.v&((Y4'4'46 7 	"&'1=r*   c                     t        t        | j                              }|j                  t        j
                        }d}t        ||d       y )NrW   r  r   r  )r   r   r   r[   r9   r   r   r  s       r(   test_random_float_scalarz'TestRandomDist.test_random_float_scalar  s:    7499-.RZZ0!&'1=r*   zdtype, uint_view_typec                     t        t        | j                              }|j                  d|      }t	        j
                  |j                  |      dz        }d|cxk  rdk  sJ  J y )Nr   rW   r=   i$^  i,e  )r   r   r   r[   r9   count_nonzerorB  )r4   rX   uint_view_typer[   r   num_ones_in_lsbs         r(   test_random_distribution_of_lsbz.TestRandomDist.test_random_distribution_of_lsb	  sb     7499-.vU3**6;;~+F+JK ......r*   c                 D    t        t        t        j                  d       y )Nr5  rW   )r   rD   r[   rF   s    r(   test_random_unsupported_typez+TestRandomDist.test_random_unsupported_type  s    ig>r*   c                     t        t        | j                              }|j                  dd      }t	        j
                  g dt        j                        }t        ||       y )Nr   )r   r   rU   rU   rW   r   r   r   choicer9   r{   r   r   r  s       r(   test_choice_uniform_replacez*TestRandomDist.test_choice_uniform_replace  sC    7499-.q!$((<rxx867+r*   c                     t        t        | j                              }|j                  ddg d      }t	        j
                  g dt        j                        }t        ||       y )Nr   )皙?r  皙?r  r]   )r   r=   r   r=   rW   r  r  s       r(   test_choice_nonuniform_replacez-TestRandomDist.test_choice_nonuniform_replace  sH    7499-.q!';<((<rxx867+r*   c                 Z   t        t        | j                              }|j                  ddd      }t	        j
                  g dt        j                        }t        ||       |j                  dddd      }t	        j                  dt        j                        }t        ||       y )Nr   r   Freplacer   rW   )r  shuffle)	r   r   r   r  r9   r{   r   r   r:   r  s       r(   test_choice_uniform_noreplacez,TestRandomDist.test_choice_uniform_noreplace$  s{    7499-.q!U3((9BHH567+q!UEB))ARXX.67+r*   c                     t        t        | j                              }|j                  dddg d      }t	        j
                  g dt        j                        }t        ||       y )Nr   r   F)r  333333?rY   r  r  r]   )r   rU   r   rW   r  r  s       r(    test_choice_nonuniform_noreplacez/TestRandomDist.test_choice_nonuniform_noreplace-  sJ    7499-.q!U6JK((9BHH567+r*   c                     t        t        | j                              }|j                  g dd      }t	        j
                  g d      }t        ||       y )N)abcdr   )r  r  r  r  r   r   r   r  r9   r{   r   r  s       r(   test_choice_nonintegerz%TestRandomDist.test_choice_noninteger3  s?    7499-.3Q7((/067+r*   c                     t        t        | j                              }|j                  ddgddgddgddggd      }t	        j
                  ddgddgddgg      }t        ||       y )	Nr   r=   rU   r   r   rp   r   r   r  r  s       r(   )test_choice_multidimensional_default_axisz8TestRandomDist.test_choice_multidimensional_default_axis9  si    7499-.AAAA?C((QFQFQF3467+r*   c                     t        t        | j                              }|j                  ddgddgddgddggdd	      }t	        j
                  dgdgdgdgg      }t        ||       y )
Nr   r=   rU   r   r   rp   r   r   r   r  r  s       r(   (test_choice_multidimensional_custom_axisz7TestRandomDist.test_choice_multidimensional_custom_axis?  sk    7499-.AAAA?K((QC!qcA3/067+r*   c           	      :   t         j                  }t        t        |dd       t        t        |dd       t        t        |g d       t        t        |g ddddgddgg       t        t        |ddgdg d	       t        t        |ddgdd
dg       t        t        |ddgdddg       t        t        |g ddd       t        t        |g ddd       t        t        |g ddd       t        t        |g ddd       t        t        |g dddg d       y )NrB   r         @)r=   rU   r   r         ?r  r=   rU   )r  r  rf   r   r   r  r   r   Fr  rI   )rB   )rB   r=   )r=   r   r   r  )r[   r  r   rE   )r4   r   s     r(   test_choice_exceptionsz%TestRandomDist.test_choice_exceptionsE  s    j&"a0j&"a0j&"a0j&,d|4	6j&1a&!Gj&1a&!T{Cj&1a&!SzBj&)QFj&)RGj&)UEJj&)WeLj&)Q#y	2r*   c           
      
   ddg}t        t        j                  t        j	                  dd                   t        t        j                  t        j	                  dd                   t        t        j                  t        j	                  dd|                   t        t        j                  t        j	                  dd|                   t        t        j                  t        j	                  ddgd                   t        t        j	                  d gd      d u        t        j
                  ddg      }t        j                  dt        	      }||d
<   t        t        j	                  |d      |u        t               }t        t        j                  t        j	                  d|d                    t        t        j                  t        j	                  d|d                    t        t        j                  t        j	                  d|d|                    t        t        j                  t        j	                  d|d|                    t        t        j                  t        j	                  ddg|d                    t        t        j	                  d g|d      j                  d
k(         t        j
                  ddg      }t        j                  dt        	      }||d
<   t        t        j	                  ||d      j                         |u        d}g d}t        t        j	                  d|d      j                  |       t        t        j	                  d|d      j                  |       t        t        j	                  d|d|      j                  |       t        t        j	                  d|d|      j                  |       t        t        j	                  t        j                  d      |d      j                  |       t        t        j                  d
d
d      j                  d       t        t        j                  d
dd
      j                  d       t        t        j                  ddd
      j                  d       t        t        j	                  d
d
      j                  d       t        t        j	                  g d      j                  d       t        t        j	                  ddgd      j                  d       t        t         t        j                  g d       y )Nr  r   rU   Tr  Fr  r=   rW   r   r   )r  r  r  r  r  rf   r   rn  r   ro  rp  r   r  r  )r   r9   isscalarr[   r  r{   r   rY  tuplendimitemr   rz   r:   r2   r   rE   )r4   r]   r  arrr5   s        r(   test_choice_return_shapez'TestRandomDist.test_choice_return_shapeW  s   #JFMM!TM:;<FMM!UM;<=FMM!TQM?@AFMM!UaM@ABFMM1a&$M?@Atfd3t;<HHaVhhq'Ac40A56 GBKKaD ABBCBKKaE BCCDBKKaDA FGGHBKKaEQ GHHIBKKq!fa FGGHtfa6;;q@AHHaVhhq'Ac1d388:a?@ *V]]1a]6<<a@V]]1a]7==qAV]]1a];AA1EV]]1a!]<BBAFV]]299Q<D]AGGK 	V__Q	_:@@)LV__Q!_4::DAV__R!_4::DAV]]11]-33T:V]]2D]177>V]]C:I]>DD	 j&--R8r*   c                 |    t        j                  g d      }g d}t        t        t        j
                  ||       y )N)*   r=   rU   )NNNr  )r9   r{   r   rE   r[   r  )r4   r  r]   s      r(   test_choice_nan_probabilitiesz,TestRandomDist.test_choice_nan_probabilities  s'    HHZ j&--a8r*   c           
      b   t        j                  d      dz  }d|dd d<   t        t        | j                              }|j                  dd|d d d         }t        t        | j                              }|j                  ddt        j                  |d d d               }t        ||       y )Nr   rp   r  r=   rU   r   r  )r9   onesr   r   r   r  r   r   )r4   r]   r[   r   r   s        r(   test_choice_p_non_contiguousz+TestRandomDist.test_choice_p_non_contiguous  s    GGBK!O!$Q$7499-.]]1a1SqS6]2
7499-.q!r';';AccF'CD:v.r*   c                    t        j                  d      dz  }t        j                  dd      }|j                  t         j
                  k(  sJ t        j                  ddd      }|j                  t         j
                  k(  sJ t        j                  dd|      }|j                  t         j
                  k(  sJ t        j                  dd|d      }|j                  t         j
                  k(  sJ y )Nr   g      @rU   Fr  r  )r]   r  )r9   r  r[   r  rX   r   )r4   r]   rd  s      r(   test_choice_return_typez&TestRandomDist.test_choice_return_type  s    GGAJOq!$||rxx'''q!U3||rxx'''q!q)||rxx'''q!q%8||rxx'''r*   c                 N   d}t        t        | j                              }|j                  ddd      }t        j
                  dk7  r|j                         }t        j                  |j                  t        j                              j                         }t        ||k(         y )N@4266599d12bfcfb815213303432341c06b4349f5455890446578877bb322e222'  rw  Fr  r:  )r   r   r   r  r;  r<  r=  r>  r?  rB  r9   r6  r@  r   )r4   choice_hashr[   rd  rD  s        r(   test_choice_large_samplez'TestRandomDist.test_choice_large_sample  sw    X7499-.udE:==H$__&FnnV[[12<<>s"#r*   c                 v   t        t        | j                              }t        |j	                  g dd      t        j                  d      d       t        |j	                  g dgd      g d       t        |j	                  dggd      dgd       t        |j	                  dggdd      dgd       y )Nr   rQ   r   r=   T)strict)r   r   )r   r   r   r   r  r9   r{   r4   r[   s     r(   "test_choice_array_size_empty_tuplez1TestRandomDist.test_choice_array_size_empty_tuple  s    7499-.6===<bhhqk"&	(6==)2=>	J6==1#R=81#dK6==1#Ra=@1#"&	(r*   c                 ~    t        t        | j                              }|j                  d      }d}t	        ||       y )Nr   s
   	8%)r   r   r   bytesr   r  s       r(   
test_byteszTestRandomDist.test_bytes  s2    7499-.b!5VW%r*   c                     d d d d d d d d d	 d
 d fD ]S  }t        t        | j                              } |g d      }|j                  |       |} |g d      }t	        ||       U y )Nc                 ,    t        j                  g       S r%   )r9   r{   rs   s    r(   <lambda>z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rxx| r*   c                     | S r%   rQ   r  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    q r*   c                 f    t        j                  |       j                  t         j                        S r%   )r9   asarrayastyper6  r  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BGG< r*   c                 f    t        j                  |       j                  t         j                        S r%   )r9   r  r  r   r  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BJJ? r*   c                 f    t        j                  |       j                  t         j                        S r%   )r9   r  r  	complex64r  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BLLA r*   c                 R    t        j                  |       j                  t              S r%   )r9   r  r  rY  r  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33F; r*   c                 0    | D cg c]  }||f c}S c c}w r%   rQ   rs   is     r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    21A2 2s   c                 V    t        j                  | D cg c]  }||g c}      S c c}w r%   )r9   r  r  s     r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s!    rzz1*=aAq6*=> *=s   &c                 D    t        j                  | | g      j                  S r%   )r9   vstackTr  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    ryy!Q022 r*   c                     t        j                  | D cg c]  }||f c}dt        fdt        fg      j                  t         j                        S c c}w )Nr  r  )r9   r  rV   rB  recarrayr  s     r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sE    

A+>qQF+>-0#Jc
+C!E!%bkk!2 +>s   Ac                     t        j                  | D cg c]  }||f c}dt        dfdt         j                  dfg      S c c}w )Nr  r=   r  )r9   r  rY  r5  r  s     r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sB    rzz1*=aAq6*=,/+>,/4+@+B C *=s   A
r=   rU   r   r   rp   r   r   r   r   r   
r   r=   r   r   r   rp   r   r   rU   r   )r   r   r   r  r   )r4   convr[   alistrd  rQ  s         r(   test_shufflezTestRandomDist.test_shuffle  s     , <?A;2>24CD 	0D" wtyy12F78ENN5!F9:Gvw/-	0r*   c                    t        t        | j                              }t        j                  d      j                  d      }|j                  |d       t        j                  g dg dg dg dg      }t        ||       t        t        | j                              }t        j                  d      j                  d      }|j                  |d	       t        ||       y )
Nr%  r   r   r=   r   r   r   r=   rU   r   r   rp   r   r      r   r   r   r   r   r   rB   )	r   r   r   r9   r:   reshaper  r{   r   r  s       r(   test_shuffle_custom_axisz'TestRandomDist.test_shuffle_custom_axis  s    7499-.2&&v.vA&((,,,,. / 	67+7499-.2&&v.vB'67+r*   c                    t        t        | j                              }t        j                  g       j                  d      }dD ]E  }t        j                  g       j                  d      }|j                  ||       t        ||       G y )N)r   r   )r   r=   r   )r   r   r   r9   r{   r  r  r   )r4   r[   rQ  r   rd  s        r(   test_shuffle_custom_axis_emptyz-TestRandomDist.test_shuffle_custom_axis_empty  sn    7499-.((2,&&v. 	0DXXb\))&1FNN6N-vw/	0r*   c                 Z   t        j                  d      j                  dd      }|j                         }t	        t        | j                              }|j                  |d       t	        t        | j                              }|j                  |j                         t        ||       y )Nr   rU   r   r=   r   )
r9   r:   r  copyr   r   r   r  r  r   )r4   y1y2r[   s       r(   test_shuffle_axis_nonsquarez*TestRandomDist.test_shuffle_axis_nonsquare  sw    YYr]""1b)WWY7499-.r"7499-.rtt2r"r*   c                    t         j                  j                  t        j                  t	        d      d      dz  dz
  d      }t         j                  j                  t        j
                  d      dz  dz
  d      }|j                         }|j                         }t	        d      D ]  }t        j                  |       t        t        |j                  |j                            t        |j                  |j                                   t        j                  |       t        t        |j                  |j                            t        |j                  |j                                    y )Nr   )rp   r   r   r=   rB   r   )r9   mamasked_valuesr  r8   r:   r  r[   r  r   sorteddatamask)r4   r  r  a_origb_origr  s         r(   test_shuffle_maskedz"TestRandomDist.test_shuffle_masked  s   EE

59f = AA ErJEE		" 1A 5r:r 	LANN1qvvqvvg'V[[L0I)JLNN1qvvqvvg'V[[L0I)JL	Lr*   c           
      z   t        t        | j                              }t        j                  d      }t        t        |j                  |d       t        j                  d      j                  d      }t        t        |j                  |d       t        t        |j                  |t        ddd              g dg dg}t        t        |j                  |d       t        j                  d      }t        t        |j                  |       t        j                  d	      }t        t        |j                  |d       y )
Nr   r=   r   r   r   r   rU   r   )r   rp   r   r  )r   r   r   r9   r:   r   r   r  r  rD   sliceNotImplementedErrorr{   r  r4   r[   r  s      r(   test_shuffle_exceptionsz&TestRandomDist.test_shuffle_exceptions  s    7499-.iimia8iil""6*ia8ieAq$6GH)$)6>>3Bhhqki5ggfoia8r*   c                    t        t        | j                              }t        j                  d      }d|j
                  _        t        j                  t        d      5  |j                  |       d d d        y # 1 sw Y   y xY w)Nrp   F	read-onlyr   )r   r   r   r9   rZ   flags	writeabler   r   rE   r  )r4   r[   r  s      r(   test_shuffle_not_writeablez)TestRandomDist.test_shuffle_not_writeable  s]    7499-.HHQK!]]:[9 	NN1	 	 	s    A;;Bc                 r   t        t        | j                              }g d}|j                  |      }g d}t	        ||       t        t        | j                              }t        j                  g d      j                  }|j                  |      }t	        |t        j                  |      j                         d}t        t        |j                  |       d}t        t        |j                  |       t        t        | j                              }d}g d}|j                  |      }t	        ||       y )Nr  r  abcdg333333?r   )
r   r   r   r   r   r   rU   rp   r=   r   )
r   r   r   permutationr   r9   
atleast_2dr  r   r   )	r4   r[   r  rd  rQ  arr_2d	bad_x_strbad_x_floatinteger_vals	            r(   test_permutationzTestRandomDist.test_permutation  s    7499-..##E*067+7499-.=>@@##F+62==#9#;#;<	i!3!3Y?i!3!3[A7499-.0##K067+r*   c                    t        j                  d      j                  d      }t        j                  g dg dg dg dg      }t	        t        | j                              }|j                  |d      }t        ||       t	        t        | j                              }|j                  |d	      }t        ||       y )
Nr%  r  r	  r
  r  r  r=   r   rB   )	r9   r:   r  r{   r   r   r   r-  r   )r4   r  rQ  r[   rd  s        r(   test_permutation_custom_axisz+TestRandomDist.test_permutation_custom_axis.  s    IIbM!!&)((,,,,. / 7499-.##AA#.67+7499-.##AB#/67+r*   c           
      p   t        t        | j                              }t        j                  d      }t        t        |j                  |d       t        j                  d      j                  d      }t        t        |j                  |d       t        t        |j                  |t        ddd              y )Nr   r=   r   r!  r   rU   )r   r   r   r9   r:   r   r   r-  r  rD   r"  r$  s      r(   test_permutation_exceptionsz*TestRandomDist.test_permutation_exceptions;  s    7499-.iimi!3!3S!<iil""6*i!3!3S!<i!3!3S%1d:KLr*   rX   zaxis, expectedN)r   r   r   r   r   r  )r   r   rU   rp   r=   r   r   )r   r=   rU   r   r   r  )r   r   r   r   r   rp   r=   )rp   r   r   r   rU   r=   )r  r   r   r   r   r   c                    t        t        | j                              }t        j                  d      j                  dd      j                  |      }|j                  |||       t        ||       t        t        | j                              }t        j                  d      j                  dd      j                  |      }|j                  ||      }|j                  |k(  sJ t        ||       y )Nr   rU   r   r   outr   )
r   r   r   r9   r:   r  r  permutedr   rX   )r4   rX   r   r   r[   rs   ys          r(   test_permutedzTestRandomDist.test_permutedC  s     7499-.IIbM!!!Q'..u5!,1h'7499-.IIbM!!!Q'..u5OOADO)ww%1h'r*   c                 h   t        t        | j                              }t        j                  d      j                  dd      }|j                         }|d d d d df   }|j                  |d|      }t        j                  g dg dg      }t        ||       ||d d d d df<   t        ||       y )	N   rU   r  r   r=   r9  )r   r   r   r   )r   r   r  r   )
r   r   r   r9   r:   r  r  r;  r{   r   )r4   r[   x0x1rs   r<  r   s          r(   test_permuted_with_stridesz)TestRandomDist.test_permuted_with_stridesW  s    7499-.YYr]""1b)WWYq#A#vJOOAA1O-88\-/ 01h'1cc6
2r"r*   c                 F    t         j                  g       }t        |g        y r%   )r[   r;  r   )r4   r<  s     r(   test_permuted_emptyz"TestRandomDist.test_permuted_emptyd  s    OOB1b!r*   outshaper   rp   c                    t        j                  g d      }t        j                  ||j                        }t	        j
                  t        d      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr   rW   z
same shaper   r:  )	r9   r{   rZ   rX   r   r   rE   r[   r;  )r4   rE  r  r:  s       r(   "test_permuted_out_with_wrong_shapez1TestRandomDist.test_permuted_out_with_wrong_shapeh  sW    HHYhhxqww/]]:\: 	(OOA3O'	( 	( 	(s   A55A>c                    t        j                  dt         j                        }t        j                  d      }t	        j
                  t        d      5  t        j                  |d|       d d d        y # 1 sw Y   y xY w)N)r   rp   rW   zCannot castr   r=   r9  )	r9   rZ   r5  r  r   r   rD   r[   r;  )r4   r:  rs   s      r(   !test_permuted_out_with_wrong_typez0TestRandomDist.test_permuted_out_with_wrong_typeo  sX    hhvRXX.GGFO]]9M: 	0OOAA3O/	0 	0 	0s   A88Bc                     t        j                  d      }d|j                  _        t	        j
                  t        d      5  t        j                  |d|       d d d        y # 1 sw Y   y xY w)N)rU   rp   Fr'  r   r=   r9  )	r9   rZ   r(  r)  r   r   rE   r[   r;  rr   s     r(   test_permuted_not_writeablez*TestRandomDist.test_permuted_not_writeableu  sQ    HHV!]]:[9 	.OOAA1O-	. 	. 	.s   A$$A-c                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  r   r  r   gW<$=g^
=g/:Ћ?gG!Gc>g'`2?gU?r   r  )r   r   r   betar9   r{   r   r  s       r(   	test_betazTestRandomDist.test_beta{  se    7499-.R&1((#%:;#%:;#%:;=> 	"&'2>r*   c                 8   t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgdd	gg      }t        ||       t        t        | j                              }|j                  dd      }d}t        ||       y )
NgZd;Y@gv/?r  r   r  r  0   ,   r   )r   r   r   r\   r9   r{   r   r  s       r(   test_binomialzTestRandomDist.test_binomial  s    7499-.$V<((RHHH& ' 	67+7499-.$/67+r*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr   r  r   gmE~@@g
1ςC@grӳL@gm%xL@g<kQK@gtK@r   r  )r   r   r   	chisquarer9   r{   r   r  s       r(   test_chisquarezTestRandomDist.test_chisquare  sh    7499-.!!"6!2((-/?@-/?@-/?@B C 	"&'2>r*   c                    t        t        | j                              }t        j                  ddg      }|j                  |d      }t        j                  ddgddggd	d
gddggddgddggg      }t        ||d       t        j                  ddg      }t        t        |j
                  |       t        t        | j                              }t        j                  ddg      }|j                  |      }t        ||d   d       y )NI<I@EZC@r  r   g28\h?gɎG/?gAp?g|);?gLX?gfOh?g됷W?g(ސP?gz$Q?gmWt ?g搝K?g4hz?r   r  HzG?缉ؗҜrW  )	r   r   r   r9   r{   	dirichletr   r   rE   )r4   r[   alphard  rQ  	bad_alphas         r(   test_dirichletzTestRandomDist.test_dirichlet  s   7499-..0DEF!!%f!5((03FG03EGI03FG.3FGI13EG.3FGI	J K 	"&'2>HHgx01	j&"2"2I>7499-..0DEF!!%(!&'$-Dr*   c                    t        j                  ddg      }t        t        j	                  |t        j
                  d            j                  d       t        t        j	                  |t        j
                  d            j                  d       t        t        j	                  |t        j
                  d            j                  d       t        t        j	                  |ddg      j                  d       t        t        j	                  |d      j                  d       t        t        j	                  |t        j                  d            j                  d       t        t        t        j                  |t        d             y )NrX  rY  r=   rv   rU   rw   rx   )
r9   r{   r   r[   r\  ry   rz   r   rD   r|   r}   s     r(   test_dirichlet_sizez"TestRandomDist.test_dirichlet_size  s   HH*,@ABV%%a16<<fEV%%a16<<fEV%%a16<<fEV%%a!Q066	BV%%a066	BV%%a&)9:@@)Li!1!11eAh?r*   c           	         t        j                  ddg      }t        t        t        j
                  |       t        t        t        j
                  ddgg       t        t        t        j
                  dgdgg       t        t        t        j
                  dgdggdgdggg       t        t        t        j
                  t        j                  ddgddgg             y )NrZ  r[  rp   r=   )r9   r{   r   rE   r[   r\  )r4   r]  s     r(   test_dirichlet_bad_alphaz'TestRandomDist.test_dirichlet_bad_alpha  s    '8,-j&"2"2E: 	j&"2"2aVH=j&"2"2aS1#J?j&"2"2qcA3Z1#s4LMj&"2"2BHHq!fq!f=M4NOr*   c                 D   t        j                  g d      }|d d d   }t        t        | j                              }|j                  |d      }t        t        | j                              }|j                  t        j                  |      d      }t        ||       y )N)rX  g      rY  rU   r  r   )r9   r{   r   r   r   r\  r   r   )r4   r  r]  r[   r   r   s         r(   #test_dirichlet_alpha_non_contiguousz2TestRandomDist.test_dirichlet_alpha_non_contiguous  s    HHGH#A#7499-.%%e&%9
7499-.!!""6"6u"='- " /!*f5r*   c                    d}|t        j                  ddg      z  }t        t        | j                              }|j                  |d      }t        j                  ddgddggddgddggddgddggg      }t        ||d       y )	Nr         ?r   r  r   rl   r   r  )r9   r{   r   r   r   r\  r   )r4   epsr]  r[   rd  r   s         r(   test_dirichlet_small_alphaz)TestRandomDist.test_dirichlet_small_alpha  s    bhhF|,,7499-.!!%f!588"X"X"X"X"X"X
  	"&(B?r*   c                     t        j                  g d      }||j                         z  }t        t	        | j
                              }|j                  |d      }|j                  d      }t        ||d       y )N)g{Gz?{Gz?Q?i -1r   r   r   r   )r   )	r9   r{   r   r   r   r   r\  r   r   )r4   r]  
exact_meanr[   r   sample_means         r(   %test_dirichlet_moderately_small_alphaz4TestRandomDist.test_dirichlet_moderately_small_alpha  sg     +,UYY[(
7499-.!!%h!7kkqk)Zd;r*   r]  )rp   r   r   r   )rY   r   r   r   )r=   rp   r   r         ?r   r   r   )g{Gz?rl  r   r   )gh㈵>r   r   r   )gMb`?gQ?r   r   rk  r   r   r   rl   r   c                 |    t        j                  |      }t        j                  |      }t	        ||dk(     d       y )Nr   rl   )r9   r{   r[   r\  r   )r4   r]  r<  s      r(   &test_dirichlet_multiple_zeros_in_alphaz5TestRandomDist.test_dirichlet_multiple_zeros_in_alpha  s3     U#Quz]C(r*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Ng8EGr?r  r   gvM?g?g#c?gQ:N?gAP?gE_9@r   r  )r   r   r   exponentialr9   r{   r   r  s       r(   test_exponentialzTestRandomDist.test_exponential  sh    7499-.##F#8((.0AB.0AB.0@BD E 	"&'2>r*   c                     t        t        j                  d      d       t        t        t        j                  d       y Nr   scale       )r   r[   rt  r   rE   rF   s    r(   test_exponential_0z!TestRandomDist.test_exponential_0  s,    V''a'0!4j&"4"4C@r*   c                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr   M   r  r   g}(Ҍ?gi?g=r?g]hDA?gjӨ?g8k*u?r   r  )r   r   r   fr9   r{   r   r  s       r(   test_fzTestRandomDist.test_f  sg    7499-."bv.((.0AB.0@B.0ABD E 	"&'2>r*   c                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nrp   r   r  r   g,שn'@gt@g<e2@g1a3@g3r
y-2@gs1-2@r   r  )r   r   r   gammar9   r{   r   r  s       r(   
test_gammazTestRandomDist.test_gamma  sf    7499-.a0((.B.0AB.0ABD E 	"&'2>r*   c                     t        t        j                  dd      d       t        t        t        j                  dd       y )Nr   )rz   ry  rz  )r   r[   r  r   rE   rF   s    r(   test_gamma_0zTestRandomDist.test_gamma_0  s+    V\\\3Q7j&,,cEr*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||       y )N_c97ݚ?r  r   r=   r  r   r   )r   r   r   	geometricr9   r{   r   r  s       r(   test_geometriczTestRandomDist.test_geometric  s]    7499-.!!*6!:((QGGH& ' 	67+r*   c                    t        t        t        j                  d       t        t        t        j                  dgdz         t        t        t        j                  d       t        t        t        j                  dgdz         t	        j
                  d      5  t        t        t        j                  t        j                         t        t        t        j                  t        j                  gdz         d d d        y # 1 sw Y   y xY w)Nr   r   r   ignoreinvalid)r   rE   r[   r  r9   errstater`   rF   s    r(   test_geometric_exceptionsz(TestRandomDist.test_geometric_exceptions!  s    j&"2"2C8j&"2"2SEBJ?j&"2"2D9j&"2"2TFRK@[[* 	G*f&6&6?*f&6&62F	G 	G 	Gs   ADDc                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr         @r  locry  r   gA7G@g1Fiҿgei@g_Cg0cPg`(_տr   r  )r   r   r   gumbelr9   r{   r   r  s       r(   test_gumbelzTestRandomDist.test_gumbel*  sg    7499-.:SvF((/1CD/1CD/1CDF G 	"&'2>r*   c                     t        t        j                  d      d       t        t        t        j                  d       y rw  )r   r[   r  r   rE   rF   s    r(   test_gumbel_0zTestRandomDist.test_gumbel_02  '    V]]]+Q/j&--s;r*   c                 ~   t        t        | j                              }|j                  dddd      }t	        j
                  ddgddgddgg      }t        ||       |j                  dd	d
d      }t	        j
                  g d      }t        ||       |j                  dd	dd      }t	        j
                  g d      }t        ||       |j                  d	dd
d      }t	        j
                  g d      }t        ||       |j                  d	ddd      }t	        j
                  g d      }t        ||       y )Ng333333$@g      @r   r  r   r   r   rp   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   hypergeometricr9   r{   r   r  s       r(   test_hypergeometricz"TestRandomDist.test_hypergeometric6  s*   7499-.&&tS"6&B((aGGG% & 	67+ &&q!QQ&7((<(67+&&r1bq&9((+,67+ &&q!QQ&7((<(67+&&q"bq&9((<(67+r*   c                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  r  r  r  g6@	ga@bDA"?g*[r{g>K?g(?g<?r   r  )r   r   r   laplacer9   r{   r   r  s       r(   test_laplacezTestRandomDist.test_laplaceP  sg    7499-.JcG((/2CD/2CD/2CDF G 	"&'2>r*   c                     t        t        j                  d      d       t        t        t        j                  d       y rw  )r   r[   r  r   rE   rF   s    r(   test_laplace_0zTestRandomDist.test_laplace_0X  s'    V^^!^,a0j&..<r*   c                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  r  r  r  gbZgHʊg$>?g>&gQh@g%?n?gĉ8|?r   r  )r   r   r   logisticr9   r{   r   r  s       r(   test_logisticzTestRandomDist.test_logistic\  sg    7499-.ZsH((/2CD.2CD/2CDF G 	"&'2>r*   c                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  r  r  )r   sigmar   gܒx?gk*+@g<Ҿ?g
@g5a@g%jz(@r   r  )r   r   r   	lognormalr9   r{   r   r  s       r(   test_lognormalzTestRandomDist.test_lognormald  sh    7499-.!!z6!J((o/?@-@-/?@B C 	"&'2>r*   c                     t        t        j                  d      d       t        t        t        j                  d       y )Nr   )r  r=   rz  )r   r[   r  r   rE   rF   s    r(   test_lognormal_0zTestRandomDist.test_lognormal_0l  s,    V%%A%.2j&"2"2#>r*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||       y )
Ngƀ@?r  )r]   r   r   r   r      rp   r=   )r   r   r   	logseriesr9   r{   r   r  s       r(   test_logserieszTestRandomDist.test_logseriesp  s]    7499-.!!JV!<((RHGF$ % 	67+r*   c                 l    t        t        | j                              }|j                  d      dk(  sJ y )Nr   r=   )r   r   r   r  r  s     r(   test_logseries_zeroz"TestRandomDist.test_logseries_zerox  s.    7499-."a'''r*   valuerB   rg  g      @c                 x   t        t        | j                              }t        j                  d      5  t        j                  t              5  |j                  |       d d d        t        j                  t              5  |j                  t        j                  |gdz               d d d        t        j                  t              5  |j                  t        j                  |gdz        d d d          d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   nxY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nr  r  r   rU   )
r   r   r   r9   r  r   r   rE   r  r{   )r4   r  r[   s      r(   test_logseries_exceptionsz(TestRandomDist.test_logseries_exceptions|  s    7499-.[[* 	>z* (  '(z* 9  5'B,!789 z* >  5'B,!7!!<=>	> 	>( (9 9> >	> 	>sS   D0D!!D0)D+!D0/D$;D0D	D0D!	D0$D-	)D00D9c                     t        t        | j                              }|j                  ddgdz  d      }t	        j
                  g dg dgg dg d	gg d
g dgg      }t        ||       y )Nr   UUUUUU?r   r  r   )r=   rp   r=   r   r   r   )r   rU   r   rU   r   rU   )rp   r   rU   r   r   r=   )r   r   r   rU   r   r   )r   r   r=   rp   r   rU   )rp   rp   r   r=   rU   r   )r   r   r   ri   r9   r{   r   r  s       r(   test_multinomialzTestRandomDist.test_multinomial  sr    7499-.##B16#B((//1//1//1	2 3 	67+r*   zfp errors don't work in wasmreasonr   )svdeighcholeskyc                 ~   t        t        | j                              }d}ddgddgg}d}|j                  ||||      }t	        j
                  ddgdd	ggd
dgddggddgddggg      }t        ||d       |j                  |||      }t	        j
                  ddg      }t        ||d       ddg}ddgddgg}t        t        |j                  ||d       ddgddgg}t        t        |j                  ||       t        t        |j                  ||d       t        t        |j                  ||d       t        |j                  ||d       t        t        |j                  ||d       t        t        |j                  ||dd       ddgddgg}|dv r*|j                  ||d|      }t        |d   |d    d!       nt        t        |j                  ||d       t	        j
                  dd"gd"dggt        j                  #      }t               5 }	|j                  |||       |	j                  t              }
t!        |
      dk(  sJ 	 d d d        t	        j"                  d      }t	        j$                  d      }t        t        |j                  ||d$       t        t        |j                  t	        j"                  d%      |       t        t        |j                  |t	        j&                  d             t        t        |j                  |t	        j$                  d&             y # 1 sw Y   xY w)'N)r  r   r=   r   r  r   gtg$&@g&بO=g!$@gDo?g\&@g,R{?g
f!@g?ժ?gT^o#@g`R?gP'@r   r  gl?g$("@rU   raise)check_validr  r  r  )r  r   )r  r  r   ).r   ).r=   r   r  rW   other)rU   r=   r=   r   )r   r   r   multivariate_normalr9   r{   r   r   rE   r	   RuntimeWarningr   r
   r   r   recordrM  rZ   eyer   )r4   r   r[   r   covr   rd  rQ  r}  supwmus               r(   test_multivariate_normalz'TestRandomDist.test_multivariate_normal  sD    7499-.1v1v++D#tF+K((03DG13EGI13EG14EGI14EG13EGI	J K 	"&'2> ++D#f+E((-/@AB!&'2> 1v1v1vj&"<"<dC")	+
 1v1v^V%?%?sK^V%?%?s"	$k6#=#=tS'	) 	655tS'/	1 	j&"<"<dC")	+j&"<"<dC")&	: 1v1v_$00s8> 1 @G%gfowv./1 +v'A'A4!+- hhC3(+2::>  	C&&tS&@

>*Aq6Q;;	
 XXa[ffQij&"<"<dC")	+j&"<"<hhy)3	0j&"<"<"((6*	,j&"<"<"&&)	%	 	s   :L33L<z	mean, covy      ?      ?y                c                     t        t        | j                              }t        j                  t
        d      5  |j                  ||       d d d        y # 1 sw Y   y xY w)Nzmust not be complexr   )r   r   r   r   r   rD   r  )r4   r   r  r[   s       r(   )test_multivariate_normal_disallow_complexz8TestRandomDist.test_multivariate_normal_disallow_complex  sI    7499-.]]9,AB 	2&&tS1	2 	2 	2s   AAc                    t        t        | j                              }d}t        j                  ddg      }t        j                  ddgddgg      }|j                  |||f|      }||z
  }|j                  |z  |dz
  z  }t        j                  t        j                  |j                  d            dk        sJ t        j                  t        j                  ||z
        dk        sJ y )Nr.   r=   rU   r   rI   r  rf   )
r   r   r   r9   r{   r  r  rq   absr   )	r4   r   r[   n_sr   r  r5   s_centercov_emps	            r(   $test_multivariate_normal_basic_statsz3TestRandomDist.test_multivariate_normal_basic_stats  s    7499-.xxAhhAA'(&&tSvf&Mt8::(S1W5vvbffX]]2./#5666vvbffWs]+c1222r*   c                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||       y )Nre   g|Pk?r  )nr]   r   i  i  i  i  iX  i  )r   r   r   r   r9   r{   r   r  s       r(   r   z%TestRandomDist.test_negative_binomial  s_    7499-.))C6)G((S#J #J #J( ) 	67+r*   c                    t        j                  d      5  t        t        t        j
                  dt         j                         t        t        t        j
                  dt         j                  gdz         d d d        y # 1 sw Y   y xY w)Nr  r  re   r   )r9   r  r   rE   r[   r   r`   rF   s    r(   !test_negative_binomial_exceptionsz0TestRandomDist.test_negative_binomial_exceptions  s\    [[* 	)*f&>&>RVVL*f&>&>66(R-)	) 	) 	)s   A!BB
c                 x    t        t              5  t        j                  dd      }d d d        y # 1 sw Y   y xY wNr=   r   )r   rE   r[   r   rr   s     r(   #test_negative_binomial_p0_exceptionz2TestRandomDist.test_negative_binomial_p0_exception   s1    :& 	/((A.A	/ 	/ 	/s   09c                     t        j                  d      5  t        t        t        j
                  dd       t        t        t        j
                  dgdg       d d d        y # 1 sw Y   y xY w)Nr  r  rU  r  )r9   r  r   rE   r[   r   rF   s    r(   .test_negative_binomial_invalid_p_n_combinationz=TestRandomDist.test_negative_binomial_invalid_p_n_combination  sU     [[* 	P*f&>&>sK*f&>&>#O	P 	P 	Ps   AA##A,c                    t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgdd	gg      }t        ||d
       |j                  ddd      }t	        j
                  ddgddgddgg      }t        ||d
       t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgddgg      }t        ||d
       y )Nrp   r  )dfnoncr   gs؀3J?gugو/@gNJm+@gA}-4@gq=&@gjhn@r   r  rY   rf   gZօDN?gE!X&?gt%T?gQ)V?g5Zlf?gΎ{?r   gmK?gZ?g%yKY@g@W@gĈ{>@g&BB=@)r   r   r   noncentral_chisquarer9   r{   r   r  s       r(   test_noncentral_chisquarez(TestRandomDist.test_noncentral_chisquare  s'   7499-.,,,G((.0AB.0AB-1ABD E 	"&'2>,,&,I((13GH13GH13GHJ K 	"&'2>7499-.,,,G((-/?@-/?@-/?@B C 	"&'2>r*   c                     t        t        | j                              }|j                  dddd      }t	        j
                  ddgdd	gd
dgg      }t        ||d       y )Nrp   rU   r=   r  )dfnumdfdenr  r   gHP
?gn?g%f?gch?gzƎ?g]?:?r   r  )r   r   r   noncentral_fr9   r{   r   r  s       r(   test_noncentral_fz TestRandomDist.test_noncentral_f!  so    7499-.$$1AA*0 % 2((^/?@-@-/?@B C 	"&'2>r*   c                     t        t        | j                              }|j                  ddt        j
                        }t	        j                  |      sJ y )Nrp   rU   )r  r  r  )r   r   r   r  r9   r`   isnanr4   r[   rd  s      r(   test_noncentral_f_nanz$TestRandomDist.test_noncentral_f_nan*  sB    7499-.$$1ABFF$Cxxr*   c                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  r  r  r  g?`xg\P@g/7u g0aj?gi%?gog@r   r  )r   r   r   normalr9   r{   r   r  s       r(   test_normalzTestRandomDist.test_normal/  sg    7499-.:SvF((/2CD/2CD/2CDF G 	"&'2>r*   c                     t        t        j                  d      d       t        t        t        j                  d       y rw  )r   r[   r  r   rE   rF   s    r(   test_normal_0zTestRandomDist.test_normal_07  r  r*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        j                  j                  ||d
       y )Nr  r  r  r   gá?gƫh@gi`>?g0"&Agc@g=fAr   )nulp)r   r   r   paretor9   r{   testingassert_array_almost_equal_nulpr  s       r(   test_paretozTestRandomDist.test_pareto;  sr    7499-.&9((35KL35KL35KLN O 	

11&'1Kr*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||       y )Nr  r  )lamr   r   )r   r   r   poissonr9   r{   r   r  s       r(   test_poissonzTestRandomDist.test_poissonI  sZ    7499-.JV<((QFFF$ % 	67+r*   c                 `   t        j                  d      j                  }d}t        t        t
        j                  |       t        t        t
        j                  |gdz         t        t        t
        j                  |       t        t        t
        j                  |gdz         t        j                  d      5  t        t        t
        j                  t         j                         t        t        t
        j                  t         j                  gdz         d d d        y # 1 sw Y   y xY w)Nr   rB   r   r  r  )	r9   r   r   r   rE   r[   r  r  r`   )r4   lambiglamnegs      r(   test_poisson_exceptionsz&TestRandomDist.test_poisson_exceptionsQ  s    '"&&j&..&9j&..6(R-@j&..&9j&..6(R-@[[* 	E*fnnbff=*fnnrvvhmD	E 	E 	Es   <AD$$D-c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr  r  r  gZ >g?gÄ(=g҇?gŚE?gߢH?r   r  )r   r   r   powerr9   r{   r   r  s       r(   
test_powerzTestRandomDist.test_power\  se    7499-.
8((24IJ24IJ24IJL M 	"&'2>r*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr   r  )ry  r   gry@gtQP0@gAI_@g@u81@g	G0@g"wc5@r   r  )r   r   r   rayleighr9   r{   r   r  s       r(   test_rayleighzTestRandomDist.test_rayleighd  se    7499-.r7((-/@A-/@A.0ABD E 	"&'2>r*   c                     t        t        j                  d      d       t        t        t        j                  d       y rw  )r   r[   r  r   rE   rF   s    r(   test_rayleigh_0zTestRandomDist.test_rayleigh_0l  s'    V__1_-q1j&//=r*   c                     t        t        | j                              }|j                  d      }t	        j
                  ddgddgddgg      }t        ||d	
       y )Nr  r   gH1gW|3
g\?gLeg5P	gFA?r   r  )r   r   r   standard_cauchyr9   r{   r   r  s       r(   test_standard_cauchyz#TestRandomDist.test_standard_cauchyp  sf    7499-.''V'4((/1CD/1CD/2CDF G 	"&'2>r*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr  invr   ga\5?gr7k?g8PC*?g5$[?gW3T?g*?r   r  )r   r   r   standard_exponentialr9   r{   r   r  s       r(   test_standard_exponentialz(TestRandomDist.test_standard_exponentialx  sh    7499-.,,&,G((.0AB.0AB.0ABD E 	"&'2>r*   c                 `    t        t        t        j                  t        j
                         y NrW   )r   rD   r[   r  r9   r5  rF   s    r(   #test_standard_expoential_type_errorz2TestRandomDist.test_standard_expoential_type_error  s    i!<!<BHHMr*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr   r  rz   r   gΈ̏&?gTϿ?g1n21@gDb<z@gBv@gc^@r   r  r   r   r   standard_gammar9   r{   r   r  s       r(   test_standard_gammaz"TestRandomDist.test_standard_gamma  sh    7499-.&&QV&<((-/?@+/?@-/?@B C 	"&'2>r*   c                     t        t        | j                              }|j                  dt        j
                        }d}t        ||d       y )Nr   rW   g   d@r   r  )r   r   r   r  r9   r   r   r  s       r(   !test_standard_gammma_scalar_floatz0TestRandomDist.test_standard_gammma_scalar_float  s?    7499-.&&q

&;$!&'1=r*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr   r  r  gf&?gMO?g1@g):@g@g;i@rp   r  r  r  s       r(   test_standard_gamma_floatz(TestRandomDist.test_standard_gamma_float  sb    7499-.&&QV&<((Wf.$f.$g.0 1 	"&'1=r*   c                    t        j                  dt         j                        }t        t	        | j
                              }|j                  d|t         j                         t        j                  ddgddgd	d
ggt         j                        }t        ||d       t        t	        | j
                              }|j                  d|dt         j                         t        ||d       y )Nr  rW         $@r:  rX   gM»L$@ga {@gN]"@gPS")@g_+@gmB@rp   r  r:  r   rX   )	r9   rZ   r   r   r   r   r  r{   r   )r4   rd  r[   rQ  s       r(   test_standard_gammma_float_outz-TestRandomDist.test_standard_gammma_float_out  s    &

37499-.dbjjA((X0&1&13:<**F 	"&'1=7499-.dV2::N!&'1=r*   c                 F    t        t        t        j                  dd       y )Nrg  r5  rW   )r   rD   r[   r  rF   s    r(    test_standard_gamma_unknown_typez/TestRandomDist.test_standard_gamma_unknown_type  s    i!6!6#	%r*   c                     t        j                  d      }t        t        t        j
                  dd|       t        t        t        j
                  dd|       y )Nr   r  r   )r   r:  )r   r=   )r9   rZ   r   rE   r[   r  )r4   r:  s     r(   test_out_size_mismatchz%TestRandomDist.test_out_size_mismatch  sA    hhrlj&"7"7B	j&"7"7G	r*   c                     t        t        j                  d      d       t        t        t        j                  d       y )Nr   )rz   rz  )r   r[   r  r   rE   rF   s    r(   test_standard_gamma_0z$TestRandomDist.test_standard_gamma_0  s,    V***3Q7j&"7"7sCr*   c                     t        t        | j                              }|j                  d      }t	        j
                  ddgddgddgg      }t        ||d	
       y )Nr  r   g
bYg? ?gGH{Lgz\?gc`+?gT}?r   r  )r   r   r   r   r9   r{   r   r  s       r(   test_standard_normalz#TestRandomDist.test_standard_normal  sf    7499-.''V'4((/2BD/2CD/2CDF G 	"&'2>r*   c                 `    t        t        t        j                  t        j
                         y r
  )r   rD   r[   r   r9   r5  rF   s    r(   %test_standard_normal_unsupported_typez4TestRandomDist.test_standard_normal_unsupported_type  s    i!7!7rxxHr*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr   r  )r  r   gV1g	|ڙ(?g-?g NhڿgMc?g!uLM r   r  )r   r   r   
standard_tr9   r{   r   r  s       r(   test_standard_tzTestRandomDist.test_standard_t  sh    7499-.""bv"6((/2BD/1CD/1CDF G 	"&'2>r*   c                     t        t        | j                              }|j                  dddd      }t	        j
                  ddgdd	gd
dgg      }t        ||d       y )Ng{Gz@g(\u$@gףp=
W4@r  )leftmoderightr   gEpw@g4DC+@gŋ@g/,@gkuR*@gHNPcr+@r   r  )r   r   r   
triangularr9   r{   r   r  s       r(   test_triangularzTestRandomDist.test_triangular  sq    7499-.""5(. # 0((.0@B.0AB.0ABD E 	"&'2>r*   c                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )NGz?gGz%@r  )r\  r]  r   gm2@gJaD@g: @g
Q @g@T{e@gb@r   r  r   r   r   uniformr9   r{   r   r  s       r(   test_uniformzTestRandomDist.test_uniform  sg    7499-.Du6B((-0AB.0AB.0ABD E 	"&'2>r*   c                 ,   t        j                  d      j                  }t        j                  d      j                  }t        j
                  }t        t        |t         j                   d       t        t        |dt         j                         t        t        |||       t        t        |t         j                   gdg       t        t        |dgt         j                  g       t        j                  t        j                  |d      |dz         y )Nr|   r   r=   g ؅W4vC)r\  r]  )
r9   finfor  r   r[   r0  r   OverflowErrorinf	nextafter)r4   fminfmaxfuncs       r(   test_uniform_range_boundsz(TestRandomDist.test_uniform_range_bounds  s    xx $$xx $$~~mTBFF7A6mT1bff5mT46mTRVVG9qc:mTA39
 	2<<a0td{Cr*   c                 :   t         j                  } |dd      }t        |d        |dt        j                  gdt        j                  g      }t        |dt        j                  g        |dgdggddg      }t        |dt        j
                  d      z          y )Nrp  rl   g
ףp= @rx   )r[   r0  r   r9   pirZ   )r4   r9  results      r(   test_uniform_zero_rangez&TestRandomDist.test_uniform_zero_range  s    ~~c3$sBEElS"%%L1bee-y7),w.@A"((6*: :;r*   c                     t         j                  }t        t        |dd       t        t        |ddgddg       t        t        |ddgddggd       y )NrU   r=   r   r   )r[   r0  r   rE   )r4   r9  s     r(   test_uniform_neg_rangez%TestRandomDist.test_uniform_neg_range  sI    ~~j$1-j$!Q!Q8j$1a&!Q!<r*   c                 z    G d dt         j                        }t        j                  d      j                  |      }t	        t
        t        j                  ||        G d dt         j                        }t        j                  d      j                  |      }t	        t
        t        j                  |dd       y )Nc                       e Zd Zd Zy)GTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloatc                     t         r%   rD   rF   s    r(   	__float__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__       r*   N)rN   rO   rP   rF  rQ   r*   r(   ThrowingFloatrC         r*   rH  rg  c                       e Zd Zd Zy)ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                     t         r%   rE  rF   s    r(   __int__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__  rG  r*   N)rN   rO   rP   rM  rQ   r*   r(   ThrowingIntegerrK    rI  r*   rN  r=   )	r9   ndarrayr{   rB  r   rD   r[   r0  r  )r4   rH  throwing_floatrN  throwing_ints        r(   !test_scalar_exception_propagationz0TestRandomDist.test_scalar_exception_propagation  s    	 BJJ 	  #++M:i$	&	 bjj 	  xx{''8i!6!6aKr*   c                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr.  p=
ף?r  r  kappar   gLA?gxyw@gzVR?gpE ?g8&Aпgv @r   r  )r   r   r   vonmisesr9   r{   r   r  s       r(   test_vonmiseszTestRandomDist.test_vonmises  sg    7499-.D6B((/2CD/2CD/2CDF G 	"&'2>r*   c                     t        t        | j                              }|j                  ddd      }t	        t        j                  |      j                                y )Nrl   gg5_PG>i@B rU  )r   r   r   rW  r   r9   isfiniterq   r4   r[   rs      r(   test_vonmises_smallz"TestRandomDist.test_vonmises_small  sB    7499-.OOreO<A""$%r*   c                     t        t        | j                              }|j                  dt        j
                        }t        t	        j                  |             y )Nrl   )r  rV  )r   r   r   rW  r9   r`   r   r  r[  s      r(   test_vonmises_nanz TestRandomDist.test_vonmises_nan  s;    7499-.OOrO0r*   rV  g     @  4&kCc                 `   t        t        | j                              }t        |j                        }|j                  j
                  }|j                  d|d      }||j                  _        |j                  d|d      }|dk  rt        ||       y t        j                  ||k7        sJ y )Nr   r   r   g    .A)
r   r   r   r   r   r   rW  r   r9   rq   )r4   rV  r[   rsr   random_state_valsgen_valss          r(   test_vonmises_large_kappaz(TestRandomDist.test_vonmises_large_kappa!  s    7499-.--.$$**KK5rK:%*"??1e"?53;-x866+x7888r*   r  g      gg	@)r   gư>r=   g     @@r`  c                    t        t        | j                              }|j                  ||d      }t	        t        j                  |t
        j                   kD        xr& t        j                  |t
        j                  k               y )Nr   )r   r   r   rW  r   r9   rq   r<  )r4   r  rV  r[   r\  s        r(   test_vonmises_large_kappa_rangez.TestRandomDist.test_vonmises_large_kappa_range/  sZ     7499-.OOBr*qBEE6z"9rvva255j'9:r*   c                     t        t        | j                              }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr.  rT  r  )r   ry  r   g*س2?gt	@g;S@g\ F@gxF @g6b?r   r  )r   r   r   waldr9   r{   r   r  s       r(   	test_waldzTestRandomDist.test_wald6  sf    7499-.$d@((-@-/?@-/?@B C 	"&'2>r*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr.  r  r  gnJZ?g*/F?gs(RY?g]'%?g,qD?g8 ?r   r  )r   r   r   weibullr9   r{   r   r  s       r(   test_weibullzTestRandomDist.test_weibull>  se    7499-.$V4((.0AB.0AB.0ABD E 	"&'2>r*   c                     t        t        | j                              }t        |j	                  dd      t        j                  d             t        t        |j                  d       y )Nr   r   r  rz  )r  )	r   r   r   r   rl  r9   rZ   r   rE   r  s     r(   test_weibull_0zTestRandomDist.test_weibull_0F  sD    7499-.V^^ab^1288B<@j&..C8r*   c                     t        t        | j                              }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||       y )	Nr.  r  r  r=   r   ic  ib  rU   )r   r   r   zipfr9   r{   r   r  s       r(   	test_zipfzTestRandomDist.test_zipfK  sZ    7499-.t&1((qAJ #J AJ( ) 	67+r*   )rN   rO   rP   r   r  r  r  r  r  r  r  r   r   r   r9   r   ry   float64r8  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r*  r3  r5  r7  rV   rY  r{   r=  rB  rD  rH  rJ  rL  rO  rS  rV  r_  ra  rc  re  ri  r  ro  rr  ru  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r6  r`   r  r  skipifr   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,  r1  r:  r>  r@  rR  rX  r]  r_  re  r<  rg  rj  rm  ro  rr  rQ   r*   r(   r  r    s   ,,,
&
E>> [[4!zz2995!zz299578/8/?,,,,,,,2$,9\9
/
($(&06,0#L9,2,M [[WsFm4[[-#XRXX/C/C/E &F G ("((,@,@,B #C D ("((,@,@,B #C D	EF
(F 5
(#" [[Z&!5( 6(0.?,?E&
@	P6@ [[< < [[			#			,
		
)
)
?A??F,G?<,4?=???,( [[W|r||B';R&LM
> N
>	, [[(FG[[X'BCG% D HG%R [[[QC4&?bTQC5M*JK2 L2
 [[X'BC
3 D
3,)/
P?*? 
?<L,	E??>??N?>>>%D?I???D <=L,?&
 [[WsDk29 39 [[TC"%%ruuc#BC[[W&@A; B D;
??9
,r*   r  c            	       r   e 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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d Zd Z d Z!d  Z"e#jH                  jK                  d!d" e&jN                  d"d"g       e&jN                  d"ggd"ggg      g      d#        Z(d$ Z)d% Z*y&)'TestBroadcastc                     d| _         y )Ni[r   rF   s    r(   r   zTestBroadcast.setup_methodW  s	    	r*   c                    t        t        | j                              }dg}dg}|j                  }t	        j
                  g d      }t        t        | j                              }|j                  |dz  |      }t        ||d       t        t        | j                              }|j                  ||dz        }t        ||d       y )Nr   r=   )g4
7^?gF]
"?g .?r   r   r  r/  )r4   r[   r\  r]  r0  rQ  rd  s          r(   r1  zTestBroadcast.test_uniformZ  s    7499-.cs..((QR7499-.a.!&'2>7499-.TAX.!&'2>r*   c                    dg}dg}dg}t        t        | j                              }t        j                  g d      }t        t        | j                              }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        | j                              }|j
                  } |||dz        }t        ||d       t        t        |||dz         y )Nr   r=   rB   )gw-Dؿgn0_x?gʊ;<.?r   r   r  )	r   r   r   r9   r{   r  r   r   rE   )r4   r  ry  	bad_scaler[   rQ  rd  r  s           r(   r  zTestBroadcast.test_normali  s    cD	7499-.((ST7499-.sQw.!&'2>j&--q)D7499-.UQY'!&'2>j&#y1}=r*   c                    dg}dg}dg}dg}t        j                  g d      }t        t        | j                              }|j
                  } ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       t        t        | j                              }|j                  ||dz        }t        ||d       y )	Nr=   rU   rB   rI   )gf8?g%eo?g$q??r   r   r  )	r9   r{   r   r   r   rN  r   r   rE   )	r4   r  r  bad_abad_brQ  r[   rN  rd  s	            r(   rO  zTestBroadcast.test_beta{  s    CC((QR7499-.{{a!eQ!&'2>j$	15j$Au57499-.QA&!&'2>r*   c                     dg}dg}t        j                  g d      }t        t        | j                              }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y Nr=   rB   )g`ʄ?gE]?g?r   r   r  )	r9   r{   r   r   r   rt  r   r   rE   r4   ry  rz  rQ  r[   rd  s         r(   ru  zTestBroadcast.test_exponential  sh    D	((PQ7499-.##EAI.!&'2>j&"4"4i!mDr*   c                     dg}dg}t        j                  g d      }t        t        | j                              }|j
                  } ||dz        }t        ||d       t        t        ||dz         y r  )	r9   r{   r   r   r   r  r   r   rE   )r4   rz   	bad_shaperQ  r[   	std_gammard  s          r(   r  z!TestBroadcast.test_standard_gamma  sg    D	((PQ7499-.))	519%!&'2>j)Y];r*   c                    dg}dg}dg}dg}t        j                  g d      }t        t        | j                              }|j
                  } ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       t        t        | j                              }|j
                  } |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         y )	Nr=   rU   rB   rI   )g3ʄ?gJE]?g?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   )	r4   rz   ry  r  rz  rQ  r[   r  rd  s	            r(   r  zTestBroadcast.test_gamma  s    D	D	((PQ7499-.uqy%(!&'2>j%Q>j%I>7499-.ueai(!&'2>j%EAI>j%	A>r*   c                    dg}dg}dg}dg}t        j                  g d      }t        t        | j                              }|j
                  } ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       t        t        | j                              }|j
                  } |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         y )	Nr=   rU   rB   rI   )gM3B?gybi@g0?r   r   r  )	r9   r{   r   r   r   r~  r   r   rE   )	r4   r  r  	bad_dfnum	bad_dfdenrQ  r[   r~  rd  s	            r(   r  zTestBroadcast.test_f  s    D	D	((QR7499-.HH519e$!&'2>j!Y]E:j!UQY	:7499-.HH5%!)$!&'2>j!Y	:j!UIM:r*   c           
         dg}dg}dg}dg}dg}dg}t        j                  g d      }t        t        | j                              }|j
                  }	 |	|dz  ||      }
t        |
|d	       t        j                  t        j                   |	||t         j                  gdz                    sJ t        t        |	|dz  ||       t        t        |	|dz  ||       t        t        |	|dz  ||       t        t        | j                              }|j
                  }	 |	||dz  |      }
t        |
|d	       t        t        |	||dz  |       t        t        |	||dz  |       t        t        |	||dz  |       t        t        | j                              }|j
                  }	 |	|||dz        }
t        |
|d	       t        t        |	|||dz         t        t        |	|||dz         t        t        |	|||dz         y )
NrU   r   r   r   rB   rI   )gŜ,n1 @g!6)@g9?r   r  )r9   r{   r   r   r   r  r   rq   r  r`   r   rE   )r4   r  r  r  r  r  bad_noncrQ  r[   nonc_frd  s              r(   r  zTestBroadcast.test_noncentral_f  s   sC	D	4((RS7499-.$$	5$/!&'2>vvbhhveURVVHqLABCCCj&)a-Ej&%!)YEj&%!)UHE7499-.$$uqy$/!&'2>j&)UQYEj&%QEj&%HE7499-.$$udQh/!&'2>j&)UD1HEj&%D1HEj&%1Er*   c                     t        t        | j                              }t        j                  ddg      }|j                  dddd      }t        ||d       y )NgZ\#?gDqw?r   rU   r   r   r  )r   r   r   r9   r{   r  r   )r4   r[   rQ  rd  s       r(   test_noncentral_f_small_dfz(TestBroadcast.test_noncentral_f_small_df  sN    7499-.((,o>?$$S#qq$9!&'2>r*   c                     dg}dg}t        j                  g d      }t        t        | j                              }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y )Nr=   rB   )gC{?g7Q#?g%h1T@r   r   r  )	r9   r{   r   r   r   rU  r   r   rE   r4   r  bad_dfrQ  r[   rd  s         r(   rV  zTestBroadcast.test_chisquare  sh    S((PQ7499-.!!"q&)!&'2>j&"2"2FQJ?r*   c                    dg}dg}dg}dg}t        j                  g d      }t        t        | j                              }|j
                  } ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       t        t        | j                              }|j
                  } |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         y )	Nr=   rU   rB   rI   )g-S?g[@gr3/.?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   )	r4   r  r  r  r  rQ  r[   nonc_chird  s	            r(   r  z'TestBroadcast.test_noncentral_chisquare  s    Ss4((OP7499-..."q&$'!&'2>j(FQJ=j(BFH=7499-..."dQh'!&'2>j(FD1H=j(B1=r*   c                     dg}dg}t        j                  g d      }t        t        | j                              }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y )Nr=   rB   )g>Qg{g,e?r   r   r  )	r9   r{   r   r   r   r%  r   r   rE   r  s         r(   r&  zTestBroadcast.test_standard_t  sh    S((ST7499-.""26*!&'2>j&"3"3VaZ@r*   c                    dg}dg}dg}t        j                  g d      }t        t        | j                              }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        | j                              }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         y )NrU   r=   rB   )gD()@g,)ʸ@gPor   r   r  )	r9   r{   r   r   r   rW  r   r   rE   )r4   r  rV  	bad_kapparQ  r[   rd  s          r(   rX  zTestBroadcast.test_vonmises  s    SD	((RS7499-.a/!&'2>j&//269E7499-.UQY/!&'2>j&//2y1}Er*   c                     dg}dg}t        j                  g d      }t        t        | j                              }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y )Nr=   rB   )g/h?gcE?g/gV?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   r4   r  r|  rQ  r[   rd  s         r(   r  zTestBroadcast.test_pareto.  sd    C((QR7499-.q1u%!&'2>j&--;r*   c                     dg}dg}t        j                  g d      }t        t        | j                              }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y r  )	r9   r{   r   r   r   rl  r   r   rE   r  s         r(   rm  zTestBroadcast.test_weibull8  sd    C((PQ7499-.A&!&'2>j&..%!)<r*   c                     dg}dg}t        j                  g d      }t        t        | j                              }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y )Nr=   rB   )gT?gʥ?gKܮc?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   r  s         r(   r  zTestBroadcast.test_powerB  sd    C((QR7499-.a!e$!&'2>j&,,	:r*   c                    dg}dg}dg}t        j                  g d      }t        t        | j                              }|j
                  } ||dz  |      }t        ||d       t        t        ||dz  |       t        t        | j                              }|j
                  } |||dz        }t        ||d       t        t        |||dz         y )Nr   r=   rB   )gh&BgsgR#?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   )r4   r  ry  rz  rQ  r[   r  rd  s           r(   r  zTestBroadcast.test_laplaceL  s    cD	((ST7499-...q%(!&'2>j'37I>7499-...eai(!&'2>j'3	A>r*   c                    dg}dg}dg}t        j                  g d      }t        t        | j                              }|j
                  } ||dz  |      }t        ||d       t        t        ||dz  |       t        t        | j                              }|j
                  } |||dz        }t        ||d       t        t        |||dz         y )Nr   r=   rB   )gs4?g$Cw%T?gտr   r   r  )	r9   r{   r   r   r   r  r   r   rE   )r4   r  ry  rz  rQ  r[   r  rd  s           r(   r  zTestBroadcast.test_gumbel^  s    cD	((RS7499-.a'!&'2>j&#'9=7499-.UQY'!&'2>j&#y1}=r*   c                    dg}dg}dg}t        j                  g d      }t        t        | j                              }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        | j                              }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        |j                  dd	      d       y )
Nr   r=   rB   )g$DgXPg,?r   r   r  rg  rl   )
r9   r{   r   r   r   r  r   r   rE   r   )r4   r  ry  rz  rQ  r[   rd  s          r(   r  zTestBroadcast.test_logisticp  s    cD	((QR7499-.q%0!&'2>j&//37IF7499-.eai0!&'2>j&//3	AFV__S#.4r*   c                    dg}dg}dg}t        j                  g d      }t        t        | j                              }|j
                  } ||dz  |      }t        ||d       t        t        ||dz  |       t        t        | j                              }|j                  ||dz        }t        t        |j
                  ||dz         y )Nr   r=   rB   )g c?gu@gVQ?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   )r4   r   r  	bad_sigmarQ  r[   r  rd  s           r(   r  zTestBroadcast.test_lognormal  s    sD	((QR7499-.$$	4!8U+!&'2>j)TAXyA7499-.!!$	2j&"2"2D)a-Hr*   c                     dg}dg}t        j                  g d      }t        t        | j                              }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y )Nr=   rB   )gs(?g4mK?gVk+?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   r  s         r(   r  zTestBroadcast.test_rayleigh  sj    D	((!
 7499-.+!&'2>j&//9q=Ar*   c                 F   dg}dg}dg}dg}t        j                  g d      }t        t        | j                              }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        t        | j                              }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )	NrY   r=   r   rI   )gk7Z?g*}z9?gc-	?r   r   r  )	r9   r{   r   r   r   ri  r   r   rE   )r4   r   ry  bad_meanrz  rQ  r[   rd  s           r(   rj  zTestBroadcast.test_wald  s    u3D	((OP7499-.TAXu-!&'2>j&++x!|UCj&++taxC7499-.T519-!&'2>j&++xCj&++tY]Cr*   c                    dg}dg}dg}dg}dg}|dz  \  }}t        j                  g d      }t        t        | j                              }	|	j
                  }
 |
|dz  ||      }t        ||d       t        t        |
|dz  ||       t        t        |
|dz  ||       t        t        |
|dz  ||       t        t        | j                              }	|	j
                  }
 |
||dz  |      }t        ||d       t        t        |
||dz  |       t        t        |
||dz  |       t        t        |
||dz  |       t        t        | j                              }	|	j
                  }
 |
|||dz        }t        ||d       t        t        |
|||dz         t        t        |
|||dz         t        t        |
|||dz         t        t        |
dd	d
       t        t        |
ddd
       t        t        |
ddd       y )Nr=   r   rU   r   )gR8T>?gK?g;>h@r   r  r  rl   g      4@g      9@)	r9   r{   r   r   r   r+  r   r   rE   )r4   r(  r*  r)  bad_left_onebad_mode_onebad_left_twobad_mode_tworQ  r[   r+  rd  s               r(   r,  zTestBroadcast.test_triangular  s   ssss%*QY"l((QR7499-.&&
D1HdE2!&'2>j*lQ.>eLj*dQheLj*lQ.>	 7499-.&&
D$(E2!&'2>j*lD1HeLj*dL14DeLj*lL1<L	 7499-.&&
D$	2!&'2>j*lD%!)Lj*dL%!)Lj*lLai	! 	j*c2s;j*c3<j*c3<r*   c                 N   dg}dg}dg}dg}dg}t        j                  g d      }t        t        | j                              }|j
                  } ||dz  |      }	t        |	|       t        t        ||dz  |       t        t        ||dz  |       t        t        ||dz  |       t        t        | j                              }|j                  ||dz        }	t        |	|       t        t        |||dz         t        t        |||dz         t        t        |||dz         y )Nr=   rY   rB   rp  r   r   r=   r   )	r9   r{   r   r   r   r\   r   r   rE   )
r4   r  r]   bad_n	bad_p_one	bad_p_tworQ  r[   binomrd  s
             r(   rS  zTestBroadcast.test_binomial  s   CED	E	((9%7499-.q1ua67+j%A6j%Q	:j%Q	:7499-.AE*67+j%A6j%IM:j%IM:r*   c                 t   dg}dg}dg}dg}dg}t        j                  g dt         j                        }t        t	        | j
                              }|j                  } ||dz  |      }	t        |	|       t        t        ||dz  |       t        t        ||dz  |       t        t        ||dz  |       t        t	        | j
                              }|j                  } |||dz        }	t        |	|       t        t        |||dz         t        t        |||dz         t        t        |||dz         y )Nr=   rY   rB   rp  )r   rU   r=   rW   r   )
r9   r{   r   r   r   r   r   r   r   rE   )
r4   r  r]   r  r  r  rQ  r[   	neg_binomrd  s
             r(   r   z$TestBroadcast.test_negative_binomial  s   CED	E	((9BHH57499-.,,	1q5!$67+j)UQY:j)QUI>j)QUI>7499-.,,	1a!e$67+j)UAE:j)Q	A>j)Q	A>r*   c                 4   dg}dg}t        j                  g d      }t        t        | j                              }|j
                  }|dz  g}|j                  } ||dz        }t        ||       t        t        ||dz         t        t        ||dz         y )Nr=   rB   )r   r   r   rU   r   )
r9   r{   r   r   r   _poisson_lam_maxr  r   r   rE   )	r4   r  bad_lam_onerQ  r[   max_lambad_lam_twor  rd  s	            r(   r  zTestBroadcast.test_poisson		  s    cd((9%7499-.)){m..q!67+j';?;j';?;r*   c                    dg}dg}t        j                  g d      }t        t        | j                              }|j
                  } ||dz        }t        ||       t        t        ||dz         t        j                  d      5  t        t        |t         j                         t        t        |ddt         j                  g       d d d        y # 1 sw Y   y xY w)NrU   r   )r=   r   r=   r   r  r  )r9   r{   r   r   r   rq  r   r   rE   r  r`   )r4   r  r|  rQ  r[   rq  rd  s          r(   rr  zTestBroadcast.test_zipf	  s    C((9%7499-.{{a!e67+j$	2[[* 	<*dBFF3*dQ266N;	< 	< 	<s   	ACCc                    dg}dg}dg}t        j                  g d      }t        t        | j                              }|j
                  } ||dz        }t        ||       t        t        ||dz         t        t        ||dz         y )NrY   rB   rp  r   r   )	r9   r{   r   r   r   r  r   r   rE   )r4   r]   r  r  rQ  r[   r  rd  s           r(   r  zTestBroadcast.test_geometric&	  s{    ED	E	((9%7499-.$$	1q5!67+j)Y];j)Y];r*   c                    dg}dg}dg}dg}dg}dg}dg}t        j                  g d      }t        t        | j                              }	|	j                  |dz  ||      }
t        |
|       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        t        | j                              }	|	j                  ||dz  |      }
t        |
|       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        t        | j                              }	|	j
                  } ||||dz        }
t        |
|       t        t        ||||dz         t        t        ||||dz         t        t        ||||dz         t        t        ||||dz         t        t        |ddd	       t        t        |ddd	       t        t        |ddd       t        t        |ddd
       t        t        |ddd	       t        t        |ddd       t        t        |dddgd       y )Nr=   rU   rB   rI   r   r  r   r   r   r   i   @i  l        r   i    r.   )	r9   r{   r   r   r   r  r   r   rE   )r4   ngoodnbadr   	bad_ngoodbad_nbadbad_nsample_onebad_nsample_tworQ  r[   rd  	hypergeoms               r(   r  z!TestBroadcast.test_hypergeometric3	  s}   s#D	4$#((9%7499-.&&uqy$@67+j&"7"7QgVj&"7"7HgVj&"7"7D/Zj&"7"7D/Z7499-.&&udQh@67+j&"7"7D1HgVj&"7"71gVj&"7"7q/Zj&"7"7q/Z7499-.))	5$!467+j)YgkJj)UHgkJj)UD/A:MNj)UD/A:MNj)RR8j)RR8j)RR8j)RR8 	j)UB;j)S%<j)S5%.$Gr*   c                    dg}dg}dg}t        j                  g d      }t        t        | j                              }|j
                  } ||dz        }t        ||       t        t        ||dz         t        t        ||dz         y )NrY   rU   rB   )r=   r=   r=   r   )	r9   r{   r   r   r   r  r   r   rE   )r4   r]   r  r  rQ  r[   r  rd  s           r(   r  zTestBroadcast.test_logseries`	  s{    EC	D	((9%7499-.$$	1q5!67+j)Y];j)Y];r*   c                    t        t        | j                              }|j                  ddgdgdz  d      }t	        j
                  g dg dgg d	g d
gg dg dggt        j                        }t        ||       t        t        | j                              }|j                  ddgdgdz        }t	        j
                  g dg dgt        j                        }t        ||       t        t        | j                              }|j                  ddgdgdz  gdz        }t	        j
                  g dg dgt        j                        }t        ||       t        t        | j                              }|j                  dgdggdgdz  gdz        }t	        j
                  g dg dgg dg d
ggt        j                        }t        ||       y )Nrp   r   r  r   r  r   )r   r   rU   r=   rU   r   )rU   r   r   r   rU   r   )r=   r   r=   r   rU   r=   )r   rU   rU   r=   r   r   )r   rU   r   r=   rU   r   )r   rU   r   r   r   rp   rW   rU   )r   r   rU   r=   r=   r=   )r   rU   r   r   rp   r   )r   r   r   ri   r9   r{   r   r   r  s       r(   r  zTestBroadcast.test_multinomialm	  s   7499-.##QGfX\#G((//1//1//1	2
 :<C 	67+7499-.##QGfX\:((..079xxA67+7499-.##QGvhl^a-?@((..079xxA67+7499-.##aS2$K6(Q,!1CD((//1//12 :<C 	67+r*   r  r   c                 r   t        t        | j                              }t        j                  dgdz        }|j                  ||      }t        |t              r
t               n|j                  }|dz   }|j                  |k(  sJ t        j                  ||g      }|j                  ||      }t        j                  ||j                  d d       dz   }|j                  |k(  sJ t        j                  |g|gg      }|j                  ||      }t        j                  ||j                  d d       }|j                  |dz   k(  sJ |j                  ||d|z         }|j                  d|z   dz   k(  sJ t        j                  t              5  |j                  ||d      }d d d        y # 1 sw Y   y xY w)Nr  r   )r   rB   r  r   )r=   r=   r=   r=   r=   r=   )r   r   r   r9   r{   ri   r   rV   r  rz   r  broadcast_shapesr   r   rE   )r4   r  r[   r   rd  n_shaper   s          r(   test_multinomial_pval_broadcastz-TestBroadcast.test_multinomial_pval_broadcast	  s    7499-.%1%##Au-'3/%'QWW 4||~---		5%.)##Au-,,Wekk#26FG$N||~---		E7UG,-##Au-,,Wekk#26FG||~4444##Au6N3J#K||v6====]]:& 	A''5x'@F	A 	A 	As   F--F6c                     t        t        | j                              }dgdz  dgdz  g}t        t        |j
                  d|       t        t        |j
                  dd       y )Nr  r   r  r=   rY   )r   r   r   r   rE   ri   )r4   r[   r   s      r(   test_invalid_pvals_broadcastz*TestBroadcast.test_invalid_pvals_broadcast	  sS    7499-.1ugk*j&"4"4a?j&"4"4a=r*   c                    t        t        | j                              }|j                  t	        j
                  dd      dgdz        }|j                  dk(  sJ |j                  dt	        j
                  d            }|j                  dk(  sJ |j                  t	        j
                  dd      t	        j
                  d	            }|j                  d	k(  sJ y )
N)r   r   r   i8r  r   )r   r   r   r   r   )r   r   r   )r   r   r   )r   r   r   r   )r   r   r   ri   r9   r   rz   r  s      r(   test_empty_outputsz TestBroadcast.test_empty_outputs	  s    7499-.##BHHZ$>!L||},,,##B(=>||{***##BHHY$=$&HH\$:<|||+++r*   N)+rN   rO   rP   r   r1  r  rO  ru  r  r  r  r  r  rV  r  r&  rX  r  rm  r  r  r  r  r  r  rj  r,  rS  r   r  rr  r  r  r  r  r   r   r   r9   r{   r  r  r  rQ   r*   r(   rv  rv  T  s   ?>$?$E	<?*;*!FF?@>*AF <=;?$>$5"I BD&&=P;.?0<<<+HZ<,> [[S2#+288RH#5#+288rdVrdV,<#=#% 
A
A.>,r*   rv  zcan't start threadr  c                   *    e Zd Zd Zd Zd Zd Zd Zy)
TestThreadc                 $    t        d      | _        y )Nr   )r8   seedsrF   s    r(   r   zTestThread.setup_method	  s    1X
r*   c                     ddl m} t        j                  t	        | j
                        f|z         }t        j                  t	        | j
                        f|z         }t        | j
                  |      D cg c]#  \  }} ||t        t        |            |f      % }}}|D 	cg c]  }	|	j                          c}	 |D 	cg c]  }	|	j                          c}	 t        | j
                  |      D ]   \  }} |t        t        |            |       " t        j                         j                  j                  dk(  r t        j                  dk(  rt!        ||       y t#        ||       y c c}}w c c}	w c c}	w )Nr   )Thread)targetargsr   win32)	threadingr  r9   r   rM  r  zipr   r   startjoinintprX   r   r;  platformr   r   )
r4   functionszr  out1out2r5   otrs   s
             r(   check_functionzTestThread.check_function	  s#   $xxTZZ*R/0xxTZZ*R/0 TZZ.0A 89WQZ+@!*DE 0 0qa 

D) 	/DAqYwqz*A.	/ 779??##q(S\\W-D%dD1tT*0s   8(E0'E6E;c                 0    d }| j                  |d       y )Nc                 .    | j                  d      |d<   y )Nr  r   .)r  r   r:  s     r(   
gen_randomz*TestThread.test_normal.<locals>.gen_random	  s    |||/CHr*   )r  r  r  r4   r  s     r(   r  zTestThread.test_normal	  s    	0 	J84r*   c                 0    d }| j                  |d       y )Nc                 T    | j                  t        j                  d            |d<   y )Nre   r.   rx  .)rt  r9   r  r  s     r(   r  z'TestThread.test_exp.<locals>.gen_random	  s"    ((rww{/C(DCHr*   r  r  r  r  s     r(   test_expzTestThread.test_exp	  s    	E 	J;7r*   c                 0    d }| j                  |d       y )Nc                 :    | j                  ddgdz  d      |d<   y )Nr   r  r   r  r   .)ri   r  s     r(   r  z/TestThread.test_multinomial.<locals>.gen_random	  s#    ((fX\(FCHr*   )r  r   r  r  r  s     r(   r  zTestThread.test_multinomial	  s    	G 	J:6r*   N)rN   rO   rP   r   r  r  r  r  rQ   r*   r(   r  r  	  s    +,587r*   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestSingleEltArrayInputc                     t        j                  dg      | _        t        j                  dg      | _        t        j                  dg      | _        d| _        y )NrU   r   r   r  )r9   r{   argOneargTwoargThreetgtShaperF   s    r(   r   z$TestSingleEltArrayInput.setup_method	  s<    hhsmhhsm!r*   c                 d   t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  f}t         j                  t         j                  f}|D ]U  }||v r |t        j                  dg            }n || j                        }t!        |j"                  | j$                         W y r   )r[   rt  r  rU  r%  r  rl  r  r  r  rq  r  r  r9   r{   r  r   rz   r  )r4   funcs	probfuncsr9  r:  s        r(   test_one_arg_funcsz*TestSingleEltArrayInput.test_one_arg_funcs	  s    ##V%:%:!!6#4#4v!!6#3#35 %%v'7'78	 	3Dy 288SE?+ 4;;'DMM2	3r*   c                    t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  f}t         j                  t         j                  f}|D ]  }||v rt        j                   dg      }n| j"                  } || j$                  |      }t'        |j(                  | j*                          || j$                  d   |      }t'        |j(                  | j*                          || j$                  |d         }t'        |j(                  | j*                          y )NrY   r   )r[   r0  r  rN  r  r~  r  rW  r  r  r  r  ri  r\   r   r9   r{   r  r  r   rz   r  )r4   r  r  r9  r  r:  s         r(   test_two_arg_funcsz*TestSingleEltArrayInput.test_two_arg_funcs
  s   fll666&..!!6;;&":":< __f&>&>?	 	3Dy 3% t{{F+CDMM2t{{1~v.CDMM2t{{F1I.CDMM2	3r*   c           	         t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  t         j                  g	}t        j                  }t        j                  dg      }t        j                  dg      }|D ]  } |||||      }t        |j                  | j                          ||d   |||      }t        |j                  | j                          |||d   ||      }t        |j                  | j                          y )Nr=   r   r   )r9   r  r6  r9  r4  r7  r5  ry   r   r8  r[   r2   r{   r   rz   r  )r4   r)   r  r9  r]  r\  r
  r:  s           r(   r  z%TestSingleEltArrayInput.test_integers
  s    "''288RXXryy299bhh		;xx}hhsm 	3BsD82>CDMM2s1vthbACDMM2sDGhbACDMM2	3r*   c                 ,   t         j                  t         j                  t         j                  g}|D ]  } || j                  | j
                  | j                        }t        |j                  | j                          || j                  d   | j
                  | j                        }t        |j                  | j                          || j                  | j
                  d   | j                        }t        |j                  | j                          y )Nr   )
r[   r  r+  r  r  r  r  r   rz   r  )r4   r  r9  r:  s       r(   test_three_arg_funcsz,TestSingleEltArrayInput.test_three_arg_funcs/
  s    $$f&7&7&&(  	3Dt{{DKK?CDMM2t{{1~t{{DMMBCDMM2t{{DKKNDMMBCDMM2	3r*   N)rN   rO   rP   r   r  r  r  r  rQ   r*   r(   r  r  	  s    3&363"3r*   r  r[  c                 x   | d   }| d   }t        |      }|j                  |       |j                  d   d   }t        j                  dk(  r|j                         }t        j                  |      }|j                  d   d   | d   d   k(  sJ |j                         | d   d   k(  sJ |j                         }|j                  d   d   }t        j                  dk(  r|j                         }t        j                  |      }|j                  d   d   | d	   d   k(  sJ |j                         | d	   d   k(  sJ y )
Nr   r   r   r   rs  r   r   r   r   )
r   r>   r   r;  r<  r=  r>  r?  r@  r   )r[  r   r   mt19937r   r?  r   s          r(   test_jumpedr  >
  s7    &>D7OEdmGu
--
 
'C
}}lln^^C F==!%(F9,=e,DDDD	!2<!@@@@^^F
,,w

&C
}}lln^^C F<< '6(+;E+BBBB!1,!????r*   c                     t        j                  d      } t        j                  d      }d}t        j                  | |d      j                  dk(  sJ t        j                  t              5  t        j                  | ||       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      }t        j                  t              5  t        j                  ||       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                  |      }t        j                  t              5  t        j                  ||	       d d d        t        j                  t              5  t        j                  d
ddgd       d d d        t        j                  t              5  t        j                  d
dgdd       d d d        t        j                  t              5  t        j                  d
dgddgd       d d d        t        j                  t              5  t        j                  ddgddgd       d d d        t        j                  dd      }t        j                  dd      }t        j                  dd      }t        j                  |||      j                  dk(  sJ t        j                  t        d      5  t        j                  |||d       d 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   bxY w# 1 sw Y   6x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   fxY w# 1 sw Y   5xY w# 1 sw Y   y xY w)Nr   )r   r   )r   r   rU   )rp   r   r   r   )r=   r   )r   r=   r=   )r   rG  r=   r  gffffff?)rU   r=   rU   rp   zOutput size \(6, 5, 1, 1\) isr   )r   rp   r=   r=   )r9   r  r[   r  rz   r   r   rE   r  r   r\   ri   rU  r  )r  r  r   rz   r:  r  r  r  s           r(   test_broadcast_size_errorr  Z
  sY   	BGGFOED==U=399YFFF	z	" ,b%d+,	z	" .b%f-.	z	" 1b%i01 GGFOE	z	" 0e$/0	z	" 0e$/0	z	" -e!,- ((4.C	z	" .e-. 
z	" 4C:F34	z	" 2A&12	z	" 9Ac
89	z	" :Aq6B8&9: 	#A(A+Aq!Q'--:::	z)I	J 8Aq!,78 8E, ,. .1 10 00 0- -. .4 42 29 9: :8 8s   -N-'N:!O0O)O!"O.0O;)P%P!P"P/
P<-N7:OOO!O+.O8;PPP"P,/P9<Qc                     t        j                  d      } t        j                  d      }t        j                  | |d       t	        j
                  t              5  t        j                  | |d       d d d        y # 1 sw Y   y xY w)Nr   r   rU   )r9   r  r[   r  r   r   rE   )r  r  s     r(   test_broadcast_size_scalarr  
  sa    	BGGAJE
MM"e!M$	z	" )b%a() ) )s   A>>Bc                  v    g g dg} t        t        d            }t        |j                  |        | dg g gk(  sJ y r  )r   r   r
   r  )seqgens     r(   test_ragged_shuffler  
  s=    r1+C
GAJ
Cs{{C(1b"+r*   r]  rI   r)   c                    t        t        d            }|rdnd}t        j                  t        |      5  |j                  | |       d d d        |rdnd}t        j                  t        |      5  |j                  d| |       d d d        t        j                  t        |      5  |j                  dg| |       d d d        y # 1 sw Y   xY w# 1 sw Y   OxY w# 1 sw Y   y xY w)	Nr   zhigh < 0z	high <= 0r   r  z
low > highzlow >= highrB   )r   r   r   r   rE   r2   )r]  r)   r  msgs       r(   !test_single_arg_integer_exceptionr  
  s     GAJ
C *kC	z	- .TH-.",C	z	- 2R12	z	- 4bT4(34 4. .2 24 4s#   C
3C+C"
CC"C+rX   f4f8c                 r   t        j                  dd|       }g d}t        j                  t        d      5  t
        j                  |||        d d d        t        j                  t        d      5  t
        j                  |||j                  |        d d d        y # 1 sw Y   QxY w# 1 sw Y   y xY w)	Nr   F)orderrX   r   zSupplied output arrayr   r  r  )r9   r   r   r   rE   r[   r  rz   )rX   r:  rz   s      r(   test_c_contig_req_outr  
  s     ((6E
2CE	z)@	A ;eE:;	z)@	A Ke399EJK K; ;K Ks   B!4$B-!B*-B6r  r  Cdistc                     t        j                  d||      } | ||      }||u sJ  | |||j                        }||u sJ y )Nr   )rX   r  r  )r:  rX   r   )r9   r   rz   )r  r  rX   r:  variatess        r(   test_contig_req_outr  
  sL    
 ((6e
4C5)Hs??5syy9Hs??r*   c                     t         j                  j                  t         j                  j                  d            } | j	                  d       | j                         \  }\  }}|j                  j                  dk(  sJ t        |        |d }t        |       |j                  |j                  _	        |j                  j                  }|j                  |k(  sJ y )Nr   r=   	PCG64DXSM)r  )r9   r[   r   r  r   
__reduce__	__class__rN   printr   r   )r   ctorbit_gen_r  state_bs         r(   $test_generator_ctor_old_style_pickler  
  s    			RYY003	4Bq==?D+7q%%444	$KnA	!H#MMAOOoo##G==G###r*   c                     dd l } t        j                  j                  t        j                  j	                  d            }|j
                  j                  }| j                  | j                  |            }|j
                  j                  }t        |j                  |j                         t        |j                  |j                         |j
                  j                  j                  d       | j                  | j                  |            }|j
                  j                  }t        |j                  |j                         y )Nr   i4r   )pickler9   r[   r   r  r   seed_seqloadsdumpsr   r   poolspawn)r  r   ssrg_plkss_plks        r(   #test_pickle_preserves_seed_sequencer(  
  s     			RYY00:	;B				"	"B\\&,,r*+F!!**F6<<(&++&##B'\\&,,r*+F!!**F6<<(r*   versiony   ~   c                 0   dd l }dd l}t        j                  j	                  t        j                  j                  t                    d   }t        j                  j                  |dd|  d      }|j                  |      5 }|j                  |      }d d d        j                  j                  d   }t        |t              sJ t        |j                  t        j                  j                         sJ |d   dk(  sJ |d   dk(  sJ y # 1 sw Y   yxY w)	Nr   r  generator_pcg64_npz.pkl.gzr   l	   a*MzJR2MP incl	   sN	D%(^6FA )r  gzipospathsplitabspath__file__r  openloadr   r   r   r   r9   r[   PCG64)r)  r  r/  	base_pathpkl_filegzr   r   s           r(   test_legacy_pickler;  
  s     bggooh78;Iww||6/y@H 
8	 [[_""7+Eb)$$$b&&		888>CCCC<AAAA s   DD)7os.pathr0  r;  r>  r   numpyr9   numpy.exceptionsr   numpy.linalgr   numpy.testingr   r   r   r   r	   r
   r   r   r   r   numpy.randomr   r   r   r   r[   JUMP_TEST_DATAfixturer)   r,   rS   rc   r   r   r   r  rv  r   rt  r  r  r   r  r  r  r  r  r  r   r  r  r(  r;  rQ   r*   r(   <module>rD     s    
    & $; ; ;
 G F	79	 "dmno!clop	 "dmpq!clop	 7"dmpq!clop	, he}5 6!6 !6H> >4) 4)nC- C-L, ,DE EPI, I,X$b	, b	,J G$89+7 +7 :+7^R3 R3j >2@ 3@6(8V) "rd,dE]3
4 4 -
4 4,/K 0K 4,/3*-&"8"8&--!HI J . 0$)$ S#J/B 0Br*   