
    01iL                       S SK r S SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SK
Jr  S SKJrJrJrJr  S SKJrJrJrJrJrJrJrJr  \" \" 5       5      rS SSSS	.S
SS	.S.SSSSS	.SSS	.S./ SQSSSS	.SSS	.S./r\R8                  " SSS/S9S 5       r " S S5      r " S  S!5      r " S" S#5      r  " S$ S%5      r! " S& S'5      r" " S( S)5      r# " S* S+5      r$ " S, S-5      r%\RL                  RO                  \S.S/9 " S0 S15      5       r( " S2 S35      r)\RL                  RU                  S4\5      S5 5       r+S6 r,S7 r-S8 r.\RL                  RU                  S9S:S://5      \RL                  RU                  S;SS/5      S< 5       5       r/\RL                  RU                  S=S>S?/5      S@ 5       r0\RL                  RU                  S=S>S?/5      \RL                  RU                  SASBSC/5      \RL                  RU                  SD\Rb                  \R4                  /5      SE 5       5       5       r2SF r3SG r4\RL                  RU                  SHSISJ/5      SK 5       r5g)L    N)	AxisError)LinAlgError)MT19937	GeneratorRandomStateSeedSequence)IS_WASMassert_assert_allcloseassert_array_almost_equalassert_array_equalassert_equalassert_no_warningsassert_raises
   @bb1636883c2707b51c5b7fc26c6927af4430f2e0785a8c7bc886337f919f9edf	   )
key_sha256pos@ff682ac12bb140f2d72fba8d3506cf4e46817a0db27aae1683867629031d8d55iV  )seedstepsinitialjumpedi$<i8  @16b791a1e04886ccbbb4d448d6ff791267dc458ae599475d08d5cced29d11614i7  @a0110a2cf23b56be0feaed8f787a7fc84bef0cb5623003d75b26bdfa1c18002ci  )i|2iEm:iS43i5  i  @d306cf01314d51bd37892d874308200951a35265ede54d200f1e065004c3e9eai  @0e00ab449f01a5195a83b4aee0dfbc2ce8d46466a640b92e33977d2e42f777f8i  moduleTF)scopeparamsc                     U R                   $ N)param)requests    c/home/james-whalen/.local/lib/python3.13/site-packages/numpy/random/tests/test_generator_mt19937.pyendpointr'   /   s    ==    c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestSeed4   c                     [        [        S5      5      n[        UR                  S5      S5        [        [        S5      5      n[        UR                  S5      S5        g )Nr           D  )r   r   r   integersselfss     r&   test_scalarTestSeed.test_scalar5   sE    gaj!QZZ%s+gj)*QZZ%s+r(   c                    [        [        [        S5      5      5      n[        UR	                  S5      S5        [        [        [
        R                  " S5      5      5      n[        UR	                  S5      S5        [        [        S/5      5      n[        UR	                  S5      S5        [        [        S/5      5      n[        UR	                  S5      S5        g )Nr   r-   i  r   r.   r/   r0   )r   r   ranger   r1   nparanger2   s     r&   
test_arrayTestSeed.test_array;   s    geBi()QZZ%s+gbiim,-QZZ%s+gqcl#QZZ%s+gzl+,QZZ%s+r(   c                 b    [        [        S5      5      n[        UR                  S5      S5        g )Nr      iz)r   r   r   
random_rawr2   s     r&   test_seedsequenceTestSeed.test_seedsequenceE   s"    LO$Q\\!_j1r(   c                 X    [        [        [        S5        [        [        [        S5        g )N      r   	TypeErrorr   
ValueErrorr3   s    r&   test_invalid_scalarTestSeed.test_invalid_scalarI   s    i$/j'2.r(   c                     [        [        [        S/5        [        [        [        S/5        [        [        [        / SQ5        g )NrC   rD   )r>           rE   rH   s    r&   test_invalid_arrayTestSeed.test_invalid_arrayN   s+    i4&1j'B40j'+>?r(   c                 6    [        [        [        [        5        g r#   )r   rG   r   r   rH   s    r&   test_noninstantized_bitgen#TestSeed.test_noninstantized_bitgenT   s    j)W5r(    N)__name__
__module____qualname____firstlineno__r5   r;   r@   rI   rN   rQ   __static_attributes__rS   r(   r&   r*   r*   4   s!    ,,2/
@6r(   r*   c                   &    \ rS rSrS rS rS rSrg)TestBinomialX   c                     [         R                  " SSS9nS HD  n[        [        R	                  SU5      S:H  5        [        [        R	                  X5      U5        MF     g )N   intdtype)r         ?r>   r   )r9   zerosr
   randombinomialr   )r3   rb   ps      r&   test_n_zeroTestBinomial.test_n_zeroY   sI     %(AFOOAq)Q./vu8%@ r(   c                 `    [        [        [        R                  S[        R
                  5        g )Nr>   )r   rG   rc   rd   r9   nanrH   s    r&   test_p_is_nanTestBinomial.test_p_is_nanb   s    j&//1bff=r(   c                    SnSnSn[         R                  XUS9nUR                  5       nX-  n[        R                  " X-  SU-
  -  U-  5      nUSU-  -
  nUS:  d   S5       eS	U S
U S3n	[        Xe-
  5      SU-  :  d   U	5       eg )Nl    tvH. gؗҌ< -1sizer>      r   z0bad test params: 6-sigma lower bound is negativezsample mean z! deviates from the expected mean z by more than 6*sigma)rc   rd   meanr9   sqrtabs)
r3   nre   sample_sizexsample_meanexpected_meansigma	low_boundtest_msgs
             r&   test_p_extremely_small#TestBinomial.test_p_extremely_smallf   s    OOA{O3ffhQ+56
 "AI-	1}PPP}";-/P$o%:<=./!e);EXE;r(   rS   N)rT   rU   rV   rW   rf   rj   r|   rX   rS   r(   r&   rZ   rZ   X   s    A>Fr(   rZ   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestMultinomialy   c                 4    [         R                  SSS/5        g )Nd   皙?皙?rc   multinomialrH   s    r&   
test_basicTestMultinomial.test_basicz   s    3c
+r(   c                 4    [         R                  S/ SQ5        g )Nr   )r   r           r   r   r   rH   s    r&   test_zero_probability%TestMultinomial.test_zero_probability}   s    3 9:r(   c                    [        S[        R                  SS5      s=:*  =(       a    S:  Os  5        [        R                  SSS5      n[        [        R                  " SU:*  5      5        [        [        R                  " US:  5      5        g )NrD      )r
   rc   r1   r9   allr3   rv   s     r&   test_int_negative_interval*TestMultinomial.test_int_negative_interval   s\    foob"-2223OOBA&rQw q2vr(   c           	         SS/n[        [        R                  SU[        R                  " S5      5      R
                  S5        [        [        R                  SU[        R                  " S5      5      R
                  S5        [        [        R                  SU[        R                  " S5      5      R
                  S5        [        [        R                  SUSS/5      R
                  S5        [        [        R                  SUS5      R
                  S5        [        [        R                  SU[        R                  " S5      5      R
                  S5        [        [        [        R                  SU[        S5      5        g )Nra   r>   r>   r]   r]   r]   r]   r]   r]   r]   )
r   rc   r   r9   uint32shapearrayr   rF   floatr3   re   s     r&   	test_sizeTestMultinomial.test_size   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                     [        [        [        R                  SSS/5        [        [        [        R                  SSS/5        g )Nr   皙?r   皙?r   rG   rc   r   rH   s    r&   test_invalid_prob!TestMultinomial.test_invalid_prob   s2    j&"4"4cC:Fj&"4"4cC:Fr(   c                     [        [        [        R                  SSS/5        [        [        [        R                  S/S-  SS/5        g )NrD   r   r   r   r   rH   s    r&   test_invalid_nTestMultinomial.test_invalid_n   s8    j&"4"4b3*Ej&"4"4rdRi#sLr(   c                 L   [         R                  " S5      nU[         R                  " USS S2   5      -  nUSS S2   n[        [	        S5      5      nUR                  SUS9n[        [	        S5      5      nUR                  S[         R                  " U5      S9n[        XE5        g )Ng      .@r>      ۠iUr   )pvals)r9   r:   sumr   r   r   ascontiguousarrayr   )r3   re   r   rc   
non_contigcontigs         r&   test_p_non_contiguous%TestMultinomial.test_p_non_contiguous   s    IIcN	RVVAaddG_!$Q$7:./''5'9
7:./##Cr/C/CE/J#K:.r(   c                 (   [         R                  " / SQ[         R                  S9nXR                  5       -  n[	        [        S5      5      nSn[        R                  " [        US9   UR                  SU5        S S S 5        g ! , (       d  f       g = f)N)
Gz?r   &.>r   r   r   r   r   r   r   r_   r   z-[\w\s]*pvals array is cast to 64-bit floatingmatchr>   )
r9   r   float32r   r   r   pytestraisesrG   r   )r3   rv   r   rc   r   s        r&   test_multinomial_pvals_float32.TestMultinomial.test_multinomial_pvals_float32   sh    HH :ACMEEG7:./@]]:U3q%( 433s   'B
BrS   N)rT   rU   rV   rW   r   r   r   r   r   r   r   r   rX   rS   r(   r&   r   r   y   s,    ,;  GM/)r(   r   c                   D   \ rS rSrSrS r\R                  R                  SSS/5      S 5       r	\R                  R                  S/ S	Q5      \R                  R                  SSS/5      \R                  R                  S
/ SQ5      S 5       5       5       r
S rS rS rSrg)TestMultivariateHypergeometric   i_ c                 v   [        [        [        R                  SS5        [        [        [        R                  / SQS5        [        [        [        R                  / SQS5        [        [        [        R                  / SQS5        [        [        [        R                  / S5        [        [        [        R                  SS	/S
SS5        [        R
                  " [        R                  5      nUR                  nX!R                  R                  -  n[        [        [        R                  US-
  S	/S
SS5        g )Nr      )r]   r   r   rD   )rD   r]   r   r]   r>   iɚ;e   r   	marginalsr   count)
r   rG   rc   multivariate_hypergeometricr9   iinfoint64maxr`   itemsize)r3   
int64_info	max_int64max_int64_indexs       r&   test_argument_validation7TestMultivariateHypergeometric.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	#'7'7'@'@@j&"D"D&,c2Aq'	Cr(   methodr   r   c                 \   [        [        U R                  5      5      nUR                  / SQSUS9n[	        U/ SQ5        UR                  / SUS9n[	        U/ 5        UR                  / SSUS9n[	        U[
        R                  " S[
        R                  S95        UR                  / SQSUS9n[	        U/ SQ5        UR                  / S	QS
US9n[	        U/ SQ5        / SQnUR                  U[        U5      US9n[	        X45        UR                  / SQSS
US9n[	        U/ SQ/S
-  5        g )Nr   r   r   r   r   r>   ro   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   r9   emptyr   r   )r3   r   rc   rv   colorss        r&   test_edge_cases.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< / >1%..y"16< / >1ykAo.r(   nsample)      -   7   ro   )r   r]   r   iI c           	         [        [        U R                  5      5      n[        R                  " / SQ5      nUR                  XQUUS9n[        U[        5      (       a  U4UR                  -   nOX5R                  -   n[        UR                  U5        [        US:  R                  5       5        [        Xe:*  R                  5       5        [        UR                  SS9[        R                  " X1[        S95        [        U[        5      (       a4  US:  a-  [        UR!                  SS9X-  UR                  5       -  SS	S
9  g g g )N)r   r      r   r   r   rD   axis)
fill_valuer`   順 MbP?{Gzt?)rtolatol)r   r   r   r9   r   r   
isinstancer^   r   r   r
   r   r   r   fullr   rq   )r3   r   r   ro   rc   r   sampleexpected_shapes           r&   test_typical_cases1TestMultivariateHypergeometric.test_typical_cases   s    7499-./*33FT;A 4 CdC  "Wv||3N!LL0NV\\>21!!#$!&&()6::2:.7743G	IdC  TV^ FKKQK/#,vzz|;!%E3 &4 r(   c                     [        [        U R                  5      5      nUR                  / SQSSSS9n[        R
                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X#5        g )Nr   r   r   r   )r]   r>   r]   r>   r>   r   r]   r   r   r   r   r   r   r9   r   r   r3   rc   r   expecteds       r&   test_repeatability12TestMultivariateHypergeometric.test_repeatability1  s_    7499-.33Iqq;B 4 D88Y&&&&	( )
 	6,r(   c                     [        [        U R                  5      5      nUR                  / SQSSSS9n[        R
                  " / SQ/ SQ/ SQ/ SQ/ S	Q/5      n[        X#5        g )
Nr      2   r   r   r   r   )r         )      r   )r         )r      r   r   r   s       r&   test_repeatability22TestMultivariateHypergeometric.test_repeatability2  sb    7499-.33L"9:;F 4 H 88\))))	+ ,
 	6,r(   c                     [        [        U R                  5      5      nUR                  / SQSSSS9n[        R
                  " / SQ/ SQ/ SQ/ SQ/ S	Q/5      n[        X#5        g )
Nr   r   r   r   r   )r]   r   r   )r   r   r   )r]   r   r   )r>   r   rp   r   r   s       r&   test_repeatability32TestMultivariateHypergeometric.test_repeatability3(  sb    7499-.33L"9:;F 4 H 88Y&&&&	( )
 	6,r(   rS   N)rT   rU   rV   rW   r   r   r   markparametrizer   r   r   r  r  rX   rS   r(   r&   r   r      s    DCB [[X'=>/ ?/D [[Y8[[X'=>[[V%893 : ? 93,	-
-
-r(   r   c                   ,    \ rS rSrS rS rS rS rSrg)TestSetStatei5  c                     Sn[        [        U5      5      nUR                  nUR                  nUS   US   S   US   S   4nX#U4$ )NIbit_generatorstatekeyr   )r   r   r  r  )r3   r   rgr  r  legacy_states         r&   _create_rngTestSetState._create_rng6  s_    wt}%((##o.gu-gu-/ %''r(   c                     U R                  5       u  pnUR                  SS9nX2l        UR                  SS9n[        [        R
                  " XE:H  5      5        g Nr   rn   r  standard_normalr  r
   r9   r   r3   r  r  r  oldnews         r&   test_gaussian_reset TestSetState.test_gaussian_reset@  sT    #'#3#3#5 5  a (#  a (sz"#r(   c                     U R                  5       u  pnUR                  5         UR                  nUR                  SS9nX2l        UR                  SS9n[        [        R
                  " XE:H  5      5        g r  r  r  s         r&    test_gaussian_reset_in_media_res-TestSetState.test_gaussian_reset_in_media_resH  sm     $(#3#3#5 5
##  a (#  a (sz"#r(   c                 P    U R                  5       u  n  nUR                  SS5        g Nra   )r  negative_binomial)r3   r  _s      r&   test_negative_binomial#TestSetState.test_negative_binomialS  s(     ##%Aq
S#&r(   rS   N)	rT   rU   rV   rW   r  r  r   r&  rX   rS   r(   r&   r  r  5  s    ($	$'r(   r  c                      \ rS rSr\R
                  r\\R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                   /	rS rS rS rS rS rS rS rS	 rS
 rS rS r\R<                  R?                  SS\R@                  " / SQ5      4S\R@                  " / SQ5      4S\R@                  " / SQ5      4/5      S 5       r!S r"S r#S r$S r%S r&S r'S r(\R<                  RR                  \R<                  R?                  SSS\R                  S4SS \R                  S!4S"S#\R                  S$4S%S&\R                  S'4/5      S( 5       5       r*S)r+g*)+TestIntegersiZ  c                 B    [        [        U R                  SU[        S9  g Nr>   r'   r`   )r   rF   rfuncr   )r3   r'   s     r&   test_unsupported_type"TestIntegers.test_unsupported_typea  s    iQOr(   c           
         U R                    GHt  nU[        L a  SO[        R                  " U5      R                  nU[        L a  SO"[        R                  " U5      R
                  S-   nU(       a  US-
  OUn[        [        U R                  US-
  UXS9  [        [        U R                  X4S-   XS9  [        [        U R                  XCXS9  [        [        U R                  SSUUS9  [        [        U R                  US-
  /UXS9  [        [        U R                  U/US-   /XS9  [        [        U R                  U/U/XS9  [        [        U R                  SS/XS9  [        [        U R                  US-   /U/XS9  GMw     g Nr   r]   r>   r,  	itypeboolr9   r   minr   r   rG   r-  r3   r'   dtlbndubnds        r&   test_bounds_checking!TestIntegers.test_bounds_checkingd  sK   **Bd
1(8(8Dd
1(8(81(<D'4!8TD*djj$(D#+7*djj$q#+7*djj$#+7*djj!Q "$ *djj4!8*d#+7*djj4&4!8*#+7*djj4&4&#+7*djj!aS#+7*djj4!8*tf#+7+ r(   c           
         U R                    H  nU[        L a  SO[        R                  " U5      R                  nU[        L a  SO'[        R                  " U5      R
                  U(       + -   n[        [        U R                  US-
  /S-  U/S-  XS9  [        [        U R                  U/S-  US-   /S-  XS9  [        [        U R                  XC/S-  XS9  [        [        U R                  S/S-  SXS9  M     g r1  r2  r6  s        r&   test_bounds_checking_array'TestIntegers.test_bounds_checking_array}  s    **Bd
1(8(8Dd
1(8(8L(ID*djj4!8*q.4&1*#+7*djj4&1*!8*q.8G*djj$
#+7*djj1#'1#+7 r(   c                    U R                    GH8  nU[        L a  SO[        R                  " U5      R                  nU[        L a  SO"[        R                  " U5      R
                  S-   nU(       a  US-
  OUnU(       + nUS-
  n[        U R                  XfU-   SXS9U5        [        U R                  U/Xe-   SXS9U5        Un[        U R                  XfU-   SXS9U5        [        U R                  XfU-   /SXS9U5        X4-   S-  n[        U R                  XfU-   SXS9U5        [        U R                  U/Xe-   /SXS9U5        GM;     g )Nr   r]   r>   r-   ro   r'   r`   r3  r4  r9   r   r5  r   r   r-  )r3   r'   r7  r8  r9  is_opentgts          r&   test_rng_zero_and_extremes'TestIntegers.test_rng_zero_and_extremes  st   **Bd
1(8(8Dd
1(8(81(<D'4!8TD"lG(CCwT-5 $ ABEGSE3=t-5 $ ABEG CCwT-5 $ ABEGC-t-5 $ ABEG ;1$CCwT-5 $ ABEGSECM?)- $ L+ r(   c           
         SnU R                    GH  nU[        L a  SO[        R                  " U5      R                  nU[        L a  SO"[        R                  " U5      R
                  S-   nU(       a  US-
  OUnUS-
  n[        U R                  U/US-   /X#S9U5        [        U R                  U/U-  US-   /U-  US9U5        [        U R                  U/U-  US-   /U-  X#S9U5        Un[        U R                  U/US-   /X#S9U5        [        U R                  U/U-  US-   /U-  US9U5        [        U R                  U/U-  US-   /U-  X#S9U5        XE-   S-  n[        U R                  U/US-   /X#S9U5        [        U R                  U/U-  US-   /U-  US9U5        [        U R                  U/U-  US-   /U-  X#S9U5        GM     g )Nr-   r   r]   r>   ro   r`   r_   rA  )r3   r'   ro   r7  r8  r9  rC  s          r&    test_rng_zero_and_extremes_array-TestIntegers.test_rng_zero_and_extremes_array  s4   **Bd
1(8(8Dd
1(8(81(<D'4!8TD(CSEC!G9)- $ 9:=?sQwi$.b $ :;>@sQwi$.T $ EFIK CSEC!G9)- $ 9:=?sQwi$.b $ :;>@sQwi$.T $ EFIK ;1$CSEC!G9)- $ 9:=?sQwi$.b $ :;>@sQwi$.T $ EFIK5 r(   c                 l   U R                    H{  nU[        L a  SO[        R                  " U5      R                  nU[        L a  SO"[        R                  " U5      R
                  S-   nU(       a  US-
  OUn U R                  X4XS9  M}     g ! [         a  n[        S[        U5      -  5      eS nAff = fNr   r]   r>   r,  zMNo error should have been raised, but one was with the following message:

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

4
C   @$ &68;A&? @ @@s   8B
B3B..B3c                 x   U R                    H  nU[        L a  SO[        R                  " U5      R                  nU[        L a  SO"[        R                  " U5      R
                  S-   nU(       a  US-
  OUn U R                  U/S-  U/XS9  M     g ! [         a  n[        S[        U5      -  5      eS nAff = frK  rL  rP  s         r&   test_full_range_array"TestIntegers.test_full_range_array  s     **Bd
1(8(8Dd
1(8(81(<D'4!8TD@

D6A:v
K   @$ &68;A&? @ @@s   8B
B9B44B9c           
         [        [        5       5      nU R                  SS   HX  nS HO  nU R                  SXA-
  SXS9n[	        UR                  5       U:  5        [	        UR                  5       S:  5        MQ     MZ     U R                  SSU-
  SU[        S9n[	        UR                  5       S:  5        [	        UR                  5       S:  5        g )Nr>   )r   r      r]   i   r@  r   )r   r   r3  r-  r
   r   r5  r4  )r3   r'   rc   r7  r9  valss         r&   test_in_bounds_fuzz TestIntegers.test_in_bounds_fuzz  s    79%**QR.B"zz!T_7+3 " ?
T)*
a(	 # ! zz!Q\( $  &
Q
a r(   c           	         U R                    H  nU[        L a  SO[        R                  " U5      R                  nU[        L a  SO"[        R                  " U5      R
                  S-   nU(       a  US-
  OUnSn[        [        S5      5      nUR                  X4XQUS9n[        [        S5      5      nUR                  U/U/UXS9n[        [        S5      5      nUR                  U/U-  U/U-  XQUS9n	[        Xx5        [        Xy5        M     g )Nr   r]   r>   r-     r@  
r3  r4  r9   r   r5  r   r   r   r1   r   )
r3   r'   r7  r8  r9  ro   rc   scalarscalar_arrayr   s
             r&   test_scalar_array_equiv$TestIntegers.test_scalar_array_equiv  s   **Bd
1(8(8Dd
1(8(81(<D'4!8TDDwt}-F__Td&( % *F wt}-F!??D6D6/7 + CL wt}-FOOTFTMD6#4$*. $ MEv4v-% r(   c           
         SSSSSSSSSS.	nU R                   SS   H  n[        [        S5      5      n[        R                  S	:X  a  UR                  S
SU-
  SUUS9nO$UR                  S
SU-
  SUUS9R                  5       n[        R                  " U5      R                  5       n[        U[        R                  " U5      R                     U:H  5        M     [        [        S5      5      nUR                  S
SU-
  SU[        S9R                  [        R                   5      n[        R                  " U5      R                  5       n[        U[        R                  " [        5      R                     U:H  5        g )N@053594a9b82d656f967c54869bc6970aa0358cf94ad469c81478459c6a90eee3@54de9072b6ee9ff7f20b58329556a46a447a8a29d67db51201bf88baa6e4e5d4@d3a0d5efb04542b25ac712e50d21f39ac30f312a5052e9bbb1ad3baa791ac84b@14e224389ac4580bfbdccb5697d6190b496f91227cf67df60989de3d546389b1@0e203226ff3fbbd1580f15da4621e5f7164d0d8d6b51696dd42d004ece2cbec1)	r4  int16int32r   int8uint16r   uint64uint8r>   r]  littler   rp   r-   r@  r]   )r3  r   r   sys	byteorderr1   byteswaphashlibsha256	hexdigestr
   r9   r`   namer4  viewrk  )r3   r'   rC  r7  rc   valress          r&   test_repeatabilityTestIntegers.test_repeatability  s\    \[[[[[[[[] **QR.Bwt}-F }}(ooaXD8') & + ooaXD8') & ++38:  ..%//1CC))*c12 ! 74=)ooaXD8#  %%)T"''] 	nnS!++-BHHTN''(C/0r(   c           	      d   U R                    GH  nU[        [        R                  4;   a  SO[        R                  " U5      R                  nU[        [        R                  4;   a  SO"[        R                  " U5      R
                  S-   nU(       a  US-
  OUn[        [        S5      5      nUR                  X4SUUS9n[        [        S5      5      nUR                  U/S-  XAUS9n[        Xg5        [        [        S5      5      nUR                  U/S-  U/S-  XS9n[        Xg5        GM"     g )Nr   r]   r>   r]  r-   r@  r,  r^  )r3   r'   r7  r8  r9  rc   rx  val_bcs           r&   test_repeatability_broadcasting,TestIntegers.test_repeatability_broadcasting*  s   **BtRWWo-1288B<3C3CDtRWWo-1288B<3C3Ca3GD'4!8TD wt}-F//$4(#% " 'C wt}-F__dVd]D&( % *F s+wt}-F__dVd]TFTM)1 % =F s+) r(   zbound, expectedr/   )iui,YQiXgi$#Pl   bA i{El   /Yi rM   )ui,YQXgi%#Pl   bA i|El   0Yi        )r  r  l   bA l   1Yi i{,miuHl   HM c                     S [        U5      4 H9  n[        [        S5      5      nUR                  XS9n[	        XSb  UOUS   5        M;     g )Nr]  rn   r   )lenr   r   r1   r   )r3   boundr   ro   rc   rv   s         r&   !test_repeatability_32bit_boundary.TestIntegers.test_repeatability_32bit_boundaryA  sH     3x=)Dwt}-F1A(8HhqkJ *r(   c           
      &   [         R                  " / SQ/ SQ/ SQ// SQ/ SQ/ SQ// SQ/ SQ/ S	Q// S
Q/ SQ/ SQ// SQ/ SQ/ SQ//5      nS HC  n[        [        S5      5      nUR	                  S/S/S/// SQUS9n[        XBb  UOUS   5        ME     g )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)r   r   r   i90  rD   r   r>   )r/   rM   r  rn   )r9   r   r   r   r1   r   )r3   desiredro   rc   rv   s        r&   .test_repeatability_32bit_boundary_broadcasting;TestIntegers.test_repeatability_32bit_boundary_broadcastingP  s    ((AAAC BAAC BAAC BAAC BAACD E &Dwu~.F"sQC 0 =%)   +A q-='71:N &r(   c                    [         R                  SSS-  4SSS4[         R                  S0nU GH[  nX#    GHN  nUu  pVXa-
  n[         R                  " U/S-  /5      n[         R                  " U/S-  5      n[	        [
        [        R                  XVXS	9  [	        [
        [        R                  XvXS	9  [	        [
        [        R                  XXXS	9  [	        [
        [        R                  XxXS	9  [         R                  " U/S-  /[        S
9n	[         R                  " U/S-  [        S
9n
[	        [
        [        R                  XXS	9  [	        [
        [        R                  XZXS	9  [	        [
        [        R                  XXS	9  GMQ     GM^     g )Nr   r]   A   )rD               r   r   r   r   ))r   l            )l         r  r  r  )        r  r   r,  r_   )	r9   rm  r   r   r   rG   rc   r1   object)r3   r'   configsr`   configlowhighlow_ahigh_alow_ohigh_os              r&   &test_int64_uint64_broadcast_exceptions3TestIntegers.test_int64_uint64_broadcast_exceptionsg  sB   991b5z;H88 89 E!."	3%"*.4&2+.j&//3'/>j&//5'/>j&//3'/>j&//5'/> 3%"*V<4&2+V<j&//5'/>j&//3'/>j&//5'/>) ) r(   c                    [         R                  n[         R                  " [         R                  5      R                  n[         R                  " [         R                  " [         R                  5      R                  5      n[         R                  " [         R                  " [         R                  5      R                  S-   U-
  5      n[
        R                  XEXS9n[        Xc5        g r+  )r9   r   r   r   rm  rc   r1   r   )r3   r'   r7  rC  r8  r9  actuals          r&   test_int64_uint64_corner_case*TestIntegers.test_int64_uint64_corner_case  s     XXhhrxx $$xx*../yy"((+//!3h>? hIV!r(   c                    U R                    H  nU[        L a  SO[        R                  " U5      R                  nU[        L a  SO"[        R                  " U5      R
                  S-   nU(       a  US-
  OUnU[        L a  [        R                  OUnU R                  X4XS9n[        UR                  U5        M     [        [        4 H  nU[        L a  SO[        R                  " U5      R                  nU[        L a  SO"[        R                  " U5      R
                  S-   nU(       a  US-
  OUnU R                  X4XS9n[        US5      (       a   e[        [        U5      U5        M     g )Nr   r]   r>   r,  r`   )r3  r4  r9   r   r5  r   r-  r   r`   r^   hasattrtyper3   r'   r7  r8  r9  r   s         r&   test_respect_dtype_singleton)TestIntegers.test_respect_dtype_singleton  s   **Bd
1(8(8Dd
1(8(81(<D'4!8TD$JBBZZXZHFr*  +Bd
1(8(8Dd
1(8(81(<D'4!8TD ZZXZHFvw////fr* r(   c                    U R                    H  nU[        L a  SO[        R                  " U5      R                  nU[        L a  SO"[        R                  " U5      R
                  S-   nU(       a  US-
  OUnU[        L a  [        R                  OUnU R                  U/U/XS9n[        UR                  U5        U R                  U/S-  U/S-  UUS9n[        UR                  U5        M     g r1  )	r3  r4  r9   r   r5  r   r-  r   r`   r  s         r&   test_respect_dtype_array%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           	         U R                    H  nU R                  SSSXS9nUR                  S:X  d   eUR                  U:X  d   eU R                  SSSUUS9R                  S:X  d   e[	        [
        R                  SSSS9R                  S5        [	        [
        R                  SSSS9R                  S5        [	        [
        R                  SSSS9R                  S5        M     g )Nr   r   r   r   r,  r   rn   r   )r3  r-  r   r`   r   rc   r1   )r3   r'   r7  r   s       r&   test_zero_sizeTestIntegers.test_zero_size  s    **BZZ1i(ZMF<<9,,,<<2%%%::aa($&  ((-6 6 6AI>DD"$Ca8>>ERa8>>E r(   c                     [         R                  S:X  a  SOSn[        R                  " [        5         [
        R                  SSSUS9  S S S 5        g ! , (       d  f       g = f)Nbigz<i4z>i4r      r   rG  )rp  rq  r   r   rG   rc   r1   )r3   other_byteord_dts     r&   test_error_byteorder!TestIntegers.test_error_byteorder  sB    $'MMU$:5]]:&OOAs3COD '&&s   A
A!zsample_size,high,dtype,chi2maxi@KL r   g     @_@r   g     b@i i	  g     ȩ@i  g     d@c                     [         R                  X!US9n[        R                  " USS9u  pgX-  nXx-
  S-  U-  R	                  5       n	X:  d   eg )NrG  T)return_countsr]   )rc   r1   r9   uniquer   )
r3   ru   r  r`   chi2maxsamplesvaluescountsr   chi2s
             r&   $test_integers_small_dtype_chisquared1TestIntegers.test_integers_small_dtype_chisquared  sU     //$/F7$?%"Q&1668~~r(   rS   N),rT   rU   rV   rW   rc   r1   r-  r4  r9   rk  rn  ri  rl  rj  r   r   rm  r3  r.  r:  r=  rD  rH  rR  rU  rZ  ra  rz  r~  r   r	  r
  r   r  r  r  r  r  r  r  r  slowr  rX   rS   r(   r&   r)  r)  Z  s   OOE 277BHHbhh		XXryy"((BII7EP7274K>@@! .*!1F,. [[
RXX C D 
E
 ? @ 
A
RXX C D 
E		FKKO.>8".+*+FE [[[[=
1bggu	%
1bhh	&
D"((F	+
D"))V	,	
 r(   r)  c                   "   \ rS rSrSrS rS rS rS rS r	S r
S	 r\R                  R                  S
\R                   \R"                  4\R$                  \R&                  4/5      S 5       rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S r%S r&S r'S r(S  r)S! r*S" r+S# r,S$ r-S% r.\R                  R                  S&\/\0/5      \R                  R                  S'S(\Rb                  " / S)Q/ S*Q/5      4S+\Rb                  " / S,Q/ S-Q/5      4S.\Rb                  " / S/Q/ S0Q/5      4/5      S1 5       5       r2S2 r3S3 r4\R                  R                  S4S5S6/5      S7 5       r5S8 r6S9 r7S: r8S; r9S< r:S= r;S> r<S? r=S@ r>SA r?\R                  R                  \R                  R                  SBSC9SD 5       5       rB\R                  R                  SE/ SFQ/ SGQ/ SHQ/ SIQ/ SJQ/ SKQSL// SMQ/5      SN 5       rCSO rDSP rESQ rFSR rGSS rHST rISU rJSV rKSW rLSX rMSY rNSZ rOS[ rPS\ rQS] rRS^ rSS_ rT\R                  R                  S`\R                  " SLSa5      Sb\R                  Sc/5      Sd 5       rWSe rX\R                  R                  \ZSfSC9\R                  R                  Sg/ ShQ5      Si 5       5       r[\R                  R                  SjS+/Sk//4Sl/S.//4/5      Sm 5       r\\R                  R                  Sg/ ShQ5      Sn 5       r]So r^Sp r_Sq r`Sr raSs rbSt rcSu rdSv reSw rfSx rgSy rhSz riS{ rjS| rkS} rlS~ rmS rnS roS rpS rqS rrS rsS rtS ruS rvS rwS rxS ryS rzS r{S r|S r}S r~S rS rS rS r\R                  R                  SSS/5      S 5       r\R                  R                  SS\GR                  * S\GR                  S/5      \R                  R                  S/ SQ5      S 5       5       rS rS rS rS rS rSrg()TestRandomDisti  r  c                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#5        g )Nc   r   r]   rn   )   %   ir   r   r   r1   r9   r   r   r3   rc   r  r  s       r&   test_integersTestRandomDist.test_integers  sR    7499-.bv6((S#JR3*=>6+r(   c                     [        [        U R                  5      5      nUR                  SSS[        R
                  S9n[        R                  " SS/SS/S	S
//[        R
                  S9n[        X#5        g )Nr   r  r  rG  r      F   D   r   r  r_   )r   r   r   r1   r9   r   r   r   r  s       r&   test_integers_masked#TestRandomDist.test_integers_masked  s`     7499-.BV299E((QGb"X2w7ryyI6+r(   c                     [        [        U R                  5      5      nUR                  SSSSS9n[        R
                  " SS/SS	/S
S//5      n[        X#5        g )Nr  r  r  T)ro   r'   r  r  r  &   r  ir  r  s       r&   test_integers_closed#TestRandomDist.test_integers_closed  sT    7499-.bvE((S#JR3*=>6+r(   c                     [         R                  [        R                  " S5      R                  [        R                  " S5      R                  SS9n[        R                  " S5      R                  n[        X5        g )NlTr'   )rc   r1   r9   r   r   r   )r3   r  r  s      r&   test_integers_max_int$TestRandomDist.test_integers_max_int  sW     #!2!2BHHSM4E4E*. ! 0 ((3-##V%r(   c                 *   [        [        U R                  5      5      nUR                  S5      n[        R
                  " SS/SS/SS//5      n[        X#SS	9  [        [        U R                  5      5      nUR                  5       n[        X#S
   SS	9  g )Nr  gG0Ը?gæ?g2?gu	A?gH
>H?g;dE?r  decimalr  r   r   r   rc   r9   r   r   r  s       r&   test_randomTestRandomDist.test_random  s    7499-.v&((.0AB.0AB.0ABD E 	"&2>7499-.!&$-Dr(   c                     [        [        U R                  5      5      nUR                  S5      n[        R
                  " SS/SS/SS//5      n[        X#SS	9  g )
Nr  CԸ?gP?gtX?g81
A?grO>H?g88dE?r   r  r  r  s       r&   test_random_float TestRandomDist.test_random_float  sY    7499-.v&((Y4'4'46 7 	"&1=r(   c                     [        [        U R                  5      5      nUR                  [        R
                  S9nSn[        X#SS9  g )Nr_   r  r   r  )r   r   r   rc   r9   r   r   r  s       r&   test_random_float_scalar'TestRandomDist.test_random_float_scalar  s8    7499-.RZZ0!&1=r(   zdtype, uint_view_typec                     [        [        U R                  5      5      nUR                  SUS9n[        R
                  " UR                  U5      S-  5      nSUs=:  a  S:  d   e   eg )Nr   r_   r>   i$^  i,e  )r   r   r   rc   r9   count_nonzerorw  )r3   r`   uint_view_typerc   r   num_ones_in_lsbs         r&   test_random_distribution_of_lsb.TestRandomDist.test_random_distribution_of_lsb!  sb     7499-.vU3**6;;~+F+JK ......r(   c                 >    [        [        [        R                  SS9  g )Nrj  r_   )r   rF   rc   rH   s    r&   test_random_unsupported_type+TestRandomDist.test_random_unsupported_type-  s    ig>r(   c                     [        [        U R                  5      5      nUR                  SS5      n[        R
                  " / SQ[        R                  S9n[        X#5        g )Nr   )r   r   r]   r]   r_   r   r   r   choicer9   r   r   r   r  s       r&   test_choice_uniform_replace*TestRandomDist.test_choice_uniform_replace0  sA    7499-.q!$((<rxx86+r(   c                     [        [        U R                  5      5      nUR                  SS/ SQS9n[        R
                  " / SQ[        R                  S9n[        X#5        g )Nr   )皙?r  皙?r  re   )r   r>   r   r>   r_   r  r  s       r&   test_choice_nonuniform_replace-TestRandomDist.test_choice_nonuniform_replace6  sF    7499-.q!';<((<rxx86+r(   c                 B   [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " / SQ[        R                  S9n[        X#5        UR                  SSSSS9n[        R                  " S[        R                  S9n[        X#5        g )Nr   r   Freplacer   r_   )r  shuffle)	r   r   r   r  r9   r   r   r   r:   r  s       r&   test_choice_uniform_noreplace,TestRandomDist.test_choice_uniform_noreplace<  sw    7499-.q!U3((9BHH56+q!UEB))ARXX.6+r(   c                     [        [        U R                  5      5      nUR                  SSS/ SQS9n[        R
                  " / SQ[        R                  S9n[        X#5        g )Nr   r   F)r  333333?ra   r  r  re   )r   r]   r   r_   r  r  s       r&    test_choice_nonuniform_noreplace/TestRandomDist.test_choice_nonuniform_noreplaceE  sH    7499-.q!U6JK((9BHH56+r(   c                     [        [        U R                  5      5      nUR                  / SQS5      n[        R
                  " / SQ5      n[        X#5        g )N)abcdr   )r  r  r  r  r   r   r   r  r9   r   r   r  s       r&   test_choice_noninteger%TestRandomDist.test_choice_nonintegerK  s=    7499-.3Q7((/06+r(   c                     [        [        U R                  5      5      nUR                  SS/SS/SS/SS//S5      n[        R
                  " SS/SS/SS//5      n[        X#5        g )	Nr   r>   r]   r   r   r   rp   r   r  r  s       r&   )test_choice_multidimensional_default_axis8TestRandomDist.test_choice_multidimensional_default_axisQ  sg    7499-.AAAA?C((QFQFQF346+r(   c                     [        [        U R                  5      5      nUR                  SS/SS/SS/SS//SSS	9n[        R
                  " S/S/S/S//5      n[        X#5        g )
Nr   r>   r]   r   r   r   rp   r   r   r  r  s       r&   (test_choice_multidimensional_custom_axis7TestRandomDist.test_choice_multidimensional_custom_axisW  si    7499-.AAAA?K((QC!qcA3/06+r(   c           	         [         R                  n[        [        USS5        [        [        USS5        [        [        U/ S5        [        [        U/ SQSSS/SS//S9  [        [        USS/S/ S	QS9  [        [        USS/SS
S/S9  [        [        USS/SSS/S9  [        [        U/ SQSSS9  [        [        U/ SQSSS9  [        [        U/ SQSSS9  [        [        U/ SQSSS9  [        [        U/ SQSS/ SQS9  g )NrD   r         @)r>   r]   r   r         ?r  r>   r]   )r  r  r   r   r   r  r   r   Fr  rL   )rD   )rD   r>   )r>   r   r   r	  )rc   r  r   rG   )r3   r   s     r&   test_choice_exceptions%TestRandomDist.test_choice_exceptions]  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                 0
   SS/n[        [        R                  " [        R	                  SSS95      5        [        [        R                  " [        R	                  SSS95      5        [        [        R                  " [        R	                  SSUS95      5        [        [        R                  " [        R	                  SSUS95      5        [        [        R                  " [        R	                  SS/SS95      5        [        [        R	                  S /SS9S L 5        [        R
                  " SS/5      n[        R                  " S[        S	9nX#S
'   [        [        R	                  USS9UL 5        Sn[        [        R                  " [        R	                  SUSS95      (       + 5        [        [        R                  " [        R	                  SUSS95      (       + 5        [        [        R                  " [        R	                  SUSUS95      (       + 5        [        [        R                  " [        R	                  SUSUS95      (       + 5        [        [        R                  " [        R	                  SS/USS95      (       + 5        [        [        R	                  S /USS9R                  S
:H  5        [        R
                  " SS/5      n[        R                  " S[        S	9nX#S
'   [        [        R	                  X4SS9R                  5       UL 5        Sn/ SQn[        [        R	                  SUSS9R                  U5        [        [        R	                  SUSS9R                  U5        [        [        R	                  SUSUS9R                  U5        [        [        R	                  SUSUS9R                  U5        [        [        R	                  [        R                  " S5      USS9R                  U5        [        [        R                  S
S
SS9R                  S5        [        [        R                  S
SS
S9R                  S5        [        [        R                  SSS
S9R                  S5        [        [        R	                  S
S
S9R                  S5        [        [        R	                  / SS9R                  S5        [        [        R	                  SS/SS9R                  S5        [        [        [        R                  / S5        g )Nr  r   r]   Tr  Fr	  r>   r_   r   rS   r   )r  r  r  r  r  r   rp   r  rn   r  r  r   r  r  )r
   r9   isscalarrc   r  r   r   r  ndimitemr   r   r:   r1   r   rG   )r3   re   r  arrr4   s        r&   test_choice_return_shape'TestRandomDist.test_choice_return_shapeo  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 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cd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                 v    [         R                  " / SQ5      n/ SQn[        [        [        R
                  XS9  g )N)*   r>   r]   )NNNr  )r9   r   r   rG   rc   r  )r3   r  re   s      r&   test_choice_nan_probabilities,TestRandomDist.test_choice_nan_probabilities  s%    HHZ j&--8r(   c           
      X   [         R                  " S5      S-  nSUSS S2'   [        [        U R                  5      5      nUR                  SSUS S S2   S9n[        [        U R                  5      5      nUR                  SS[         R                  " US S S2   5      S9n[        X45        g )Nr   r   r  r>   r]   r   r  )r9   onesr   r   r   r  r   r   )r3   re   rc   r   r   s        r&   test_choice_p_non_contiguous+TestRandomDist.test_choice_p_non_contiguous  s    GGBK!O!$Q$7499-.]]1a1SqS6]2
7499-.q!r';';AccF'CD:.r(   c                    [         R                  " S5      S-  n[        R                  SS5      nUR                  [         R
                  :X  d   e[        R                  SSSS9nUR                  [         R
                  :X  d   e[        R                  SSUS9nUR                  [         R
                  :X  d   e[        R                  SSUSS9nUR                  [         R
                  :X  d   eg )Nr   g      @r]   Fr  r  )re   r  )r9   r+  rc   r  r`   r   )r3   re   r  s      r&   test_choice_return_type&TestRandomDist.test_choice_return_type  s    GGAJOq!$||rxx'''q!U3||rxx'''q!q)||rxx'''q!q%8||rxx'''r(   c                 J   Sn[        [        U R                  5      5      nUR                  SSSS9n[        R
                  S:w  a  UR                  5       n[        R                  " UR                  [        R                  5      5      R                  5       n[        X:H  5        g )N@4266599d12bfcfb815213303432341c06b4349f5455890446578877bb322e222'  r  Fr  ro  )r   r   r   r  rp  rq  rr  rs  rt  rw  r9   rk  ru  r
   )r3   choice_hashrc   r  ry  s        r&   test_choice_large_sample'TestRandomDist.test_choice_large_sample  su    X7499-.udE:==H$__&FnnV[[12<<>"#r(   c                 N   [        [        U R                  5      5      n[        UR	                  / SQSS9[
        R                  " S5      SS9  [        UR	                  / SQ/SS9/ SQ5        [        UR	                  S//SS9S/SS9  [        UR	                  S//SSS9S/SS9  g )Nr   rS   rn   r>   T)strict)ro   r   )r   r   r   r   r  r9   r   r3   rc   s     r&   "test_choice_array_size_empty_tuple1TestRandomDist.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                 |    [        [        U R                  5      5      nUR                  S5      nSn[	        X#5        g )Nr   s
   	8%)r   r   r   bytesr   r  s       r&   
test_bytesTestRandomDist.test_bytes  s0    7499-.b!5V%r(   c                     S S S S S S S S S	 S
 S 4 HS  n[        [        U R                  5      5      nU" / SQ5      nUR                  U5        UnU" / SQ5      n[	        XE5        MU     g )Nc                 .    [         R                  " / 5      $ r#   r9   r   rv   s    r&   <lambda>-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rxx|r(   c                     U $ r#   rS   rC  s    r&   rD  rE    s    qr(   c                 h    [         R                  " U 5      R                  [         R                  5      $ r#   )r9   asarrayastyperk  rC  s    r&   rD  rE    s    rzz!}33BGG<r(   c                 h    [         R                  " U 5      R                  [         R                  5      $ r#   )r9   rH  rI  r   rC  s    r&   rD  rE    s    rzz!}33BJJ?r(   c                 h    [         R                  " U 5      R                  [         R                  5      $ r#   )r9   rH  rI  	complex64rC  s    r&   rD  rE    s    rzz!}33BLLAr(   c                 T    [         R                  " U 5      R                  [        5      $ r#   )r9   rH  rI  r  rC  s    r&   rD  rE    s    rzz!}33F;r(   c                 4    U  Vs/ s H  oU4PM     sn$ s  snf r#   rS   rv   is     r&   rD  rE    s    21A22s   c                 \    [         R                  " U  Vs/ s H  oU/PM     sn5      $ s  snf r#   )r9   rH  rO  s     r&   rD  rE    s!    rzz1*=1aq61*=>*=s   )c                 D    [         R                  " X /5      R                  $ r#   )r9   vstackTrC  s    r&   rD  rE    s    ryy!022r(   c                     [         R                  " U  Vs/ s H  oU4PM     snS[        4S[        4/5      R                  [         R                  5      $ s  snf )Nr  r  )r9   rH  r^   rw  recarrayrO  s     r&   rD  rE    sG    

A+>AqFA+>-0#Jc
+C!E!%bkk!2!3+>s   Ac                     [         R                  " U  Vs/ s H  oU4PM     snS[        S4S[         R                  S4/5      $ s  snf )Nr  r>   r  )r9   rH  r  rj  rO  s     r&   rD  rE    sB    rzz1*=1aq61*=,/+>,/4+@+B C*=s   A
r>   r]   r   r   r   rp   r   r   r   r   
r   r>   r   r   r   r   r   rp   r]   r   )r   r   r   r  r   )r3   convrc   alistr  r  s         r&   test_shuffleTestRandomDist.test_shuffle  s|     , <?A;2>24CDD" wtyy12F78ENN5!F9:Gv/-Dr(   c                    [        [        U R                  5      5      n[        R                  " S5      R                  S5      nUR                  USS9  [        R                  " / SQ/ SQ/ SQ/ SQ/5      n[        X#5        [        [        U R                  5      5      n[        R                  " S5      R                  S5      nUR                  US	S9  [        X#5        g )
NrX  r   r   r>   r   r   r   r>   r]   r   r   r   rp   r      r   r   r   r  r   r  rD   )	r   r   r   r9   r:   reshaper  r   r   r  s       r&   test_shuffle_custom_axis'TestRandomDist.test_shuffle_custom_axis  s    7499-.2&&v.vA&((,,,,. / 	6+7499-.2&&v.vB'6+r(   c                    [        [        U R                  5      5      n[        R                  " / 5      R                  S5      nS HB  n[        R                  " / 5      R                  S5      nUR                  XCS9  [        XB5        MD     g )N)r   rp   )r   r>   r   )r   r   r   r9   r   rf  r  r   )r3   rc   r  r   r  s        r&   test_shuffle_custom_axis_empty-TestRandomDist.test_shuffle_custom_axis_empty  se    7499-.((2,&&v.DXXb\))&1FNN6N-v/ r(   c                 T   [         R                  " S5      R                  SS5      nUR                  5       n[	        [        U R                  5      5      nUR                  USS9  [	        [        U R                  5      5      nUR                  UR                  5        [        X5        g )Nr   r]   r   r>   r   )
r9   r:   rf  copyr   r   r   r  rT  r   )r3   y1y2rc   s       r&   test_shuffle_axis_nonsquare*TestRandomDist.test_shuffle_axis_nonsquare   su    YYr]""1b)WWY7499-.r"7499-.rtt2"r(   c                    [         R                  R                  [         R                  " [	        S5      S5      S-  S-
  S5      n[         R                  R                  [         R
                  " S5      S-  S-
  S5      nUR                  5       nUR                  5       n[	        S5       H  n[        R                  U5        [        [        UR                  UR                  )    5      [        UR                  UR                  )    5      5        [        R                  U5        [        [        UR                  UR                  )    5      [        UR                  UR                  )    5      5        M     g )Nr   )r   r   r   r>   rD   r   )r9   mamasked_valuesrf  r8   r:   rm  rc   r  r   sorteddatamask)r3   r  r  a_origb_origrP  s         r&   test_shuffle_masked"TestRandomDist.test_shuffle_masked	  s    EE

59f = AA ErJEE		" 1A 5r:rANN1qvvqvvg'V[[L0I)JLNN1qvvqvvg'V[[L0I)JL r(   c           
         [        [        U R                  5      5      n[        R                  " S5      n[        [        UR                  US5        [        R                  " S5      R                  S5      n[        [        UR                  US5        [        [        UR                  U[        SSS 5      5        / SQ/ SQ/n[        [        UR                  US5        [        R                  " S5      n[        [        UR                  U5        [        R                  " S	5      n[        [        UR                  US5        g )
Nr   r>   r   r   r   r   r]   r   )r   r   rp   r  )r   r   r   r9   r:   r   r   r  rf  rF   sliceNotImplementedErrorr   r+  r3   rc   r#  s      r&   test_shuffle_exceptions&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                    [        [        U R                  5      5      n[        R                  " S5      nSUR
                  l        [        R                  " [        SS9   UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr   F	read-onlyr   )r   r   r   r9   rb   flags	writeabler   r   rG   r  )r3   rc   r  s      r&   test_shuffle_not_writeable)TestRandomDist.test_shuffle_not_writeable&  sT    7499-.HHQK!]]:[9NN1 :99s   A::
Bc                 r   [        [        U R                  5      5      n/ SQnUR                  U5      n/ SQn[	        X45        [        [        U R                  5      5      n[
        R                  " / SQ5      R                  nUR                  U5      n[	        U[
        R                  " U5      R                  5        Sn[        [        UR                  U5        Sn[        [        UR                  U5        [        [        U R                  5      5      nSn/ SQnUR                  U5      n[	        X45        g )NrY  rZ  abcdg333333?r   )
r   r   r   r   r   r   r]   r   r>   rp   )
r   r   r   permutationr   r9   
atleast_2drT  r   r   )	r3   rc   r\  r  r  arr_2d	bad_x_strbad_x_floatinteger_vals	            r&   test_permutationTestRandomDist.test_permutation-  s    7499-..##E*06+7499-.=>@@##F+62==#9#;#;<	i!3!3Y?i!3!3[A7499-.0##K06+r(   c                 v   [         R                  " S5      R                  S5      n[         R                  " / SQ/ SQ/ SQ/ SQ/5      n[	        [        U R                  5      5      nUR                  USS9n[        XB5        [	        [        U R                  5      5      nUR                  US	S9n[        XB5        g )
NrX  r`  ra  rb  rc  re  r>   r   rD   )	r9   r:   rf  r   r   r   r   r  r   )r3   r  r  rc   r  s        r&   test_permutation_custom_axis+TestRandomDist.test_permutation_custom_axisF  s    IIbM!!&)((,,,,. / 7499-.##AA#.6+7499-.##AB#/6+r(   c           
      t   [        [        U R                  5      5      n[        R                  " S5      n[        [        UR                  US5        [        R                  " S5      R                  S5      n[        [        UR                  US5        [        [        UR                  U[        SSS 5      5        g )Nr   r>   r   r}  r   r]   )r   r   r   r9   r:   r   r   r  rf  rF   r~  r  s      r&   test_permutation_exceptions*TestRandomDist.test_permutation_exceptionsS  s    7499-.iimi!3!3S!<iil""6*i!3!3S!<i!3!3S%1d:KLr(   r`   zaxis, expectedN)r   r   r   r   r   rd  )r   r   r]   r   r>   rp   r   )rp   r>   r]   r   r   rd  )r   r   r   r   r   r   r>   )r   r   r   r   r]   r>   )rd  r   r   rp   r   r   c                    [        [        U R                  5      5      n[        R                  " S5      R                  SS5      R                  U5      nUR                  XRUS9  [        XS5        [        [        U R                  5      5      n[        R                  " S5      R                  SS5      R                  U5      nUR                  XRS9nUR                  U:X  d   e[        Xc5        g )Nr   r]   rp   r   outr   )
r   r   r   r9   r:   rf  rI  permutedr   r`   )r3   r`   r   r   rc   rv   ys          r&   test_permutedTestRandomDist.test_permuted[  s     7499-.IIbM!!!Q'..u5!,1'7499-.IIbM!!!Q'..u5OOAO)ww%1'r(   c                 `   [        [        U R                  5      5      n[        R                  " S5      R                  SS5      nUR                  5       nUS S 2S S S24   nUR                  USUS9n[        R                  " / SQ/ SQ/5      n[        XV5        XcS S 2S S S24'   [        X25        g )	N   r]   rd  r   r>   r  )r   r   r   rp   )r  r   rd  r   )
r   r   r   r9   r:   rf  rm  r  r   r   )r3   rc   x0x1rv   r  r   s          r&   test_permuted_with_strides)TestRandomDist.test_permuted_with_strideso  s    7499-.YYr]""1b)WWYq#A#vJOOAA1O-88\-/ 01'1cc6
2"r(   c                 F    [         R                  / 5      n[        U/ 5        g r#   )rc   r  r   )r3   r  s     r&   test_permuted_empty"TestRandomDist.test_permuted_empty|  s    OOB1b!r(   outshaper   r   c                     [         R                  " / SQ5      n[         R                  " XR                  S9n[        R
                  " [        SS9   [        R                  X#S9  S S S 5        g ! , (       d  f       g = f)Nr   r_   z
same shaper   r  )	r9   r   rb   r`   r   r   rG   rc   r  )r3   r  r  r  s       r&   "test_permuted_out_with_wrong_shape1TestRandomDist.test_permuted_out_with_wrong_shape  sJ    HHYhhxww/]]:\:OOAO' ;::s   A--
A;c                    [         R                  " S[         R                  S9n[         R                  " S5      n[        R
                  " [        SS9   [        R                  USUS9  S S S 5        g ! , (       d  f       g = f)N)r   r   r_   zCannot castr   r>   r  )	r9   rb   rj  r+  r   r   rF   rc   r  )r3   r  rv   s      r&   !test_permuted_out_with_wrong_type0TestRandomDist.test_permuted_out_with_wrong_type  sO    hhvRXX.GGFO]]9M:OOAA3O/ ;::s   A22
B c                     [         R                  " S5      nSUR                  l        [        R
                  " [        SS9   [        R                  USUS9  S S S 5        g ! , (       d  f       g = f)N)r]   r   Fr  r   r>   r  )	r9   rb   r  r  r   r   rG   rc   r  r   s     r&   test_permuted_not_writeable*TestRandomDist.test_permuted_not_writeable  sH    HHV!]]:[9OOAA1O- :99s   A  
A.c                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )Nr  r   r  rn   gW<$=g^
=g/:Ћ?gG!Gc>g'`2?gU?r  r  )r   r   r   betar9   r   r   r  s       r&   	test_betaTestRandomDist.test_beta  sc    7499-.R&1((#%:;#%:;#%:;=> 	"&2>r(   c                 0   [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/SS	//5      n[        X#5        [        [        U R                  5      5      nUR                  SS5      nSn[        X#5        g )
NgZd;Y@gv/?r  rn   r'  r  0   ,   r   )r   r   r   rd   r9   r   r   r  s       r&   test_binomialTestRandomDist.test_binomial  s    7499-.$V<((RHHH& ' 	6+7499-.$/6+r(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Nr   r  rn   gmE~@@g
1ςC@grӳL@gm%xL@g<kQK@gtK@r   r  )r   r   r   	chisquarer9   r   r   r  s       r&   test_chisquareTestRandomDist.test_chisquare  sf    7499-.!!"6!2((-/?@-/?@-/?@B C 	"&2>r(   c                    [        [        U R                  5      5      n[        R                  " SS/5      nUR                  USS9n[        R                  " SS/SS//S	S
/SS//SS/SS///5      n[        X4SS9  [        R                  " SS/5      n[        [        UR
                  U5        [        [        U R                  5      5      n[        R                  " SS/5      nUR                  U5      n[        X4S   SS9  g )NI<I@EZC@r  rn   g28\h?gɎG/?gAp?g|);?gLX?gfOh?g됷W?g(ސP?gz$Q?gmWt ?g搝K?g4hz?r  r  HzG?缉ؗҜr  )	r   r   r   r9   r   	dirichletr   r   rG   )r3   rc   alphar  r  	bad_alphas         r&   test_dirichlet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                 "   [         R                  " SS/5      n[        [        R	                  U[         R
                  " S5      5      R                  S5        [        [        R	                  U[         R
                  " S5      5      R                  S5        [        [        R	                  U[         R
                  " S5      5      R                  S5        [        [        R	                  USS/5      R                  S5        [        [        R	                  US5      R                  S5        [        [        R	                  U[         R                  " S5      5      R                  S5        [        [        [        R                  U[        S5      5        g )Nr  r  r>   r   r]   r   r   )
r9   r   r   rc   r  r   r   r   rF   r   r   s     r&   test_dirichlet_size"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           	         [         R                  " SS/5      n[        [        [        R
                  U5        [        [        [        R
                  SS//5        [        [        [        R
                  S/S//5        [        [        [        R
                  S/S//S/S///5        [        [        [        R
                  [         R                  " SS/SS//5      5        g )Nr  r  r   r>   )r9   r   r   rG   rc   r  )r3   r  s     r&   test_dirichlet_bad_alpha'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                 :   [         R                  " / SQ5      nUS S S2   n[        [        U R                  5      5      nUR                  USS9n[        [        U R                  5      5      nUR                  [         R                  " U5      SS9n[        XE5        g )N)r  g      r  r]   r  rn   )r9   r   r   r   r   r  r   r   )r3   r  r  rc   r   r   s         r&   #test_dirichlet_alpha_non_contiguous2TestRandomDist.test_dirichlet_alpha_non_contiguous  s    HHGH#A#7499-.%%e&%9
7499-.!!""6"6u"='- " /!*5r(   c                    SnU[         R                  " SS/5      -  n[        [        U R                  5      5      nUR                  USS9n[         R                  " SS/SS//SS/SS//SS/SS///5      n[        XESS9  g )	Nr         ?r   r  rn   r   r  r  )r9   r   r   r   r   r  r   )r3   epsr  rc   r  r   s         r&   test_dirichlet_small_alpha)TestRandomDist.test_dirichlet_small_alpha  s    bhhF|,,7499-.!!%f!588"X"X"X"X"X"X
  	"&B?r(   zcrashes with low memoryreasonc                     [         R                  " / SQ5      nXR                  5       -  n[        [	        U R
                  5      5      nUR                  USS9nUR                  SS9n[        XRSS9  g )N)g{Gz?{Gz?Q?rm   rn   r   r   r   )r   )	r9   r   r   r   r   r   r  rq   r   )r3   r  
exact_meanrc   r   rw   s         r&   %test_dirichlet_moderately_small_alpha4TestRandomDist.test_dirichlet_moderately_small_alpha  sc     +,YY[(
7499-.!!%h!7kkqk)d;r(   r  )r   r   r   r   )ra   r   r   r   )r>   r   r   r         ?r   r   r   )g{Gz?r  r   r   )gh㈵>r   r   r   )gMb`?gQ?r   r   r  r   r   r   r   r   c                 |    [         R                  " U5      n[        R                  U5      n[	        X!S:H     S5        g )Nr   r   )r9   r   rc   r  r   )r3   r  r  s      r&   &test_dirichlet_multiple_zeros_in_alpha5TestRandomDist.test_dirichlet_multiple_zeros_in_alpha  s1     U#Qz]C(r(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Ng8EGr?r  rn   gvM?g?g#c?gQ:N?gAP?gE_9@r  r  )r   r   r   exponentialr9   r   r   r  s       r&   test_exponentialTestRandomDist.test_exponential  sf    7499-.##F#8((.0AB.0AB.0@BD E 	"&2>r(   c                 x    [        [        R                  SS9S5        [        [        [        R                  SS9  g Nr   scale       )r   rc   r  r   rG   rH   s    r&   test_exponential_0!TestRandomDist.test_exponential_0  s,    V''a'0!4j&"4"4C@r(   c                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )Nr   M   r  rn   g}(Ҍ?gi?g=r?g]hDA?gjӨ?g8k*u?r  r  )r   r   r   fr9   r   r   r  s       r&   test_fTestRandomDist.test_f  se    7499-."bv.((.0AB.0@B.0ABD E 	"&2>r(   c                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )Nr   r   r  rn   g,שn'@gt@g<e2@g1a3@g3r
y-2@gs1-2@r  r  )r   r   r   gammar9   r   r   r  s       r&   
test_gammaTestRandomDist.test_gamma&  sd    7499-.a0((.B.0AB.0ABD E 	"&2>r(   c                 |    [        [        R                  SSS9S5        [        [        [        R                  SSS9  g )Nr   )r   r  r  )r   rc   r  r   rG   rH   s    r&   test_gamma_0TestRandomDist.test_gamma_0.  s+    V\\\3Q7j&,,cEr(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS//5      n[        X#5        g )N_c97ݚ?r  rn   r>   rd  r   r   )r   r   r   	geometricr9   r   r   r  s       r&   test_geometricTestRandomDist.test_geometric2  s[    7499-.!!*6!:((QGGH& ' 	6+r(   c                 $   [        [        [        R                  S5        [        [        [        R                  S/S-  5        [        [        [        R                  S5        [        [        [        R                  S/S-  5        [        R
                  " SS9   [        [        [        R                  [        R                  5        [        [        [        R                  [        R                  /S-  5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   ignoreinvalid)r   rG   rc   r  r9   errstateri   rH   s    r&   test_geometric_exceptions(TestRandomDist.test_geometric_exceptions:  s    j&"2"2C8j&"2"2SEBJ?j&"2"2D9j&"2"2TFRK@[[**f&6&6?*f&6&62F +**s   AD
Dc                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )Nr         @r  locr  ro   gA7G@g1Fiҿgei@g_Cg0cPg`(_տr  r  )r   r   r   gumbelr9   r   r   r  s       r&   test_gumbelTestRandomDist.test_gumbelC  se    7499-.:SvF((/1CD/1CD/1CDF G 	"&2>r(   c                 x    [        [        R                  SS9S5        [        [        [        R                  SS9  g r  )r   rc   r  r   rG   rH   s    r&   test_gumbel_0TestRandomDist.test_gumbel_0K  '    V]]]+Q/j&--s;r(   c                 `   [        [        U R                  5      5      nUR                  SSSSS9n[        R
                  " SS/SS/SS//5      n[        X#5        UR                  SS	S
SS9n[        R
                  " / SQ5      n[        X#5        UR                  SS	SSS9n[        R
                  " / SQ5      n[        X#5        UR                  S	SS
SS9n[        R
                  " / SQ5      n[        X#5        UR                  S	SSSS9n[        R
                  " / SQ5      n[        X#5        g )Ng333333$@g      @r  r  rn   r   r   r   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_hypergeometric"TestRandomDist.test_hypergeometricO  s    7499-.&&tS"6&B((aGGG% & 	6+ &&q!QQ&7((<(6+&&r1bq&9((+,6+ &&q!QQ&7((<(6+&&q"bq&9((<(6+r(   c                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )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_laplaceTestRandomDist.test_laplacei  se    7499-.JcG((/2CD/2CD/2CDF G 	"&2>r(   c                 x    [        [        R                  SS9S5        [        [        [        R                  SS9  g r  )r   rc   r  r   rG   rH   s    r&   test_laplace_0TestRandomDist.test_laplace_0q  s'    V^^!^,a0j&..<r(   c                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )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_logisticTestRandomDist.test_logisticu  se    7499-.ZsH((/2CD.2CD/2CDF G 	"&2>r(   c                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )Nr  r	  r  )rq   ry   ro   gܒx?gk*+@g<Ҿ?g
@g5a@g%jz(@r   r  )r   r   r   	lognormalr9   r   r   r  s       r&   test_lognormalTestRandomDist.test_lognormal}  sf    7499-.!!z6!J((o/?@-@-/?@B C 	"&2>r(   c                 x    [        [        R                  SS9S5        [        [        [        R                  SS9  g )Nr   )ry   r>   r  )r   rc   r#  r   rG   rH   s    r&   test_lognormal_0TestRandomDist.test_lognormal_0  s,    V%%A%.2j&"2"2#>r(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#5        g )
Ngƀ@?r  )re   ro   r  r   r      r   r>   )r   r   r   	logseriesr9   r   r   r  s       r&   test_logseriesTestRandomDist.test_logseries  s[    7499-.!!JV!<((RHGF$ % 	6+r(   c                 n    [        [        U R                  5      5      nUR                  S5      S:X  d   eg )Nr   r>   )r   r   r   r+  r9  s     r&   test_logseries_zero"TestRandomDist.test_logseries_zero  s.    7499-."a'''r(   valuerD   r  g      @c                    [        [        U R                  5      5      n[        R                  " SS9   [
        R                  " [        5         UR                  U5        S S S 5        [
        R                  " [        5         UR                  [        R                  " U/S-  5      5        S S S 5        [
        R                  " [        5         UR                  [        R                  " U/S-  5      S S S2   5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nz= f! , (       d  f       N9= f! , (       d  f       g = f)Nr  r  r   r]   )
r   r   r   r9   r  r   r   rG   r+  r   )r3   r1  rc   s      r&   test_logseries_exceptions(TestRandomDist.test_logseries_exceptions  s    7499-.[[*z*  ' +z*  5'B,!78 + z*  5'B,!7!!<= + +***** +* +*sS   ED "E*D ,"E0D1>E
D	E 
D.	*E1
D?	;E
Ec                     [        [        U R                  5      5      nUR                  SS/S-  SS9n[        R
                  " / SQ/ SQ// SQ/ S	Q// S
Q/ SQ//5      n[        X#5        g )Nr   UUUUUU?rp   r  rn   )r>   r   r>   rp   r   r   )r   r]   rp   r]   r   r]   )r   r   r]   rp   r   r>   )r   r   r   r]   r   r   )rp   r   r>   r   r   r]   )r   r   r   r>   r]   r   )r   r   r   r   r9   r   r   r  s       r&   test_multinomialTestRandomDist.test_multinomial  sp    7499-.##B16#B((//1//1//1	2 3 	6+r(   zfp errors don't work in wasmr   )svdeighcholeskyc           	      >   [        [        U R                  5      5      nSnSS/SS//nSnUR                  X4XQS9n[        R
                  " SS/SS	//S
S/SS//SS/SS///5      n[        XgSS9  UR                  X4US9n[        R
                  " SS/5      n[        XgSS9  SS/nSS/SS//n[        [        UR                  X4SS9  SS/SS//n[        R                  " [        UR                  X45        [        R                  " [        UR                  X4SS9  [        [        UR                  X4SS9  [        UR                  X4SS9  [        [        UR                  X4SS9  [        [        UR                  X4SSS9  SS/SS//nUS;   a#  UR                  X4SUS9n[        US   US    S!S9  O[        [        UR                  X4SS9  [        R
                  " SS"/S"S//[        R                  S#9n[        R                   " 5          [        R"                  " S$5        UR                  X4US9  S S S 5        [        R$                  " S5      n	[        R&                  " S5      n[        [        UR                  X4S%S9  [        [        UR                  [        R$                  " S&5      U5        [        [        UR                  U	[        R(                  " S5      5        [        [        UR                  U	[        R&                  " S'5      5        g ! , (       d  f       N= f)(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$("@r]   raise)check_validr:  r;  r  )r>  r   )r9  r:  r   ).r   ).r>   rp   r  r_   errorother)r]   r>   r>   r   )r   r   r   multivariate_normalr9   r   r   r   rG   r   warnsRuntimeWarningr   r   r   warningscatch_warningssimplefilterrb   eyer   )
r3   r   rc   rq   covro   r  r  r  mus
             r&   test_multivariate_normal'TestRandomDist.test_multivariate_normal  s    7499-.1v1v++Dt+K((03DF13EFH13EF14EFH14EF13EFH	I J 	"&2> ++Df+E((-/@AB!&2> 1v1v1vj&"<"<d")	+
 1v1v^V%?%?K^V%?%?"	$k6#=#=t'	) 	655t'/	1 	j&"<"<d")	+j&"<"<d")&	: 1v1v_$008> 1 @G%gfowv./1 +v'A'A4!+- hhC3(+2::>$$&!!'*&&t&@ ' XXa[ffQij&"<"<d")	+j&"<"<hhy)3	0j&"<"<"((6*	,j&"<"<"&&)	% '&s   'L
Lz	mean, covy      ?      ?y                c                     [        [        U R                  5      5      n[        R                  " [
        SS9   UR                  X5        S S S 5        g ! , (       d  f       g = f)Nzmust not be complexr   )r   r   r   r   r   rF   rA  )r3   rq   rH  rc   s       r&   )test_multivariate_normal_disallow_complex8TestRandomDist.test_multivariate_normal_disallow_complex  s?    7499-.]]9,AB&&t1 CBBs   A
A!c                    [        [        U R                  5      5      nSn[        R                  " SS/5      n[        R                  " SS/SS//5      nUR                  XEU4US9nXd-
  nUR                  U-  US-
  -  n[        R                  " [        R                  " UR                  S5      5      S:  5      (       d   e[        R                  " [        R                  " X-
  5      S:  5      (       d   eg )Nr-   r>   r]   r   rL   r  r   )
r   r   r   r9   r   rA  rT  r   rs   rq   )	r3   r   rc   n_srq   rH  r4   s_centercov_emps	            r&   $test_multivariate_normal_basic_stats3TestRandomDist.test_multivariate_normal_basic_stats  s    7499-.xxAhhAA'(&&tvf&M8::(S1W5vvbffX]]2./#56666vvbffW]+c12222r(   c                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#5        g )Nr   g|Pk?r  )rt   re   ro   i  i  i  i  iX  i  )r   r   r   r$  r9   r   r   r  s       r&   r&  %TestRandomDist.test_negative_binomial
  s]    7499-.))C6)G((S#J #J #J( ) 	6+r(   c                     [         R                  " SS9   [        [        [        R
                  S[         R                  5        [        [        [        R
                  S[         R                  /S-  5        S S S 5        g ! , (       d  f       g = f)Nr  r  r   r   )r9   r  r   rG   rc   r$  ri   rH   s    r&   !test_negative_binomial_exceptions0TestRandomDist.test_negative_binomial_exceptions  sS    [[**f&>&>RVVL*f&>&>66(R-) +**s   A!A??
Bc                     [        [        5         [        R                  SS5      nS S S 5        g ! , (       d  f       g = fNr>   r   )r   rG   rc   r$  r   s     r&   #test_negative_binomial_p0_exception2TestRandomDist.test_negative_binomial_p0_exception  s(    :&((A.A '&&s   0
>c                     [         R                  " SS9   [        [        [        R
                  SS5        [        [        [        R
                  S/S/5        S S S 5        g ! , (       d  f       g = f)Nr  r  r  r  )r9   r  r   rG   rc   r$  rH   s    r&   .test_negative_binomial_invalid_p_n_combination=TestRandomDist.test_negative_binomial_invalid_p_n_combination  sH     [[**f&>&>sK*f&>&>#O +**s   AA!!
A/c                    [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  UR                  SSSS9n[        R
                  " SS/SS/SS//5      n[        X#S
S9  [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/SS//5      n[        X#S
S9  g )Nr   r  )dfnoncro   gs؀3J?gugو/@gNJm+@gA}-4@gq=&@gjhn@r  r  ra   r   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_chisquare(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                     [        [        U R                  5      5      nUR                  SSSSS9n[        R
                  " SS/SS	/S
S//5      n[        X#SS9  g )Nr   r]   r>   r  )dfnumdfdenrc  ro   gHP
?gn?g%f?gch?gzƎ?g]?:?r  r  )r   r   r   noncentral_fr9   r   r   r  s       r&   test_noncentral_f TestRandomDist.test_noncentral_f9  sm    7499-.$$1AA*0 % 2((^/?@-@-/?@B C 	"&2>r(   c                     [        [        U R                  5      5      nUR                  SS[        R
                  S9n[        R                  " U5      (       d   eg )Nr   r]   )rh  ri  rc  )r   r   r   rj  r9   ri   isnanr3   rc   r  s      r&   test_noncentral_f_nan$TestRandomDist.test_noncentral_f_nanB  sE    7499-.$$1ABFF$Cxxr(   c                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )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_normalTestRandomDist.test_normalG  se    7499-.:SvF((/2CD/2CD/2CDF G 	"&2>r(   c                 x    [        [        R                  SS9S5        [        [        [        R                  SS9  g r  )r   rc   rs  r   rG   rH   s    r&   test_normal_0TestRandomDist.test_normal_0O  r  r(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        R                  R                  X#S
S9  g )Nr  r  r  ro   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_paretoTestRandomDist.test_paretoS  sp    7499-.&9((35KL35KL35KLN O 	

11&1Kr(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS//5      n[        X#5        g )Nr  r  )lamro   r   )r   r   r   poissonr9   r   r   r  s       r&   test_poissonTestRandomDist.test_poissona  sX    7499-.JV<((QFFF$ % 	6+r(   c                 h   [         R                  " S5      R                  nSn[        [        [
        R                  U5        [        [        [
        R                  U/S-  5        [        [        [
        R                  U5        [        [        [
        R                  U/S-  5        [         R                  " SS9   [        [        [
        R                  [         R                  5        [        [        [
        R                  [         R                  /S-  5        S S S 5        g ! , (       d  f       g = f)Nr   rD   r   r  r  )	r9   r   r   r   rG   rc   r  r  ri   )r3   lambiglamnegs      r&   test_poisson_exceptions&TestRandomDist.test_poisson_exceptionsi  s    '"&&j&..&9j&..6(R-@j&..&9j&..6(R-@[[**fnnbff=*fnnrvvhmD +**s   ;AD##
D1c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Nr  r  rz  gZ >g?gÄ(=g҇?gŚE?gߢH?r  r  )r   r   r   powerr9   r   r   r  s       r&   
test_powerTestRandomDist.test_powert  sc    7499-.
8((24IJ24IJ24IJL M 	"&2>r(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Nr   r  )r  ro   gry@gtQP0@gAI_@g@u81@g	G0@g"wc5@r  r  )r   r   r   rayleighr9   r   r   r  s       r&   test_rayleighTestRandomDist.test_rayleigh|  sc    7499-.r7((-/@A-/@A.0ABD E 	"&2>r(   c                 x    [        [        R                  SS9S5        [        [        [        R                  SS9  g r  )r   rc   r  r   rG   rH   s    r&   test_rayleigh_0TestRandomDist.test_rayleigh_0  s'    V__1_-q1j&//=r(   c                     [        [        U R                  5      5      nUR                  SS9n[        R
                  " SS/SS/SS//5      n[        X#S	S
9  g )Nr  rn   gH1gW|3
g\?gLeg5P	gFA?r  r  )r   r   r   standard_cauchyr9   r   r   r  s       r&   test_standard_cauchy#TestRandomDist.test_standard_cauchy  sd    7499-.''V'4((/1CD/1CD/2CDF G 	"&2>r(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )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_exponential(TestRandomDist.test_standard_exponential  sf    7499-.,,&,G((.0AB.0AB.0ABD E 	"&2>r(   c                 Z    [        [        [        R                  [        R
                  S9  g Nr_   )r   rF   rc   r  r9   rj  rH   s    r&   #test_standard_expoential_type_error2TestRandomDist.test_standard_expoential_type_error  s    i!<!<BHHMr(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Nr   r  r   ro   gΈ̏&?gTϿ?g1n21@gDb<z@gBv@gc^@r  r  r   r   r   standard_gammar9   r   r   r  s       r&   test_standard_gamma"TestRandomDist.test_standard_gamma  sf    7499-.&&QV&<((-/?@+/?@-/?@B C 	"&2>r(   c                     [        [        U R                  5      5      nUR                  S[        R
                  S9nSn[        X#SS9  g )Nr   r_   g   d@rp   r  )r   r   r   r  r9   r   r   r  s       r&   !test_standard_gammma_scalar_float0TestRandomDist.test_standard_gammma_scalar_float  s=    7499-.&&q

&;$!&1=r(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Nr   r  r  gf&?gMO?g1@g):@g@g;i@r   r  r  r  s       r&   test_standard_gamma_float(TestRandomDist.test_standard_gamma_float  s`    7499-.&&QV&<((Wf-$f-$g.0 1 	"&1=r(   c                    [         R                  " S[         R                  S9n[        [	        U R
                  5      5      nUR                  SU[         R                  S9  [         R                  " SS/SS/S	S
//[         R                  S9n[        XSS9  [        [	        U R
                  5      5      nUR                  SUS[         R                  S9  [        XSS9  g )Nr  r_         $@r  r`   gM»L$@ga {@gN]"@gPS")@g_+@gmB@r   r  r  ro   r`   )	r9   rb   r   r   r   r   r  r   r   )r3   r  rc   r  s       r&   test_standard_gammma_float_out-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                 @    [        [        [        R                  SSS9  g )Nr  rj  r_   )r   rF   rc   r  rH   s    r&    test_standard_gamma_unknown_type/TestRandomDist.test_standard_gamma_unknown_type  s    i!6!6#	%r(   c                     [         R                  " S5      n[        [        [        R
                  SSUS9  [        [        [        R
                  SSUS9  g )Nr   r  r   )ro   r  )r   r>   )r9   rb   r   rG   rc   r  )r3   r  s     r&   test_out_size_mismatch%TestRandomDist.test_out_size_mismatch  sA    hhrlj&"7"7B	j&"7"7G	r(   c                 x    [        [        R                  SS9S5        [        [        [        R                  SS9  g )Nr   )r   r  )r   rc   r  r   rG   rH   s    r&   test_standard_gamma_0$TestRandomDist.test_standard_gamma_0  s,    V***3Q7j&"7"7sCr(   c                     [        [        U R                  5      5      nUR                  SS9n[        R
                  " SS/SS/SS//5      n[        X#S	S
9  g )Nr  rn   g
bYg? ?gGH{Lgz\?gc`+?gT}?r  r  )r   r   r   r  r9   r   r   r  s       r&   test_standard_normal#TestRandomDist.test_standard_normal  sd    7499-.''V'4((/2BD/2CD/2CDF G 	"&2>r(   c                 Z    [        [        [        R                  [        R
                  S9  g r  )r   rF   rc   r  r9   rj  rH   s    r&   %test_standard_normal_unsupported_type4TestRandomDist.test_standard_normal_unsupported_type  s    i!7!7rxxHr(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Nr   r  )rb  ro   gV1g	|ڙ(?g-?g NhڿgMc?g!uLM r  r  )r   r   r   
standard_tr9   r   r   r  s       r&   test_standard_tTestRandomDist.test_standard_t  sf    7499-.""bv"6((/2BC/1CD/1CDF G 	"&2>r(   c                     [        [        U R                  5      5      nUR                  SSSSS9n[        R
                  " SS/SS	/S
S//5      n[        X#SS9  g )Ng{Gz@g(\u$@gףp=
W4@r  )leftmoderightro   gEpw@g4DC+@gŋ@g/,@gkuR*@gHNPcr+@r  r  )r   r   r   
triangularr9   r   r   r  s       r&   test_triangularTestRandomDist.test_triangular  so    7499-.""5(. # 0((.0@B.0AB.0ABD E 	"&2>r(   c                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )NGz?gGz%@r  )r  r  ro   gm2@gJaD@g: @g
Q @g@T{e@gb@r  r  r   r   r   uniformr9   r   r   r  s       r&   test_uniformTestRandomDist.test_uniform  se    7499-.Du6B((-0AB.0AB.0ABD E 	"&2>r(   c                 *   [         R                  " S5      R                  n[         R                  " S5      R                  n[        R
                  n[        [        U[         R                  * S5        [        [        US[         R                  5        [        [        X1U5        [        [        U[         R                  * /S/5        [        [        US/[         R                  /5        [        R                  [         R                  " US5      US-  S9  g )Nr   r   r>   g ؅W4vC)r  r  )
r9   finfor5  r   rc   r  r   OverflowErrorinf	nextafter)r3   fminfmaxfuncs       r&   test_uniform_range_bounds(TestRandomDist.test_uniform_range_bounds  s    xx $$xx $$~~mTBFF7A6mT1bff5mT6mTRVVG9qc:mTA39
 	2<<a0td{Cr(   c                 <   [         R                  nU" SS5      n[        US5        U" S[        R                  /S[        R                  /5      n[        US[        R                  /5        U" S/S//SS/5      n[        US[        R
                  " S5      -   5        g )Nr  r   g
ףp= @r   )rc   r  r   r9   pirb   )r3   r  results      r&   test_uniform_zero_range&TestRandomDist.test_uniform_zero_range  s    ~~c3$sBEElS"%%L1bee-y7),w.@A"((6*: :;r(   c                     [         R                  n[        [        USS5        [        [        USS/SS/5        [        [        USS/SS//S5        g )Nr]   r>   r   r   )rc   r  r   rG   )r3   r  s     r&   test_uniform_neg_range%TestRandomDist.test_uniform_neg_range
  sJ    ~~j$1-j$!Q!Q8j$1a&1a&)91=r(   c                 ~    " S S[         R                  5      n[         R                  " S5      R                  U5      n[	        [
        [        R                  UU5         " S S[         R                  5      n[         R                  " S5      R                  U5      n[	        [
        [        R                  USS5        g )Nc                       \ rS rSrS rSrg)GTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloati  c                     [         er#   rF   rH   s    r&   	__float__QTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__      r(   rS   N)rT   rU   rV   rW   r  rX   rS   r(   r&   ThrowingFloatr         r(   r  r  c                       \ rS rSrS rSrg)ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegeri  c                     [         er#   r  rH   s    r&   __int__QTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__   r  r(   rS   N)rT   rU   rV   rW   r  rX   rS   r(   r&   ThrowingIntegerr    r  r(   r  r>   )	r9   ndarrayr   rw  r   rF   rc   r  r  )r3   r  throwing_floatr  throwing_ints        r&   !test_scalar_exception_propagation0TestRandomDist.test_scalar_exception_propagation  s    	 BJJ 	  #++M:i$	&	 bjj 	  xx{''8i!6!6aKr(   c                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )Nr  p=
ף?r  rI  kapparo   gLA?gxyw@gzVR?gpE ?g8&Aпgv @r  r  )r   r   r   vonmisesr9   r   r   r  s       r&   test_vonmisesTestRandomDist.test_vonmises&  se    7499-.D6B((/2CD/2CD/2CDF G 	"&2>r(   c                     [        [        U R                  5      5      nUR                  SSSS9n[	        [
        R                  " U5      R                  5       5        g )Nr   gg5_PG>i@B r  )r   r   r   r   r
   r9   isfiniter   r3   rc   rs      r&   test_vonmises_small"TestRandomDist.test_vonmises_small.  sB    7499-.OOreO<A""$%r(   c                     [        [        U R                  5      5      nUR                  S[        R
                  S9n[        [        R                  " U5      5        g )Nr   )rI  r  )r   r   r   r   r9   ri   r
   rn  r  s      r&   test_vonmises_nan TestRandomDist.test_vonmises_nan4  s;    7499-.OOrO0r(   r  g     @  4&kCc                 \   [        [        U R                  5      5      n[        UR                  5      nUR                  R
                  nUR                  SUSS9nXBR                  l        UR                  SUSS9nUS:  a  [        XV5        g [        R                  " XV:g  5      (       d   eg )Nr   r   rn   g    .A)
r   r   r   r   r  r  r   r   r9   r   )r3   r  rc   rsr  random_state_valsgen_valss          r&   test_vonmises_large_kappa(TestRandomDist.test_vonmises_large_kappa9  s    7499-.--.$$**KK5rK:%*"??1e"?53;-866+78888r(   rI  g      gg	@)r   gư>r>   g     @@r  c                 "   [        [        U R                  5      5      nUR                  XS5      n[	        [
        R                  " U[
        R                  * :  5      =(       a'    [
        R                  " U[
        R                  :*  5      5        g )Nr   )r   r   r   r   r
   r9   r   r  )r3   rI  r  rc   r  s        r&   test_vonmises_large_kappa_range.TestRandomDist.test_vonmises_large_kappa_rangeG  sX     7499-.OOBr*qBEE6z"9rvva255j'9:r(   c                     [        [        U R                  5      5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )Nr  r  r  rq   r  ro   g*س2?gt	@g;S@g\ F@gxF @g6b?r  r  )r   r   r   waldr9   r   r   r  s       r&   	test_waldTestRandomDist.test_waldN  sd    7499-.$d@((-@-/?@-/?@B C 	"&2>r(   c                     [        [        U R                  5      5      nUR                  SSSS9n[	        [
        R                  " US:  5      5        g )Ng    eAg      @r-   r  r   )r   r   r   r  r
   r9   r   )r3   rc   r  s      r&   test_wald_nonnegative$TestRandomDist.test_wald_nonnegativeV  s>    7499-.++3d+>w#~&'r(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Nr  r  rz  gnJZ?g*/F?gs(RY?g]'%?g,qD?g8 ?r  r  )r   r   r   weibullr9   r   r   r  s       r&   test_weibullTestRandomDist.test_weibull[  sc    7499-.$V4((.0AB.0AB.0ABD E 	"&2>r(   c                     [        [        U R                  5      5      n[        UR	                  SSS9[
        R                  " S5      5        [        [        UR                  SS9  g )Nr   r   rz  r  )r  )	r   r   r   r   r  r9   rb   r   rG   r9  s     r&   test_weibull_0TestRandomDist.test_weibull_0c  sD    7499-.V^^ab^1288B<@j&..C8r(   c                     [        [        U R                  5      5      nUR                  SSS9n[        R
                  " SS/SS/SS//5      n[        X#5        g )	Nr  r  rz  r>   r   ic  ib  r]   )r   r   r   zipfr9   r   r   r  s       r&   	test_zipfTestRandomDist.test_zipfh  sX    7499-.t&1((qAJ #J AJ( ) 	6+r(   rS   )rT   rU   rV   rW   r   r  r  r  r  r  r  r  r   r	  r
  r9   r   r   float64rm  r  r  r  r  r  r
  r  r  r  r  r$  r(  r,  r/  r5  r:  r>  r]  rg  rj  rp  rz  r  r  r  r  r  r^   r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  thread_unsafer  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r$  r'  r,  r/  r  ri   r3  r7  skipifr	   rJ  rM  rS  r&  rX  r\  r_  re  rk  rp  rt  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r   r#  r'  rX   rS   r(   r&   r  r    s6    D,,,
&
E>> [[4!zz2995!zz299578/8/?,,,,,,,2$,9\9
/
($(&06,0#L9,2,M [[WsFm4[[-#RXX/C/C/E &F G "((,@,@,B #C D "((,@,@,B #C D	EF
(F 5
(#" [[Z&!5( 6(0.?,?E&
@	P6@ [[[[&?@< A < [[			#			,
		
)
)
?A??F,G?<,4?=???,( [[Wr||B';R&LM
> N
>	, [[(FG[[X'BCF% D HF%P [[[QC6(+<tqcUm*LM2 N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            	       x   \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#\$RJ                  RM                  S"S#\'RP                  " S#S#/5      \'RP                  " S#//S#///5      /5      S$ 5       r)S% r*S& r+S'r,g())TestBroadcastiq  i[c                    [        [        U R                  5      5      nS/nS/nUR                  n[        R
                  " / SQ5      n[        [        U R                  5      5      nUR                  US-  U5      n[        XeSS9  [        [        U R                  5      5      nUR                  X#S-  5      n[        XeSS9  g )Nr   r>   )g4
7^?gF]
"?g .?r   r  r  r  )r3   rc   r  r  r  r  r  s          r&   r  TestBroadcast.test_uniformv  s    7499-.cs..((QR7499-.a.!&2>7499-.AX.!&2>r(   c                    S/nS/nS/n[        [        U R                  5      5      n[        R                  " / SQ5      n[        [        U R                  5      5      nUR                  US-  U5      n[        XeSS9  [        [        UR
                  US-  U5        [        [        U R                  5      5      nUR
                  nU" XS-  5      n[        XeSS9  [        [        XqUS-  5        g )Nr   r>   rD   )gw-Dؿgn0_x?gʊ;<.?r   r  r  )	r   r   r   r9   r   rs  r   r   rG   )r3   r  r  	bad_scalerc   r  r  rs  s           r&   rt  TestBroadcast.test_normal  s    cD	7499-.((QR7499-.sQw.!&2>j&--q)D7499-.QY'!&2>j&y1}=r(   c                    S/nS/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nU" US-  U5      n[        XSS9  [        [        XsS-  U5        [        [        XqS-  U5        [        [        U R                  5      5      nUR                  XS-  5      n[        XSS9  g )	Nr>   r]   rD   rL   )gf8?g%eo?g$q??r   r  r  )	r9   r   r   r   r   r  r   r   rG   )	r3   r  r  bad_abad_br  rc   r  r  s	            r&   r  TestBroadcast.test_beta  s    CC((QR7499-.{{a!eQ!&2>j$	15j$Au57499-.QA&!&2>r(   c                     S/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        g Nr>   rD   )g`ʄ?gE]?g?r   r  r  )	r9   r   r   r   r   r  r   r   rG   r3   r  r1  r  rc   r  s         r&   r  TestBroadcast.test_exponential  sf    D	((PQ7499-.##EAI.!&2>j&"4"4i!mDr(   c                     S/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nU" US-  5      n[        XcSS9  [        [        XRS-  5        g r8  )	r9   r   r   r   r   r  r   r   rG   )r3   r   	bad_shaper  rc   	std_gammar  s          r&   r  !TestBroadcast.test_standard_gamma  sc    D	((PQ7499-.))	519%!&2>j)];r(   c                    S/nS/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nU" US-  U5      n[        XSS9  [        [        XsS-  U5        [        [        XqS-  U5        [        [        U R                  5      5      nUR
                  nU" XS-  5      n[        XSS9  [        [        XsUS-  5        [        [        XqUS-  5        g )	Nr>   r]   rD   rL   )g3ʄ?gJE]?g?r   r  r  )	r9   r   r   r   r   r  r   r   rG   )	r3   r   r  r<  r1  r  rc   r  r  s	            r&   r  TestBroadcast.test_gamma  s    D	D	((PQ7499-.uqy%(!&2>j%Q>j%I>7499-.uai(!&2>j%EAI>j%	A>r(   c                    S/nS/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nU" US-  U5      n[        XSS9  [        [        XsS-  U5        [        [        XqS-  U5        [        [        U R                  5      5      nUR
                  nU" XS-  5      n[        XSS9  [        [        XsUS-  5        [        [        XqUS-  5        g )	Nr>   r]   rD   rL   )gM3B?gybi@g0?r   r  r  )	r9   r   r   r   r   r  r   r   rG   )	r3   rh  ri  	bad_dfnum	bad_dfdenr  rc   r  r  s	            r&   r  TestBroadcast.test_f  s    D	D	((QR7499-.HH519e$!&2>j!]E:j!QY	:7499-.HH5!)$!&2>j!	:j!IM:r(   c           
         S/nS/nS/nS/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  n	U	" US-  X#5      n
[        XSS	9  [         R                  " [         R                  " U	" X[         R                  /S-  5      5      5      (       d   e[        [        XS-  X#5        [        [        XS-  XS5        [        [        XS-  X&5        [        [        U R                  5      5      nUR
                  n	U	" XS-  U5      n
[        XSS	9  [        [        XUS-  U5        [        [        XUS-  U5        [        [        XUS-  U5        [        [        U R                  5      5      nUR
                  n	U	" XUS-  5      n
[        XSS	9  [        [        XX#S-  5        [        [        XXSS-  5        [        [        XX&S-  5        g )
Nr]   r   r   r   rD   rL   )gŜ,n1 @g!6)@g9?r  r  )r9   r   r   r   r   rj  r   r   rn  ri   r   rG   )r3   rh  ri  rc  rB  rC  bad_noncr  rc   nonc_fr  s              r&   rk  TestBroadcast.test_noncentral_f  s   sC	D	4((RS7499-.$$	5/!&2>vvbhhveRVVHqLABCCCCj&a-Ej&!)YEj&!)UE7499-.$$qy$/!&2>j&UQYEj&QEj&HE7499-.$$dQh/!&2>j&U1HEj&1HEj&1Er(   c                     [        [        U R                  5      5      n[        R                  " SS/5      nUR                  SSSSS9n[        X2SS9  g )NgZ\#?gDqw?r   r]   rn   r  r  )r   r   r   r9   r   rj  r   )r3   rc   r  r  s       r&   test_noncentral_f_small_df(TestBroadcast.test_noncentral_f_small_df  sL    7499-.((,o>?$$S#qq$9!&2>r(   c                     S/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        g )Nr>   rD   )gC{?g7Q#?g%h1T@r   r  r  )	r9   r   r   r   r   r  r   r   rG   r3   rb  bad_dfr  rc   r  s         r&   r  TestBroadcast.test_chisquare  sf    S((PQ7499-.!!"q&)!&2>j&"2"2FQJ?r(   c                    S/nS/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nU" US-  U5      n[        XSS9  [        [        XsS-  U5        [        [        XqS-  U5        [        [        U R                  5      5      nUR
                  nU" XS-  5      n[        XSS9  [        [        XsUS-  5        [        [        XqUS-  5        g )	Nr>   r]   rD   rL   )g-S?g[@gr3/.?r   r  r  )	r9   r   r   r   r   rd  r   r   rG   )	r3   rb  rc  rN  rF  r  rc   nonc_chir  s	            r&   re  'TestBroadcast.test_noncentral_chisquare  s    Ss4((OP7499-..."q&$'!&2>j(QJ=j(FH=7499-..."Qh'!&2>j(D1H=j(1=r(   c                     S/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        g )Nr>   rD   )g>Qg{g,e?r   r  r  )	r9   r   r   r   r   r  r   r   rG   rM  s         r&   r  TestBroadcast.test_standard_t0  sf    S((ST7499-.""26*!&2>j&"3"3VaZ@r(   c                    S/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR                  US-  U5      n[        XdSS9  [        [        UR
                  US-  U5        [        [        U R                  5      5      nUR                  XS-  5      n[        XdSS9  [        [        UR
                  XS-  5        g )Nr]   r>   rD   )gD()@g,)ʸ@gPor   r  r  )	r9   r   r   r   r   r   r   r   rG   )r3   rI  r  	bad_kappar  rc   r  s          r&   r  TestBroadcast.test_vonmises:  s    SD	((RS7499-.a/!&2>j&//269E7499-.QY/!&2>j&//21}Er(   c                     S/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        g )Nr>   rD   )g/h?gcE?g/gV?r   r  r  )	r9   r   r   r   r   r|  r   r   rG   r3   r  r4  r  rc   r  s         r&   r  TestBroadcast.test_paretoJ  sb    C((PQ7499-.q1u%!&2>j&--;r(   c                     S/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        g r8  )	r9   r   r   r   r   r  r   r   rG   rY  s         r&   r   TestBroadcast.test_weibullT  sb    C((PQ7499-.A&!&2>j&..%!)<r(   c                     S/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        g )Nr>   rD   )gT?gʥ?gKܮc?r   r  r  )	r9   r   r   r   r   r  r   r   rG   rY  s         r&   r  TestBroadcast.test_power^  sb    C((QR7499-.a!e$!&2>j&,,	:r(   c                    S/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nU" US-  U5      n[        XtSS9  [        [        XaS-  U5        [        [        U R                  5      5      nUR
                  nU" XS-  5      n[        XtSS9  [        [        XaUS-  5        g )Nr   r>   rD   )gh&BgsgR#?r   r  r  )	r9   r   r   r   r   r  r   r   rG   )r3   r  r  r1  r  rc   r  r  s           r&   r  TestBroadcast.test_laplaceh  s    cD	((ST7499-...q%(!&2>j'7I>7499-...ai(!&2>j'	A>r(   c                    S/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nU" US-  U5      n[        XtSS9  [        [        XaS-  U5        [        [        U R                  5      5      nUR
                  nU" XS-  5      n[        XtSS9  [        [        XaUS-  5        g )Nr   r>   rD   )gs4?g$Cw%T?gտr   r  r  )	r9   r   r   r   r   r  r   r   rG   )r3   r  r  r1  r  rc   r  r  s           r&   r  TestBroadcast.test_gumbelz  s    cD	((RS7499-.a'!&2>j&'9=7499-.QY'!&2>j&y1}=r(   c                    S/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR                  US-  U5      n[        XdSS9  [        [        UR
                  US-  U5        [        [        U R                  5      5      nUR                  XS-  5      n[        XdSS9  [        [        UR
                  XS-  5        [        UR                  SS	5      S5        g )
Nr   r>   rD   )g$DgXPg,?r   r  r  r  r   )
r9   r   r   r   r   r  r   r   rG   r   )r3   r  r  r1  r  rc   r  s          r&   r   TestBroadcast.test_logistic  s    cD	((QR7499-.q%0!&2>j&//37IF7499-.ai0!&2>j&//3AFV__S#.4r(   c                    S/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nU" US-  U5      n[        XtSS9  [        [        XaS-  U5        [        [        U R                  5      5      nUR                  XS-  5      n[        [        UR
                  XS-  5        g )Nr   r>   rD   )g c?gu@gVQ?r   r  r  )	r9   r   r   r   r   r#  r   r   rG   )r3   rq   ry   	bad_sigmar  rc   r#  r  s           r&   r$  TestBroadcast.test_lognormal  s    sD	((QR7499-.$$	4!8U+!&2>j)AXyA7499-.!!$	2j&"2"2Da-Hr(   c                     S/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        g )Nr>   rD   )gs(?g4mK?gVk+?r   r  r  )	r9   r   r   r   r   r  r   r   rG   r9  s         r&   r  TestBroadcast.test_rayleigh  sh    D	((!
 7499-.+!&2>j&//9q=Ar(   c                 2   S/nS/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR                  US-  U5      n[        XuSS9  [        [        UR
                  US-  U5        [        [        UR
                  US-  U5        [        [        U R                  5      5      nUR                  XS-  5      n[        XuSS9  [        [        UR
                  X2S-  5        [        [        UR
                  XS-  5        g )	Nra   r>   r   rL   )gk7Z?g*}z9?gc-	?r   r  r  )	r9   r   r   r   r   r  r   r   rG   )r3   rq   r  bad_meanr1  r  rc   r  s           r&   r  TestBroadcast.test_wald  s    u3D	((OP7499-.TAXu-!&2>j&++x!|UCj&++taxC7499-.T19-!&2>j&++xCj&++t]Cr(   c                    S/nS/nS/nS/nS/nUS-  u  pg[         R                  " / SQ5      n[        [        U R                  5      5      n	U	R
                  n
U
" US-  X25      n[        XSS9  [        [        XS-  X25        [        [        XS-  XR5        [        [        XS-  UU5        [        [        U R                  5      5      n	U	R
                  n
U
" XS-  U5      n[        XSS9  [        [        XUS-  U5        [        [        XUS-  U5        [        [        XUS-  U5        [        [        U R                  5      5      n	U	R
                  n
U
" XUS-  5      n[        XSS9  [        [        XX2S-  5        [        [        XXRS-  5        [        [        XUUS-  5        [        [        U
SS	S
5        [        [        U
SSS
5        [        [        U
SSS5        g )Nr>   r   r]   r   )gR8T>?gK?g;>h@r  r  r  r   g      4@g      9@)	r9   r   r   r   r   r  r   r   rG   )r3   r  r  r  bad_left_onebad_mode_onebad_left_twobad_mode_twor  rc   r  r  s               r&   r  TestBroadcast.test_triangular  s   ssss%*QY"((QR7499-.&&
D1Hd2!&2>j*Q.>Lj*QhLj*Q.>	 7499-.&&
D(E2!&2>j*D1HeLj*L14DeLj*L1<L	 7499-.&&
D	2!&2>j*D!)Lj*L!)Lj*Lai	! 	j*c2s;j*c3<j*c3<r(   c                 >   S/nS/nS/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nU" US-  U5      n	[        X5        [        [        XS-  U5        [        [        XS-  U5        [        [        XS-  U5        [        [        U R                  5      5      nUR                  XS-  5      n	[        X5        [        [        XUS-  5        [        [        XUS-  5        [        [        XUS-  5        g )Nr>   ra   rD   r  r   r   r>   r   )	r9   r   r   r   r   rd   r   r   rG   )
r3   rt   re   bad_n	bad_p_one	bad_p_twor  rc   binomr  s
             r&   r  TestBroadcast.test_binomial  s    CED	E	((9%7499-.q1ua6+j%A6j%Q	:j%Q	:7499-.E*6+j%A6j%IM:j%IM:r(   c                 ^   S/nS/nS/nS/nS/n[         R                  " / SQ[         R                  S9n[        [	        U R
                  5      5      nUR                  nU" US-  U5      n	[        X5        [        [        XS-  U5        [        [        XS-  U5        [        [        XS-  U5        [        [	        U R
                  5      5      nUR                  nU" XS-  5      n	[        X5        [        [        XUS-  5        [        [        XUS-  5        [        [        XUS-  5        g )Nr>   ra   rD   r  )r   r]   r>   r_   r   )
r9   r   r   r   r   r   r$  r   r   rG   )
r3   rt   re   ru  rv  rw  r  rc   	neg_binomr  s
             r&   r&  $TestBroadcast.test_negative_binomial	  s   CED	E	((9BHH57499-.,,	1q5!$6+j)QY:j)UI>j)UI>7499-.,,	1!e$6+j)AE:j)	A>j)	A>r(   c                 0   S/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nUS-  /nUR                  nU" US-  5      n[        X5        [        [        XrS-  5        [        [        XvS-  5        g )Nr>   rD   )r   r   r   r]   r   )
r9   r   r   r   r   _poisson_lam_maxr  r   r   rG   )	r3   r  bad_lam_oner  rc   max_lambad_lam_twor  r  s	            r&   r  TestBroadcast.test_poisson%	  s    cd((9%7499-.)){m..q!6+j'?;j'?;r(   c                    S/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nU" US-  5      n[        Xc5        [        [        XRS-  5        [         R                  " SS9   [        [        U[         R                  5        [        [        USS[         R                  /5        S S S 5        g ! , (       d  f       g = f)Nr]   r   )r>   r   r>   r   r  r  )r9   r   r   r   r   r&  r   r   rG   r  ri   )r3   r  r4  r  rc   r&  r  s          r&   r'  TestBroadcast.test_zipf4	  s    C((9%7499-.{{a!e6+j$	2[[**dBFF3*dQ266N; +**s   AC
Cc                    S/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nU" US-  5      n[        Xt5        [        [        XbS-  5        [        [        XcS-  5        g )Nra   rD   r  r   r   )	r9   r   r   r   r   r  r   r   rG   )r3   re   rv  rw  r  rc   r  r  s           r&   r  TestBroadcast.test_geometricB	  su    ED	E	((9%7499-.$$	1q5!6+j)];j)];r(   c                 v   S/nS/nS/nS/nS/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      n	U	R                  US-  X#5      n
[        X5        [        [        U	R
                  US-  X#5        [        [        U	R
                  US-  XS5        [        [        U	R
                  US-  X&5        [        [        U	R
                  US-  X'5        [        [        U R                  5      5      n	U	R                  XS-  U5      n
[        X5        [        [        U	R
                  XBS-  U5        [        [        U	R
                  XS-  U5        [        [        U	R
                  XS-  U5        [        [        U	R
                  XS-  U5        [        [        U R                  5      5      n	U	R
                  nU" XUS-  5      n
[        X5        [        [        XX#S-  5        [        [        XXSS-  5        [        [        XX&S-  5        [        [        XX'S-  5        [        [        USSS	5        [        [        USSS	5        [        [        USSS5        [        [        USSS
5        [        [        USSS	5        [        [        USSS5        [        [        USSS/S5        g )Nr>   r]   rD   rL   r   rt  r   r   r   r   i   @i  l        r   i    r-   )	r9   r   r   r   r   r  r   r   rG   )r3   ngoodnbadr   	bad_ngoodbad_nbadbad_nsample_onebad_nsample_twor  rc   r  	hypergeoms               r&   r  !TestBroadcast.test_hypergeometricO	  sQ   s#D	4$#((9%7499-.&&uqy$@6+j&"7"7QVj&"7"7HVj&"7"7DZj&"7"7DZ7499-.&&uQh@6+j&"7"71HgVj&"7"71gVj&"7"7q/Zj&"7"7q/Z7499-.))	5!46+j)kJj)HkJj)DA:MNj)DA: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                    S/nS/nS/n[         R                  " / SQ5      n[        [        U R                  5      5      nUR
                  nU" US-  5      n[        Xt5        [        [        XbS-  5        [        [        XcS-  5        g )Nra   r]   rD   )r>   r>   r>   r   )	r9   r   r   r   r   r+  r   r   rG   )r3   re   rv  rw  r  rc   r+  r  s           r&   r,  TestBroadcast.test_logseries|	  su    EC	D	((9%7499-.$$	1q5!6+j)];j)];r(   c                    [        [        U R                  5      5      nUR                  SS/S/S-  SS9n[        R
                  " / SQ/ SQ// S	Q/ S
Q// SQ/ SQ//[        R                  S9n[        X#5        [        [        U R                  5      5      nUR                  SS/S/S-  5      n[        R
                  " / SQ/ SQ/[        R                  S9n[        X#5        [        [        U R                  5      5      nUR                  SS/S/S-  /S-  5      n[        R
                  " / SQ/ SQ/[        R                  S9n[        X#5        [        [        U R                  5      5      nUR                  S/S//S/S-  /S-  5      n[        R
                  " / SQ/ SQ// SQ/ S
Q//[        R                  S9n[        X#5        g )Nr   r   r6  rp   r  rn   )r   r   r]   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]   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   r9   r   r   r   r  s       r&   r7  TestBroadcast.test_multinomial	  s   7499-.##QGfX\#G((//1//1//1	2
 :<C 	6+7499-.##QGfX\:((..079xxA6+7499-.##QGvhl^a-?@((..079xxA6+7499-.##aS2$K6(Q,!1CD((//1//12 :<C 	6+r(   rt   r   c                 n   [        [        U R                  5      5      n[        R                  " S/S-  5      nUR                  X5      n[        U[        5      (       a  SOUR                  nUS-   nUR                  U:X  d   e[        R                  " X3/5      nUR                  X5      n[        R                  " XSR                  S S 5      S-   nUR                  U:X  d   e[        R                  " U/U//5      nUR                  X5      n[        R                  " XSR                  S S 5      nUR                  US-   :X  d   eUR                  XSU-   S9nUR                  SU-   S-   :X  d   e[        R                  " [        5         UR                  XSS9nS S S 5        g ! , (       d  f       g = f)	Nr  r   rS   )r   rD   r  rn   )r>   r>   r>   r>   r>   r>   )r   r   r   r9   r   r   r   r^   r   rS  broadcast_shapesr   r   rG   )r3   rt   rc   r   r  n_shaper   s          r&   test_multinomial_pval_broadcast-TestBroadcast.test_multinomial_pval_broadcast	  s{    7499-.%1%##A-"1c**" 4||~---		5.)##A-,,Wkk#26FG$N||~---		E7UG,-##A-,,Wkk#26FG||~4444##A6N3J#K||v6====]]:&''x'@F '&&s   F&&
F4c                     [        [        U R                  5      5      nS/S-  S/S-  /n[        [        UR
                  SU5        [        [        UR
                  SS5        g )Nr6  rp   r  r>   ra   )r   r   r   r   rG   r   )r3   rc   r   s      r&   test_invalid_pvals_broadcast*TestBroadcast.test_invalid_pvals_broadcast	  sS    7499-.1ugk*j&"4"4a?j&"4"4a=r(   c                    [        [        U R                  5      5      nUR                  [        R
                  " SS5      S/S-  5      nUR                  S:X  d   eUR                  S[        R
                  " S5      5      nUR                  S:X  d   eUR                  [        R
                  " SS5      [        R
                  " S	5      5      nUR                  S	:X  d   eg )
N)r   r   rp   i8r6  rp   )r   r   rp   rp   r   )r   r   r   )r   r   r   )r   r   r   r   )r   r   r   r   r9   r   r   ro  s      r&   test_empty_outputs TestBroadcast.test_empty_outputs	  s    7499-.##BHHZ$>!L||},,,##B(=>||{***##BHHY$=$&HH\$:<|||+++r(   rS   N)-rT   rU   rV   rW   r   r  rt  r  r  r  r  r  rk  rJ  r  re  r  r  r  r   r  r  r  r   r$  r  r  r  r  r&  r  r'  r  r  r,  r7  r   r	  r
  r9   r   r  r  r  rX   rS   r(   r&   r-  r-  q  s    D?>$?$E	<?*;*!FF?@>*AF <=;?$>$5"I BD&&=P;.?0<<<+HZ<,> [[S2#%88RH#5#%88rdVrdV,<#=#% 
A
A.>,r(   r-  zcan't start threadr  c                   <    \ rS rSr\" S5      rS rS rS rS r	Sr
g)	
TestThreadi	  r   c                 
   SSK Jn  [        R                  " [	        U R
                  5      4U-   5      n[        R                  " [	        U R
                  5      4U-   5      n[        U R
                  U5       VVs/ s H   u  pgU" U[        [        U5      5      U4S9PM"     nnnU V	s/ s H  oR                  5       PM       n	U V	s/ s H  oR                  5       PM       n	[        U R
                  U5       H   u  pgU" [        [        U5      5      U5        M"     [        R                  " 5       R                  R                  S:X  a   [        R                  S:X  a  [!        XE5        g [#        XE5        g s  snnf s  sn	f s  sn	f )Nr   )Thread)targetargsr   win32)	threadingr  r9   r   r  seedszipr   r   startjoinintpr`   r   rp  platformr   r   )
r3   functionszr  out1out2r4   otrv   s
             r&   check_functionTestThread.check_function	  s   $xxTZZ*R/0xxTZZ*R/0 TZZ.0. 89WQZ+@!*DE. 	
 0AqA1a1 

D)DAYwqz*A. * 779??##q(S\\W-D%d1t*0s   :'E5(E;F c                 *    S nU R                  USS9  g )Nc                 (    U R                  SS9US'   g )Nr3  rn   .)rs  r  r  s     r&   
gen_random*TestThread.test_normal.<locals>.gen_random	  s    |||/CHr(   )r3  r  r  r3   r  s     r&   rt  TestThread.test_normal	  s    	0 	J84r(   c                 *    S nU R                  USS9  g )Nc                 P    U R                  [        R                  " S5      S9US'   g )Nr   r-   r  .)r  r9   r+  r  s     r&   r  'TestThread.test_exp.<locals>.gen_random	  s"    ((rww{/C(DCHr(   r  r  r  r  s     r&   test_expTestThread.test_exp	  s    	E 	J;7r(   c                 *    S nU R                  USS9  g )Nc                 4    U R                  SS/S-  SS9US'   g )Nr   r6  rp   r3  rn   .)r   r  s     r&   r  /TestThread.test_multinomial.<locals>.gen_random	  s#    ((fX\(FCHr(   )r3  rp   r  r  r  s     r&   r7  TestThread.test_multinomial	  s    	G 	J:6r(   rS   N)rT   rU   rV   rW   r8   r  r  rt  r  r7  rX   rS   r(   r&   r  r  	  s!     !HE+,587r(   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestSingleEltArrayInputi
  c                     [         R                  " S/5      [         R                  " S/5      [         R                  " S/5      S4$ )Nr]   r   r   rX  rB  rH   s    r&   _create_arrays&TestSingleEltArrayInput._create_arrays
  s/    xx}bhhsmRXXqc]D@@r(   c                 l   U R                  5       u  n  p#[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  4n[        R                  [        R                  4nU HD  nXe;   a  U" [        R                  " S/5      5      nOU" U5      n[!        UR"                  U5        MF     g r#  )r  rc   r  r  r  r  r|  r  r  r  r  r&  r  r+  r9   r   r   r   )r3   argOner%  tgtShapefuncs	probfuncsr  r  s           r&   test_one_arg_funcs*TestSingleEltArrayInput.test_one_arg_funcs
  s    !%!4!4!61##V%:%:!!6#4#4v!!6#3#35 %%v'7'78	D 288SE?+ 6lH- r(   c                 $   U R                  5       u  pp4[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  4n[        R                  [        R                  4nU H  nXv;   a  [         R"                  " S/5      nOUnU" X5      n[%        UR&                  U5        U" US   U5      n[%        UR&                  U5        U" XS   5      n[%        UR&                  U5        M     g )Nra   r   )r  rc   r  rs  r  r  r  rd  r   r  r  r  r#  r  rd   r$  r9   r   r   r   )	r3   r  argTwor%  r  r  r  r  r  s	            r&   test_two_arg_funcs*TestSingleEltArrayInput.test_two_arg_funcs
  s   &*&9&9&;#fll666&..!!6;;&":":< __f&>&>?	D 3%  v&CH-vay&)CH-vay)CH- r(   c           	         U R                  5       u      p#[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  [        R                  /	n[        R                  n[        R                  " S/5      n[        R                  " S/5      nU Ha  nU" XvXS9n	[        U	R                  U5        U" US   XaUS9n	[        U	R                  U5        U" XvS   XS9n	[        U	R                  U5        Mc     g )Nr>   r   r,  )r  r9   r4  rk  rn  ri  rl  rj  r   r   rm  rc   r1   r   r   r   )
r3   r'   r%  r  r3  r  r  r  r7  r  s
             r&   r  %TestSingleEltArrayInput.test_integers8
  s     //11a"''288RXXryy299bhh		;xx}hhsmBs8>CH-s1vtbACH-sGhACH- r(   c                 `   U R                  5       u  pp4[        R                  [        R                  [        R                  /nU Hf  nU" XU5      n[        UR                  U5        U" US   X#5      n[        UR                  U5        U" XS   U5      n[        UR                  U5        Mh     g )Nr   )r  rc   rj  r  r  r   r   )r3   r  r  argThreer  r  r  r  s           r&   test_three_arg_funcs,TestSingleEltArrayInput.test_three_arg_funcsJ
  s    -1-@-@-B*$$f&7&7&&( Dvx0CH-vay&3CH-vay(3CH- r(   rS   N)
rT   rU   rV   rW   r  r  r  r  r  rX   rS   r(   r&   r  r  
  s    A.(.8.$.r(   r  r  c                    U S   nU S   n[        U5      nUR                  U5        UR                  S   S   n[        R                  S:X  a  UR                  5       n[        R                  " U5      nUR                  S   S   U S   S   :X  d   eUR                  5       U S   S   :X  d   eUR                  5       nUR                  S   S   n[        R                  S:X  a  UR                  5       n[        R                  " U5      nUR                  S   S   U S	   S   :X  d   eUR                  5       U S	   S   :X  d   eg )
Nr   r   r  r  r  r   r   r   r   )
r   r?   r  rp  rq  rr  rs  rt  ru  r   )r  r   r   mt19937r  rt  r   s          r&   test_jumpedr  Z
  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                     [         R                  " S5      n [         R                  " S5      nSn[        R                  XSS9R                  S:X  d   e[
        R                  " [        5         [        R                  XUS9  S S S 5        [
        R                  " [        5         [        R                  XSS9  S S S 5        [
        R                  " [        5         [        R                  XSS9  S S S 5        [         R                  " S5      n[
        R                  " [        5         [        R                  X2S9  S S S 5        [
        R                  " [        5         [        R                  USS9  S S S 5        [
        R                  " [        5         [        R                  USS9  S S S 5        [         R                  " U5      n[
        R                  " [        5         [        R                  X4S	9  S S S 5        [
        R                  " [        5         [        R                  S
SS/SS9  S S S 5        [
        R                  " [        5         [        R                  S
S/SSS9  S S S 5        [
        R                  " [        5         [        R                  S
S/SS/SS9  S S S 5        [
        R                  " [        5         [        R                  SS/SS/SS9  S S S 5        [        R                  SSS9n[        R                  SSS9n[        R                  SSS9n[        R                  XVU5      R                  S:X  d   e[
        R                  " [        SS9   [        R                  XVUSS9  S S S 5        g ! , (       d  f       GN	= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN`= f! , (       d  f       GN;= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN]= f! , (       d  f       g = f)Nr   )r   r   )r   r   r]   )r   r   r   rn   )r>   r   )r   r>   r>   )r   r  r>   r  gffffff?)r]   r>   r]   r   zOutput size \(6, 5, 1, 1\) isr   )rp   r   r>   r>   )r9   r+  rc   rs  r   r   r   rG   r  r   rd   r   r  rj  )rI  ry   ro   r   r  r  r  r  s           r&   test_broadcast_size_errorr  v
  s   	BGGFOED===399YFFF	z	"bd+ 
#	z	"bf- 
#	z	"bi0 
# GGFOE	z	"e/ 
#	z	"e$/ 
#	z	"e!, 
# ((4.C	z	"e- 
# 
z	"C:F3 
#	z	"A&1 
#	z	"Ac
8 
#	z	"Aq6B8&9 
# 	#A(A+AqQ'--:::	z)I	JA!,7 
K	JE 
#	"	"	"	"	" 
#	"	"	"	"	" 
#	" 
#	"	"	"	"	"	"	" 
K	Js   -N$NN((N:OO"O0PPP&P8%Q

N
N%(
N7:
O	
O
O-0
O?
P
P#&
P58
Q

Qc                     [         R                  " S5      n [         R                  " S5      n[        R                  XSS9  [        R
                  " [        5         [        R                  XSS9  S S S 5        g ! , (       d  f       g = f)Nr   rn   r]   )r9   r+  rc   rs  r   r   rG   )rI  ry   s     r&   test_broadcast_size_scalarr  
  sT    	BGGAJE
MM"!M$	z	"ba( 
#	"	"s   A99
Bc                  x    / / S/n [        [        S5      5      n[        UR                  U 5        U S/ / /:X  d   eg r[  )r   r   r   r  )seqgens     r&   test_ragged_shuffler  
  s=    r1+C
GAJ
Cs{{C(1b"+r(   r  rL   r'   c                    [        [        S5      5      nU(       a  SOSn[        R                  " [        US9   UR                  XS9  S S S 5        U(       a  SOSn[        R                  " [        US9   UR                  SXS9  S S S 5        [        R                  " [        US9   UR                  S/XS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       NS= f! , (       d  f       g = f)	Nr   zhigh < 0z	high <= 0r   r  z
low > highzlow >= highrD   )r   r   r   r   rG   r1   )r  r'   r  msgs       r&   !test_single_arg_integer_exceptionr  
  s     GAJ
C *kC	z	-T- 
.",C	z	-R1 
.	z	-bT43 
.	- 
.	- 
.	-	-	-s#   C5C'C$
C
C!$
C2r`   f4f8c                 j   [         R                  " SSU S9n/ SQn[        R                  " [        SS9   [
        R                  X!U S9  S S S 5        [        R                  " [        SS9   [
        R                  X!UR                  U S9  S S S 5        g ! , (       d  f       NP= f! , (       d  f       g = f)	Nr   F)orderr`   r   zSupplied output arrayr   r  r  )r9   r   r   r   rG   rc   r  r   )r`   r  r   s      r&   test_c_contig_req_outr  
  s     ((6E
2CE	z)@	AeE: 
B	z)@	Ae399EJ 
B	A 
B	A	A	As   B* B$
B!$
B2r  r  Cdistc                 t    [         R                  " SX!S9nU " X2S9nXCL d   eU " X2UR                  S9nXCL d   eg )Nr   )r`   r  r  )r  r`   ro   )r9   r   r   )r  r  r`   r  variatess        r&   test_contig_req_outr  
  sB    
 ((6
4C)H??syy9H??r(   c                     [         R                  R                  [         R                  R                  S5      5      n U R	                  S5        U R                  5       u  nu  p#UR                  R                  S:X  d   e[        U5        U" S6 n[        U5        UR                  UR                  l	        UR                  R                  nUR                  U:X  d   eg )Nr   r>   	PCG64DXSM)r  )r9   rc   r   r  r  
__reduce__	__class__rT   printr  r  )r  ctorbit_genr%  r  state_bs         r&   $test_generator_ctor_old_style_pickler   
  s    			RYY003	4Bq==?D+7%%444	$KnA	!H#MMAOOoo##G==G###r(   c                     SS K n [        R                  R                  [        R                  R	                  S5      5      nUR
                  R                  nU R                  U R                  U5      5      nUR
                  R                  n[        UR                  UR                  5        [        UR                  UR                  5        UR
                  R                  R                  S5        U R                  U R                  U5      5      nUR
                  R                  n[        UR                  UR                  5        g )Nr   i4r   )pickler9   rc   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(   versionr   ~   c                 R   SS K nSS Kn[        R                  R	                  [        R                  R                  [        5      5      S   n[        R                  R                  USSU  S35      nUR                  U5       nUR                  U5      nS S S 5        WR                  R                  S   n[        U[        5      (       d   e[        UR                  [        R                  R                   5      (       d   eUS   S:X  d   eUS   S:X  d   eg ! , (       d  f       N= f)	Nr   rv  generator_pcg64_npz.pkl.gzr  l	   a*MzJR2MP incl	   sN	D%(^6FA )gzipr  ospathsplitabspath__file__r  openloadr  r  r   r   r9   rc   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8>CCCC<AAAA 
	s   D
D&)6rs  os.pathr  rp  rD  r   numpyr9   numpy.exceptionsr   numpy.linalgr   numpy.randomr   r   r   r   numpy.testingr	   r
   r   r   r   r   r   r   rc   JUMP_TEST_DATAfixturer'   r*   rZ   r   r   r  r)  r  r-  r	  r+  r  r  r
  r  r  r  r  r  r  r  r  r   r  r  rS   r(   r&   <module>r&     s     
    & $ F F	 	 	 
79	 "dmno"dmpq	 "dmpq"dmpq	 7"dmpq"dmpq	, he}5 6!6 !6HF FB4) 4)nB- B-J"' "'JE EPL, L,^$a	, a	,H G$89*7 *7 :*7\S. S.l >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(   