
    KhM             	          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J	r	J
r
JrJrJrJrJrJr  S SKJrJr  S SKJr  SSSSS\R*                  " S	5      S
-  4SSSS.r\R.                  " \R0                  5      R2                  S:  a  SSSSSSSSS.rOSSSSSSSS S.r\R6                  " S!\S"9S# 5       r\R6                  S$ 5       rS% r " S& S'5      r " S( S)5      r  " S* S+5      r! " S, S-5      r" " S. S/5      r# " S0 S15      r$ " S2 S35      r%\RL                  RO                  \S4S59 " S6 S75      5       r( " S8 S95      r)S: r*S; r+S< r,S= r-S> r.S? r/S@ r0SA r1SB r2g)C    N)	assert_assert_raisesassert_equalassert_warnsassert_no_warningsassert_array_equalassert_array_almost_equalsuppress_warningsIS_WASM)MT19937PCG64)random)g      Y@g333333?)      ?)   r   
   r      g      @)d   r   )      $@)   )binomial	geometrichypergeometric	logseriesmultinomialnegative_binomialpoissonzipf        @2fbead005fc63942decb5326d36a1f32fe2c9d32c904ee61e46866b88447c263@23ead5dcde35d4cfd4ef2c105e4c3d43304b45dc1b1444b7823b9ee4fa144ebb@0d764db64f5c3bad48c8c33551c13b4d07a1e7b470f77629bef6c985cac76fcf@7b59bf2f1691626c5815cdcd9a49e1dd68697251d4521575219e4d2a1b8b2c67@d754fa5b92943a38ec07630de92362dd2e02c43577fc147417dc5b9db94ccdd3@8eb216f7cb2a63cf55605422845caaff002fddc64a7dc8b2d45acd477a49e824@70c891d76104013ebd6f6bcf30d403a9074b886ff62e4e6b8eb605bf1a4673b7@01f074f97517cd5d21747148ac6ca4074dde7fcb7acbaec0a936606fecacd93f)r   r   r   r   r   r   r   r   @8626dd9d052cb608e93d8868de0a7b347258b199493871a1dc56e2a26cacb112@8edd53d272e49c4fc8fbbe6c7d08d563d62e482921f3131d0a0e068af30f0db9@83496cc4281c77b786c9b7ad88b74d42e01603a55c60577ebab81c3ba8d45657@65878a38747c176bc00e930ebafebb69d4e1e16cd3a704e264ea8f5e24f548db@7a984ae6dca26fd25374479e118b22f55db0aedccd5a0f2584ceada33db98605@d636d968e6a24ae92ab52fe11c46ac45b0897e98714426764e820a7d77602a61@956552176f77e7c9cb20d0118fc9cf690be488d790ed4b4c4747b965e61b0bb4@f84ba7feffda41e606e20b28dfc0f1ea9964a74574513d4a4cbc98433a8bfa45module)scopeparamsc                 d    U R                   [        U R                      [        U R                      4$ N)param	INT_FUNCSINT_FUNC_HASHES)requests    U/var/www/html/env/lib/python3.13/site-packages/numpy/random/tests/test_randomstate.pyint_funcr9   2   s*    MM9W]]3GMM*, ,    c               #      #    [         R                  R                  5       n Sv   [         R                  R                  U 5        g7f)z:Ensures that the singleton bitgen is restored after a testN)npr   get_bit_generatorset_bit_generator)orig_bitgens    r8   restore_singleton_bitgenr@   8   s.      ))--/K	II,s   AAc                     [        U S   US   5        [        U S   S   US   S   5        [        U S   S   US   S   5        [        U S   US   5        [        U S   US   5        g )Nbit_generatorstatekeypos	has_gaussgauss)r   r   )abs     r8   assert_mt19937_state_equalrJ   @   sr    ?#Q%78qz%(!G*U*;<qz%(!G*U*;<;;07QwZ(r:   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestSeedH   c                     [         R                  " S5      n[        UR                  S5      S5        [         R                  " S5      n[        UR                  S5      S5        g )Nr     i      i  )r   RandomStater   randintselfss     r8   test_scalarTestSeed.test_scalarI   sF    q!QYYt_c*z*QYYt_c*r:   c                    [         R                  " [        S5      5      n[        UR	                  S5      S5        [         R                  " [
        R                  " S5      5      n[        UR	                  S5      S5        [         R                  " S/5      n[        UR	                  S5      S5        [         R                  " S/5      n[        UR	                  S5      S5        g )Nr   rO   i  r   i  rP   i	  )r   rQ   ranger   rR   r<   arangerS   s     r8   
test_arrayTestSeed.test_arrayO   s    uRy)QYYt_c*ryy}-QYYt_c*s#QYYt_c*
|,QYYt_c*r:   c                     [        [        [        R                  S5        [        [        [        R                  S5        g )N      r   	TypeErrorr   rQ   
ValueErrorrT   s    r8   test_invalid_scalarTestSeed.test_invalid_scalarY   s&    i!3!3T:j&"4"4b9r:   c                 H   [        [        [        R                  S/5        [        [        [        R                  S/5        [        [        [        R                  S/5        [        [        [        R                  / SQ5        [        [        [        R                  / SQ5        g )Nr^   r_   r   )   r   r   )rg   r   r`   rc   s    r8   test_invalid_arrayTestSeed.test_invalid_array^   sd    i!3!3dV<j&"4"4rd;j&"4"4zlCj&"4"46HIj&"4"46IJr:   c           	         [        [        [        R                  [        R
                  " / [        R                  S95        [        [        [        R                  / SQ/5        [        [        [        R                  / SQ/ SQ/5        g )Ndtyperg   r      )      r   )r   rb   r   rQ   r<   arrayint64rc   s    r8   test_invalid_array_shape!TestSeed.test_invalid_array_shapef   s\    j&"4"4bhhrEGXX7O 	Pj&"4"4ykBj&"4"4y7@7B 	Cr:   c                     [         R                  " [        S5      5      n[        [        5         UR                  S5        S S S 5        g ! , (       d  f       g = f)Nr     )r   rQ   r   r   ra   seed)rT   rss     r8   test_cannot_seedTestSeed.test_cannot_seedn   s5    a)9%GGDM &%%s   A


Ac                 J    [        [        [        R                  [        5        g r3   )r   rb   r   rQ   r   rc   s    r8   test_invalid_initialization$TestSeed.test_invalid_initializations   s    j&"4"4g>r:    N)__name__
__module____qualname____firstlineno__rV   r[   rd   ri   rt   rz   r}   __static_attributes__r   r:   r8   rL   rL   H   s'    ++:
KC
?r:   rL   c                        \ rS rSrS rS rSrg)TestBinomialw   c                     [         R                  " SSS9nS HF  n[        [        R                  " SU5      S:H  5        [        [        R                  " X5      U5        MH     g )Nr   intrl   )r   r   rg   r   )r<   zerosr   r   r   r   )rT   r   ps      r8   test_n_zeroTestBinomial.test_n_zerox   sI     %(AFOOAq)Q./vu8%@ r:   c                 `    [        [        [        R                  S[        R
                  5        g )Nrg   )r   rb   r   r   r<   nanrc   s    r8   test_p_is_nanTestBinomial.test_p_is_nan   s    j&//1bff=r:   r   N)r   r   r   r   r   r   r   r   r:   r8   r   r   w   s    A>r:   r   c                   J    \ 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g)TestMultinomial   c                 6    [         R                  " SSS/5        g )Nr   皙?皙?r   r   rc   s    r8   
test_basicTestMultinomial.test_basic   s    3c
+r:   c                 6    [         R                  " S/ SQ5        g )Nr   )r   r           r   r   r   rc   s    r8   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 )Nr_   rq   )r   r   rR   r<   allrT   xs     r8   test_int_negative_interval*TestMultinomial.test_int_negative_interval   s\    fnnR,11r12NN2r1%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 )Nr   rg   rg   r   r   r   r   r   r   r   )
r   r   r   r<   uint32shaperr   r   ra   floatrT   r   s     r8   	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   rb   r   r   rc   s    r8   test_invalid_prob!TestMultinomial.test_invalid_prob   s2    j&"4"4cC:Fj&"4"4cC:Fr:   c                 H    [        [        [        R                  SSS/5        g )Nr_   r   r   r   rc   s    r8   test_invalid_nTestMultinomial.test_invalid_n   s    j&"4"4b3*Er:   c                 h   [         R                  " S5      nU[         R                  " USS S2   5      -  nUSS S2   n[        R                  " S5        [        R
                  " SUS9n[        R                  " S5        [        R
                  " S[         R                  " U5      S9n[        X45        g )Ng      .@rg   ro   i۠iUr   )pvals)r<   rZ   sumr   rx   r   ascontiguousarrayr   )rT   r   r   
non_contigcontigs        r8   test_p_non_contiguous%TestMultinomial.test_p_non_contiguous   s    IIcN	RVVAaddG_!$Q$J''59
J##Cr/C/CE/JK:.r:   c                 
   [         R                  " / SQ[         R                  S9nXR                  5       -  nSn[        R
                  " [        US9   [        R                  " SU5        S S S 5        g ! , (       d  f       g = f)N)
Gz?r   &.>r   r   r   r   r   r   r   rl   z-[\w\s]*pvals array is cast to 64-bit floatingmatchrg   )	r<   rr   float32r   pytestraisesrb   r   r   )rT   r   r   r   s       r8   test_multinomial_pvals_float32.TestMultinomial.test_multinomial_pvals_float32   sY    HH :ACMEEG@]]:U3q%( 433s   A44
Bc                 6    [         R                  " SSS/5        g )Ng      Y@r   r   r   rc   s    r8   test_multinomial_n_float(TestMultinomial.test_multinomial_n_float   s    53*-r:   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r:   r8   r   r      s1    ,;  GF/).r:   r   c                   V    \ 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g)TestSetState   c                     SU l         [        R                  " U R                   5      U l        U R                  R	                  5       U l        g NiI)rx   r   rQ   random_state	get_staterC   rc   s    r8   setup_methodTestSetState.setup_method   s6    	"..tyy9&&002
r:   c                     U R                   R                  S5      nU R                   R                  U R                  5        U R                   R                  S5      n[	        [
        R                  " X:H  5      5        g )N   )r   tomaxint	set_staterC   r   r<   r   rT   oldnews      r8   r   TestSetState.test_basic   sY    ((,##DJJ/((,sz"#r:   c                     U R                   R                  SS9nU R                   R                  U R                  5        U R                   R                  SS9n[	        [
        R                  " X:H  5      5        g Nro   size)r   standard_normalr   rC   r   r<   r   r   s      r8   test_gaussian_reset TestSetState.test_gaussian_reset   s_    //Q/7##DJJ///Q/7sz"#r:   c                 H   U R                   R                  5         U R                   R                  5       nU R                   R                  SS9nU R                   R                  U5        U R                   R                  SS9n[	        [
        R                  " X#:H  5      5        g r   )r   r   r   r   r   r<   r   )rT   rC   r   r   s       r8    test_gaussian_reset_in_media_res-TestSetState.test_gaussian_reset_in_media_res   s     	))+!!++-//Q/7##E*//Q/7sz"#r:   c                    U R                   S S nU R                  R                  SS9nU R                  R                  U5        U R                  R                  SS9nU R                  R                  U R                   5        U R                  R                  SS9n[	        [
        R                  " X#:H  5      5        [	        [
        R                  " X$:H  5      5        g )Nrh   r   r   )rC   r   r   r   r   r<   r   )rT   	old_statex1x2x3s        r8   test_backwards_compatibility)TestSetState.test_backwards_compatibility   s     JJsO	..B.7##I...B.7##DJJ/..B.7rx !rx !r:   c                 <    U R                   R                  SS5        g Nr   )r   r   rc   s    r8   test_negative_binomial#TestSetState.test_negative_binomial   s     	++C5r:   c                 F   [         R                  " [        5       5      n[        5        nUR	                  [
        5      nUR                  5       n[        [        U5      S:H  5        [        U[        5      (       d   eUS   S:X  d   e S S S 5        g ! , (       d  f       g = f)Nrg   rB   r   )r   rQ   r   r
   recordRuntimeWarningr   r   len
isinstancedict)rT   ry   supwrC   s        r8   test_get_state_warning#TestSetState.test_get_state_warning   sw    ( C

>*ALLNECFaK eT****)W444 !  s   AB
B c           	         U R                   R                  5       nSUSS  -   n[        [        U R                   R                  U5        [        [
        U R                   R                  [        R                  " U[        S95        U R                   R                  SS9nUS	 [        [        U R                   R                  U5        g )N)Unknownrg   rl   FlegacyrB   )	r   r   r   rb   r   ra   r<   rr   object)rT   rC   	new_states      r8   !test_invalid_legacy_state_setting.TestSetState.test_invalid_legacy_state_setting   s    !!++-!E!"I-	j$"3"3"="=yIi!2!2!<!<hhy7	9!!++5+9/"j$"3"3"="=uEr:   c                    U R                   R                  S5        U R                   R                  S5        U R                   R                  5         U R                   R	                  SS9n[        US   S5        [        R                  " [        R                  " U R                   5      5      nUR	                  SS9n[        X5        g )Nr   r   Fr  rF   rg   )
r   rx   random_sampler   r   r   pickleloadsdumpsrJ   )rT   pickled	rs_unpick	unpickleds       r8   test_pickleTestSetState.test_pickle   s    q!'',))+##--U-;W[)1-LLd.?.?!@A	''u'5	"76r:   c                     U R                   R                  5       nU R                   R                  5         U R                   R                  U5        U R                   R	                  SS9n[        X5        g )NFr  )r   __getstate__r   __setstate__r   rJ   )rT   
attr_staterC   s      r8   test_state_settingTestSetState.test_state_setting
  s]    &&335
))+&&z2!!++5+9":5r:   c                 Z    [        U R                  5      R                  S5      (       d   eg )NzRandomState(MT19937))reprr   
startswithrc   s    r8   	test_reprTestSetState.test_repr  s%    D%%&112HIIIIr:   )r   rx   rC   N)r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r   r:   r8   r   r      s;    3
$$	$
"6
5F76Jr:   r   c            	          \ rS rSr\R
                  r\R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                   /	rS rS rS rS rS rS r\R2                  R5                  \R6                  " S5      R8                  S	:  S
S9S 5       rS rS rSr g)TestRandinti  c                 @    [        [        U R                  S[        S9  g Nrg   rl   )r   ra   rfuncr   rc   s    r8   test_unsupported_type!TestRandint.test_unsupported_type  s    iQe<r:   c           	         U R                    H  nU[        R                  L a  SO[        R                  " U5      R                  nU[        R                  L a  SO"[        R                  " U5      R
                  S-   n[        [        U R                  US-
  X1S9  [        [        U R                  X#S-   US9  [        [        U R                  X2US9  [        [        U R                  SSUS9  M     g )Nr   r   rg   rl   )	ityper<   booliinfominmaxr   rb   r   )rT   dtlbndubnds       r8   test_bounds_checking TestRandint.test_bounds_checking   s    **Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D*djj$(DK*djj$qK*djj$BG*djj!QbA r:   c           
         U R                    H  nU[        R                  L a  SO[        R                  " U5      R                  nU[        R                  L a  SO"[        R                  " U5      R
                  S-   nUS-
  n[        U R                  XDS-   SUS9U5        Un[        U R                  XDS-   SUS9U5        X#-   S-  n[        U R                  XDS-   SUS9U5        M     g )Nr   r   rg   rO   r   rm   )r$  r<   r%  r&  r'  r(  r   r   )rT   r)  r*  r+  tgts        r8   test_rng_zero_and_extremes&TestRandint.test_rng_zero_and_extremes)  s    **Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D(CCqt2FLCCqt2FL;"CCqt2FL r:   c                 x   U R                    H  nU[        R                  L a  SO[        R                  " U5      R                  nU[        R                  L a  SO"[        R                  " U5      R
                  S-   n U R                  X#US9  M     g ! [         a  n[        S[        U5      -  5      eS nAff = f)Nr   r   rg   rl   zMNo error should have been raised, but one was with the following message:

%s)
r$  r<   r%  r&  r'  r(  r   	ExceptionAssertionErrorstr)rT   r)  r*  r+  es        r8   test_full_rangeTestRandint.test_full_range7  s     **Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D@

4R
0   @$ &68;A&? @ @@s   >B
B9B44B9c           	         [         R                  " 5         U R                  SS   HV  nS HM  nU R                  SUSUS9n[	        UR                  5       U:  5        [	        UR                  5       S:  5        MO     MX     U R                  SSS[        R                  S9n[	        UR                  5       S:  5        [	        UR                  5       S:  5        g )Nrg   )rp      r   r   i   r/  r   )	r   rx   r$  r   r   r(  r'  r<   r%  )rT   r)  r+  valss       r8   test_in_bounds_fuzzTestRandint.test_in_bounds_fuzzE  s    **QR.B"zz!TRz@
T)*
a( # ! zz!QU"''z:
Q
a r:   c           
      "   SSSSSSSSSS.	nU R                   SS   H  n[        R                  " S5        [        R                  S	:X  a  U R                  S
SSUS9nO U R                  S
SSUS9R                  5       n[        R                  " UR                  [        R                  5      5      R                  5       n[        U[        R                  " U5      R                     U:H  5        M     [        R                  " S5        U R                  S
SS[         S9R                  [        R                  5      n[        R                  " U5      R                  5       n[        U[        R                  " [         5      R                     U:H  5        g )N@509aea74d792fb931784c4b0135392c65aec64beee12b0cc167548a2c3d31e71@7b07f1a920e46f6d0fe02314155a2330bcfd7635e708da50e536c5ebb631a7d4@e577bfed6c935de944424667e3da285012e741892dcb7051a8f1ce68ab05c92f@0fbead0b06759df2cfb55e43148822d4a1ff953c7eb19a5b08445a63bb64fa9e@001aac3a5acb935a9b186cbe14a1ca064b8bb2dd0b045d48abeacf74d0203404)	r%  int16int32rs   int8uint16r   uint64uint8rg   rw   littler   r   rO   r/  r   )r$  r   rx   sys	byteorderr   byteswaphashlibsha256viewr<   rG  	hexdigestr   rm   namer%  )rT   r0  r)  valress        r8   test_repeatabilityTestRandint.test_repeatabilityT  s;    ZZZZY[[[Z\ **QR.BKK }}(jjADj;jjADj;DDF.."''!23==?CC))*c12 ! 	DjjADj5::277CnnS!++-BHHTN''(C/0r:   lr   zCannot test with 32-bit C longreasonc           
      *   [         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 HE  n[        R                  " S5        U R	                  S/S/S/// SQUS9n[        X2b  UOUS   5        MG     g )N)l   Q[ l   dm" l   0 )l   ;i l   vlm l   iXp )i\L_l   ZN iwU')l   <~ l   20l iP?)ifiwLl   @
Vo )l   o\ iwi
1])i{YSl   r=| i)l   0 l   l i&})l   QZ) l   (q l   '}Q )l   WqV1 iMl   't )inMl   b" l   )  )ial    l   S"f )idi98l   nDk )l   Jc i-l    )iMi'*l   l, )N)rq   ro   ro   i90  r_   r   rg   )rP   r   l       r   )r<   rr   r   rx   r   r   )rT   desiredr   r   s       r8   .test_repeatability_32bit_boundary_broadcasting:TestRandint.test_repeatability_32bit_boundary_broadcastingt  s     ((AAAC BAAC BAAC BAAC BAACD E &DKK

RD1#s+-J $  &Aq-='71:N	 &r:   c                    [         R                  n[         R                  " [         R                  5      R                  n[         R                  " [         R                  " [         R                  5      R                  5      n[         R                  " [         R                  " [         R                  5      R                  S-   5      n[
        R                  " X4US9n[        XR5        g r  )r<   rs   r&  r(  rI  r   rR   r   )rT   r)  r0  r*  r+  actuals         r8   test_int64_uint64_corner_case)TestRandint.test_int64_uint64_corner_case  s     XXhhrxx $$xx*../yy"((+//!34 "5V!r:   c                    U R                    H  nU[        R                  L a  SO[        R                  " U5      R                  nU[        R                  L a  SO"[        R                  " U5      R
                  S-   nU R                  X#US9n[        UR                  [        R                  " U5      5        M     [        [        4 H  nU[        L a  SOSnU[        L a  SO[        R                  " U5      R                  nU[        L a  SO"[        R                  " U5      R
                  S-   nU R                  X#US9n[        [        US5      (       + 5        [        [        U5      U5        M     g )Nr   r   rg   rl   longr%  rm   )r$  r<   r%  r&  r'  r(  r   r   rm   r   r   hasattrtype)rT   r)  r*  r+  sampleop_dtypes         r8   test_respect_dtype_singleton(TestRandint.test_respect_dtype_singleton  s	   **Bbgg1288B<+;+;Dbgg1288B<+;+;a+?DZZ"Z5Frxx|4  +B "$svHd
1(:(>(>Dd
1(:(>(>(BDZZ"Z5F001fr* r:   r   N)!r   r   r   r   r   rR   r   r<   r%  rG  rJ  rE  rH  rF  r   rs   rI  r$  r!  r,  r1  r8  r=  rV  r   markskipifr&  r(  r]  ra  ri  r   r   r:   r8   r  r    s    NNE WWbggrxx299XXryy"((BII7E=BM@!1@ [[))E1?  AOAO,".+r:   r  c                   |   \ 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#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. r0S/ r1S0 r2\3Rh                  Rk                  S1\6Rn                  " S2S35      S4\6Rp                  S5/5      S6 5       r9S7 r:S8 r;S9 r<S: r=S; r>S< r?S= r@S> rAS? rBS@ rCSA rDSB rESC rFSD rGSE rHSF rISG rJSH rKSI rLSJ rMSK rNSL rOSM rPSN rQSO rRSP rSSQ rTSR rUSS rVST rWSU rXSV rYSW rZSX r[SYr\gZ)[TestRandomDisti  c                     SU l         g r   rx   rc   s    r8   r   TestRandomDist.setup_method  s	    	r:   c                     [         R                  " U R                  5        [         R                  " SS5      n[        R                  " SS/SS/SS//5      n[        XS	S
9  g )Nro   r   _\*?琛?<p?,o?H?Z?   decimal)r   rx   randr<   rr   r	   rT   r`  r\  s      r8   	test_randTestRandomDist.test_rand  s^    DIIQ"((02EF02EF/1CDF G 	"&2>r:   c                     [         R                  " U R                  5        [         R                  " 5       nSn[        XSS9  g )Nrs  ry  rz  )r   rx   r|  r	   r}  s      r8   test_rand_singleton"TestRandomDist.test_rand_singleton  s,    DII%!&2>r:   c                 H   [         R                  " U R                  5        [         R                  " SS5      n[        R                  " SS/SS/SS//5      n[        XS	S
9  [         R                  " U R                  5        [         R                  " 5       n[        XS   S	S
9  g )Nro   r   !<Oq?4u,?3?LI/DͿ@? @HS\@ry  rz  r   r   r   rx   randnr<   rr   r	   r}  s      r8   
test_randnTestRandomDist.test_randn  s    DIIa#((02EF-/BC-/BCE F 	"&2>DII!&$-Dr:   c                     [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/S	S
//5      n[        X5        g )Nc   ro   r   r      ro   )   )r   rx   rR   r<   rr   r   r}  s      r8   test_randintTestRandomDist.test_randint  sU    DIIRf5((RG "I #J( ) 	6+r:   c                    [         R                  " U R                  5        [        5        nUR                  [        5      n[         R
                  " SSSS9n[        [        U5      S:H  5        S S S 5        [        R                  " SS/SS	/S
S//5      n[        WU5        [         R                  " U R                  5        [        5        nUR                  [        5      n[         R
                  " SSS9n[        [        U5      S:H  5        S S S 5        [        X4S-   5        g ! , (       d  f       N= f! , (       d  f       N.= f)Nr  r  r  r   rg   r  ro   r  r  r  r     r   )r   rx   r
   r   DeprecationWarningrandom_integersr   r   r<   rr   r   )rT   r   r   r`  r\  s        r8   test_random_integers#TestRandomDist.test_random_integers  s    DII C

-.A++C&AFCFaK  ! ((RG "I #J( ) 	67+DII C

-.A++Cf=FCFaK  ! 	6S=1 !  ! s   AD$AD5$
D25
Ec                 @   [         R                  " U R                  5        [         R                  " U R                  5      nUR                  SS9n[        R
                  " [        R                  5      R                  S:X  a-  [        R                  " SS/SS/SS	//[        R                  S
9nO,[        R                  " SS/SS/SS//[        R                  S
9n[        X#5        UR                  U R                  5        UR                  5       n[        X#S   5        g )Nr  r   ii4Oi˕+iRKiriFbqirl   l   K+W+y l   r&&J] l   ;	 l   nBz l   @XHT l   D+l++ r  )r   rx   rQ   r   r<   r&  rd  r(  rr   rs   r   )rT   ry   r`  r\  s       r8   test_tomaxintTestRandomDist.test_tomaxint  s    DII		*&)88BGG  J.hhi 8!+i 8!+i 8 :ACKG hh!46I J!46I J!46I J L &(XX/G
 	V%
		VT]+r:   c           	      X   [        5        nUR                  [        5      n[        R                  " [
        R                  " S5      R                  [
        R                  " S5      R                  5      n[        [        U5      S:H  5        S S S 5        [
        R                  " S5      R                  n[        WU5        [        5        nUR                  [        5      n[
        R                  " S5      R                  n[        R                  " U" [
        R                  " S5      R                  5      U" [
        R                  " S5      R                  5      5      n[        [        U5      S:H  5        S S S 5        [        X45        g ! , (       d  f       GN= f! , (       d  f       N,= f)NrX  rg   )r
   r   r  r   r  r<   r&  r(  r   r   r   rm   rf  )rT   r   r   r`  r\  typers         r8   test_random_integers_max_int+TestRandomDist.test_random_integers_max_int  s     C

-.A++BHHSM,=,=,.HHSM,=,=?FCFaK 	 ! ((3-##VW% C

-.AHHSM&&E++E"((3-2C2C,D,1"((3-2C2C,DFFCFaK  ! 	V% !  ! s   B F		B,F	
F
F)c           	         [         R                  " 5          [         R                  " S[        5        [	        [        [
        R                  [        R                  " S5      R                  5        [	        [        [
        R                  [        R                  " S5      R                  [        R                  " S5      R                  5        S S S 5        g ! , (       d  f       g = f)NerrorrX  )
warningscatch_warningssimplefilterr  r   r   r  r<   r&  r(  rc   s    r8   test_random_integers_deprecated.TestRandomDist.test_random_integers_deprecated  s    $$&!!'+=> , 00((3-++-
 , 00((3-++RXXc]->->@ '&&s   B5C
C"c                 F   [         R                  " U R                  5        [         R                  " S5      n[        R                  " SS/SS/SS//5      n[        XSS	9  [         R                  " U R                  5        [         R                  " 5       n[        XS
   SS	9  g )Nr  rs  rt  ru  rv  rw  rx  ry  rz  r  )r   rx   r  r<   rr   r	   r}  s      r8   test_random_sample!TestRandomDist.test_random_sample,  s    DII%%f-((02EF02EF/1CDF G 	"&2>DII%%'!&$-Dr:   c                     [         R                  " U R                  5        [         R                  " SS5      n[        R                  " / SQ5      n[        X5        g )Nrp   )r   ro   r   ro   r   rx   choicer<   rr   r   r}  s      r8   test_choice_uniform_replace*TestRandomDist.test_choice_uniform_replace8  s8    DIIq!$((<(6+r:   c                     [         R                  " U R                  5        [         R                  " SS/ SQS9n[        R                  " / SQ5      n[        X5        g )Nrp   )皙?r  皙?r  r   )rg   rg   r   r   r  r}  s      r8   test_choice_nonuniform_replace-TestRandomDist.test_choice_nonuniform_replace>  s;    DIIq!';<((<(6+r:   c                     [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " / SQ5      n[        X5        g )Nrp   ro   Freplace)r   rg   ro   r  r}  s      r8   test_choice_uniform_noreplace,TestRandomDist.test_choice_uniform_noreplaceD  s:    DIIq!U3((9%6+r:   c                     [         R                  " U R                  5        [         R                  " SSS/ SQS9n[        R                  " / SQ5      n[        X5        g )Nrp   ro   F)r  333333?r   r  r  r   )r   ro   rg   r  r}  s      r8    test_choice_nonuniform_noreplace/TestRandomDist.test_choice_nonuniform_noreplaceJ  s=    DIIq!U6JK((9%6+r:   c                     [         R                  " U R                  5        [         R                  " / SQS5      n[        R                  " / SQ5      n[        X5        g )N)rH   rI   cdrp   )r  r  r  r  r  r}  s      r8   test_choice_noninteger%TestRandomDist.test_choice_nonintegerP  s:    DII3Q7((/06+r:   c           	      4   [         R                  n[        [        USS5        [        [        USS5        [        [        USS/S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 )Nr_   ro         @rg   r   rp   )rg   r   ro   rp   g      ?r  )r  r  r   r   r   r  rn   Fr  rh   )r_   )r_   rg   )rg   r   r   r  )r   r  r   rb   )rT   rg  s     r8   test_choice_exceptions%TestRandomDist.test_choice_exceptionsV  s	   j&"a0j&"a0j&Aq6Aq6*:A>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                 r
   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        [        5       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  rg   rl   r   )r   ro   )r  r  r  r  r  r   r   )ro   r   rp   r   i)r   r   rH   rI   )r   r<   isscalarr   r  rr   emptyr  tuplendimitemr   r   rZ   rR   r   rb   )rT   r   rH   arrrU   s        r8   test_choice_return_shape'TestRandomDist.test_choice_return_shapei  s   #JFMM!T:;<FMM!U;<=FMM!TQ?@AFMM!Ua@ABFMM1a&$?@Atfd3t;<HHaVhhq'Ac40A56 GBKKaD ABBCBKKaE BCCDBKKaDA FGGHBKKaEQ GHHIBKKq!fa FGGHtfa6;;q@AHHaVhhq'A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^^Aqy9??KV^^As3994@V^^B3994@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)*   rg   r   )NNNr  )r<   rr   r   rb   r   r  )rT   rH   r   s      r8   test_choice_nan_probabilities,TestRandomDist.test_choice_nan_probabilities  s%    HHZ j&--8r:   c           
      t   [         R                  " S5      S-  nSUSS S2'   [        R                  " U R                  5        [        R                  " SSUS S S2   S9n[        R                  " U R                  5        [        R                  " SS[         R
                  " US S S2   5      S9n[        X#5        g )Nr   rq   r  rg   r   ro   r  )r<   onesr   rx   r  r   r   )rT   r   r   r   s       r8   test_choice_p_non_contiguous+TestRandomDist.test_choice_p_non_contiguous  s    GGBK!O!$Q$DII]]1a1SqS62
DIIq!r';';AccF'CD:.r:   c                     [         R                  " U R                  5        [         R                  " S5      nSn[        X5        g )Nr   s
   Ui+Wf)r   rx   bytesr   r}  s      r8   
test_bytesTestRandomDist.test_bytes  s-    DIIb!.V%r:   c                     S S S S S S S S S	 S
 S 4 HZ  n[         R                  " U R                  5        U" / SQ5      n[         R                  " U5        UnU" / SQ5      n[        X45        M\     g )Nc                 .    [         R                  " / 5      $ r3   )r<   rr   r   s    r8   <lambda>-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rxx|r:   c                     U $ r3   r   r  s    r8   r  r    s    qr:   c                 h    [         R                  " U 5      R                  [         R                  5      $ r3   )r<   asarrayastyperG  r  s    r8   r  r    s    rzz!}33BGG<r:   c                 h    [         R                  " U 5      R                  [         R                  5      $ r3   )r<   r  r  r   r  s    r8   r  r    s    rzz!}33BJJ?r:   c                 h    [         R                  " U 5      R                  [         R                  5      $ r3   )r<   r  r  	complex64r  s    r8   r  r    s    rzz!}33BLLAr:   c                 T    [         R                  " U 5      R                  [        5      $ r3   )r<   r  r  r  r  s    r8   r  r    s    rzz!}33F;r:   c                 4    U  Vs/ s H  oU4PM     sn$ s  snf r3   r   r   is     r8   r  r    s    21A22s   c                 \    [         R                  " U  Vs/ s H  oU/PM     sn5      $ s  snf r3   )r<   r  r  s     r8   r  r    s!    rzz1*=1aq61*=>*=s   )c                 D    [         R                  " X /5      R                  $ r3   )r<   vstackTr  s    r8   r  r    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 )NrH   rI   )r<   r  r   rQ  recarrayr  s     r8   r  r    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 )NrH   rg   rI   )r<   r  r  rF  r  s     r8   r  r    sB    rzz1*=1aq61*=,/+>,/4+@+B C*=s   A
rg   r   ro   rp   rq   r      r;  	   r   
r   rg   r  r   r   rp   rq   r;  r  ro   )r   rx   shuffler   )rT   convalistr`  r\  s        r8   test_shuffleTestRandomDist.test_shuffle  sy     , <?A;2>24CDD" KK		"78ENN5!F9:Gv/-D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     S ng )Nr   )rq   rp   ro   rg   r_   2   c                 n    [         R                  " S5      n[        [        [        R
                  U5        g )Nro   )r<   rr   r   ra   r   r   r   s     r8   test_shuffle_invalid_objectsHTestRandomDist.test_shuffle_masked.<locals>.test_shuffle_invalid_objects  s    A)V^^Q7r:   )r<   mamasked_valuesreshaperY   rZ   copyr   r   r   sorteddatamask)rT   rH   rI   a_origb_origr  r  s          r8   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 	8r:   c                 ,   [         R                  " U R                  5        / SQn[         R                  " U5      n/ SQn[        X#5        [         R                  " U R                  5        [        R
                  " / SQ5      R                  n[         R                  " U5      n[        U[        R
                  " U5      R                  5        [         R                  " U R                  5        Sn[        [        [         R                  U5        [         R                  " U R                  5        Sn[        [        [         R                  U5        Sn/ SQn[         R                  " U R                  5        [         R                  " U5      n[        X#5        g )Nr  r  abcdg333333?r   )
r  r   r;  rq   rg   ro   rp   r  r   r   )	r   rx   permutationr   r<   
atleast_2dr  r   
IndexError)rT   r  r`  r\  arr_2d	bad_x_strbad_x_floatinteger_vals           r8   test_permutationTestRandomDist.test_permutation  s   DII.##E*06+DII=>@@##F+62==#9#;#;<DII	j&"4"4i@DIIj&"4"4kB0DII##K06+r:   c                     [         R                  " U R                  5        [         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   gAKč?ghA?g ҇o>gάXf+q?gS1$?g'8zX ?ry  rz  )r   rx   betar<   rr   r	   r}  s      r8   	test_betaTestRandomDist.test_beta  s`    DIIR&1(()+BC)+BC)+BCEF 	"&2>r:   c                 L   [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/S	S
//5      n[        X5        [         R                  " U R                  5        [         R                  " SS5      nSn[        X5        g )NgZd;Y@gv/?r  r   %   +   r  0   .   -   )r   rx   r   r<   rr   r   r}  s      r8   test_binomialTestRandomDist.test_binomial  s    DII$V<((RHHH& ' 	6+DII$/6+r:   c                     [         R                  " U R                  5        [         R                  " SSS9n[        R                  " SS/SS/SS	//5      n[        XS
S9  g )Nr  r  r   g+Q]uO@g+Q@gY7`ZqP@ge(fG@gvtR@gEIȋR@   rz  )r   rx   	chisquarer<   rr   r	   r}  s      r8   test_chisquareTestRandomDist.test_chisquare	  s`    DII!!"62((13GH13GH02FGI J 	"&2>r:   c                 ,   [         R                  " U R                  5        [        R                  " SS/5      n[         R                  " USS9n[        R                  " SS/SS//S	S
/SS//SS/SS///5      n[        X#SS9  [        R                  " SS/5      n[        [        [         R                  U5        [         R                  " U R                  5        [        R                  " SS/5      n[         R                  " U5      n[        X#S   SS9  g )NI<I@EZC@r  r   gi{s?gn,	A?g]^?gpDB?gȧ#y?gr?g1U?gѨUC?g^,%?gB?gډOoX;?gM`!O?ry  rz  HzG?缉ؗҜr  )r   rx   r<   rr   	dirichletr	   r   rb   )rT   alphar`  r\  	bad_alphas        r8   test_dirichletTestRandomDist.test_dirichlet  s
   DII.0DEF!!%f5((13FG13FGI13FG13FGI13FG13FGI	J K 	"&2>HHgx01	j&"2"2I>DII.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 )Nr2  r3  rg   r   r   r   r   )
r<   rr   r   r   r6  r   r   r   ra   r   r   s     r8   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    [         R                  " SS/5      n[        [        [        R
                  U5        g )Nr4  r5  )r<   rr   r   rb   r   r6  )rT   r7  s     r8   test_dirichlet_bad_alpha'TestRandomDist.test_dirichlet_bad_alpha0  s'    '8,-j&"2"2E:r:   c                 V   [         R                  " / SQ5      nUS S S2   n[        R                  " U R                  5        [        R                  " USS9n[        R                  " U R                  5        [        R                  " [         R
                  " U5      SS9n[        X45        g )N)r2  g      r3  r   r  r   )r<   rr   r   rx   r6  r   r	   )rT   rH   r7  r   r   s        r8   #test_dirichlet_alpha_non_contiguous2TestRandomDist.test_dirichlet_alpha_non_contiguous5  sx    HHGH#A#DII%%e&9
DII!!""6"6u"='-/!*5r:   c                     [         R                  " U R                  5        [         R                  " SSS9n[        R                  " SS/SS/SS	//5      n[        XS
S9  g )Ng8EGr?r  r   gNU?gbI0?gVU\@g:3@gU?g"qo?ry  rz  )r   rx   exponentialr<   rr   r	   r}  s      r8   test_exponentialTestRandomDist.test_exponential?  s`    DII##F8((02EF02EF02EFH I 	"&2>r:   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g Nr   scale       )r   r   rE  r   rb   rc   s    r8   test_exponential_0!TestRandomDist.test_exponential_0G  s)    V''a0!4j&"4"4C@r:   c                     [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/S	S
//5      n[        XSS9  g )N   M   r  r   g7?g`j?g6"+?gܳ2>?gc>+Y?g_}S?ry  rz  )r   rx   fr<   rr   r	   r}  s      r8   test_fTestRandomDist.test_fK  s`    DII"bv.((02EF02EF02EFH I 	"&2>r:   c                     [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/S	S
//5      n[        XSS9  g )Nrq   ro   r  r   gԏGM8@gȌ<@g	":@gv#)@gZQ?@gr[@@   rz  )r   rx   gammar<   rr   r	   r}  s      r8   
test_gammaTestRandomDist.test_gammaS  s`    DIIa0((13GH13GH13GHJ K 	"&2>r:   c                 ~    [        [        R                  " SSS9S5        [        [        [        R                  SSS9  g )Nr   )r   rK  rL  )r   r   rW  r   rb   rc   s    r8   test_gamma_0TestRandomDist.test_gamma_0[  s)    V\\3Q7j&,,cEr:   c                     [         R                  " U R                  5        [         R                  " SSS9n[        R                  " SS/SS/SS//5      n[        X5        g )	N_c97ݚ?r  r   r;  r     rq   rP  )r   rx   r   r<   rr   r   r}  s      r8   test_geometricTestRandomDist.test_geometric_  sU    DII!!*6:((QFHG% & 	6+r:   c                 :   [        [        [        R                  S5        [        [        [        R                  S/S-  5        [        [        [        R                  S5        [        [        [        R                  S/S-  5        [	        5        nUR                  [        5        [        [        [        R                  [        R                  5        [        [        [        R                  [        R                  /S-  5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   )	r   rb   r   r   r
   r   r   r<   r   rT   r   s     r8   test_geometric_exceptions(TestRandomDist.test_geometric_exceptionsg  s    j&"2"2C8j&"2"2SEBJ?j&"2"2D9j&"2"2TFRK@ CJJ~&*f&6&6?*f&6&62F !  s   A4D
Dc                     [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/S	S
//5      n[        XSS9  g )Nr^         @r  locrK  r   gؕ?gs0 ?g#0g(xg-KD?gůp`@ry  rz  )r   rx   gumbelr<   rr   r	   r}  s      r8   test_gumbelTestRandomDist.test_gumbelq  s`    DII:SvF((02EF02FG02FGI J 	"&2>r:   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g rI  )r   r   rj  r   rb   rc   s    r8   test_gumbel_0TestRandomDist.test_gumbel_0y  %    V]]+Q/j&--s;r:   c                    [         R                  " U R                  5        [         R                  " SSSSS9n[        R                  " SS/SS/SS//5      n[        X5        [         R                  " SS	S
SS9n[        R                  " / SQ5      n[        X5        [         R                  " SS	SSS9n[        R                  " / SQ5      n[        X5        [         R                  " S	SS
SS9n[        R                  " / SQ5      n[        X5        [         R                  " S	SSSS9n[        R                  " / SQ5      n[        X5        g )Ng333333$@g      @rV  r  r   r   r  rq   r   ro   rp   )ro   ro   ro   ro   ry  rP  )rP  rP  rP  rP  )r   r   r   r   )r   rx   r   r<   rr   r   r}  s      r8   test_hypergeometric"TestRandomDist.test_hypergeometric}  s   DII&&tS"6B((RHHF$ % 	6+ &&q!QQ7((<(6+&&r1bq9((+,6+ &&q!QQ7((<(6+&&q"bq9((<(6+r:   c                     [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/S	S
//5      n[        XSS9  g )Nr^  rg  r  rh  g bO?g¸?gpJm	@g{K*t	@g:^w-gY~o?ry  rz  )r   rx   laplacer<   rr   r	   r}  s      r8   test_laplaceTestRandomDist.test_laplace  s`    DIIJcG((02EF02EF13FGI J 	"&2>r:   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g rI  )r   r   ru  r   rb   rc   s    r8   test_laplace_0TestRandomDist.test_laplace_0  s%    V^^!,a0j&..<r:   c                     [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/S	S
//5      n[        XSS9  g )Nr^  rg  r  rh  g#K-z?gJ?g92@gر[@g#+^˿g-@ry  rz  )r   rx   logisticr<   rr   r	   r}  s      r8   test_logisticTestRandomDist.test_logistic  s`    DIIZsH((02DE02EF13FGI J 	"&2>r:   c                     [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/S	S
//5      n[        XSS9  g )Nr^  rg  r  )meansigmar   gɁ0@go,+4FB@g)ʭ6@g5?gnxNnP@g)U@r-  rz  )r   rx   	lognormalr<   rr   r	   r}  s      r8   test_lognormalTestRandomDist.test_lognormal  sb    DII!!z6J((13GH13FG13GHJ K 	"&2>r:   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g )Nr   )r  rg   rL  )r   r   r  r   rb   rc   s    r8   test_lognormal_0TestRandomDist.test_lognormal_0  s)    V%%A.2j&"2"2#>r:   c                     [         R                  " U R                  5        [         R                  " SSS9n[        R                  " SS/SS/SS//5      n[        X5        g )Ngƀ@?r  )r   r   r   r   r_  ro   )r   rx   r   r<   rr   r   r}  s      r8   test_logseriesTestRandomDist.test_logseries  sU    DII!!JV<((QFGF$ % 	6+r:   c                 <    [         R                  " S5      S:X  d   eg )Nr   rg   )r   r   rc   s    r8   test_logseries_zero"TestRandomDist.test_logseries_zero  s    "a'''r:   valuer   r_         ?g      @c                    [         R                  " SS9   [        R                  " [        5         [
        R                  " U5        S S S 5        [        R                  " [        5         [
        R                  " [         R                  " U/S-  5      5        S S S 5        [        R                  " [        5         [
        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       N= f! , (       d  f       N9= f! , (       d  f       g = f)Nignoreinvalidr   r   )r<   errstater   r   rb   r   r   rr   )rT   r  s     r8   test_logseries_exceptions(TestRandomDist.test_logseries_exceptions  s    [[*z*  ' +z*  5'B,!78 + z*  5'B,!7!!<= + +***** +* +*sR   D3D "D3)/D"D3:5D"/D3 
D	
D3
D	D3"
D0	,D33
Ec                     [         R                  " U R                  5        [         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?r   r  r   )rp   ro   rq   rp   r   r   )rq   r   r;  r   r   rg   )ro   rp   ro   r   r   rp   )r   rg   rp   ro   r   rp   )rp   rp   r   rq   r   ro   )rp   ro   rp   r   ro   rp   )r   rx   r   r<   rr   r   r}  s      r8   test_multinomialTestRandomDist.test_multinomial  sj    DII##B16B((//1//1//1	2 3 	6+r:   c                    [         R                  " U R                  5        SnSS/SS//nSn[         R                  " XU5      n[        R                  " SS/SS//S	S
/SS//SS/SS///5      n[        XESS9  [         R                  " X5      n[        R                  " SS/5      n[        XESS9  SS/nSS/SS//n[        [        [         R                  X5        [        [         R                  XSS9  [        [        [         R                  XSS9  [        R                  " SS/SS//[        R                  S9n[        5        n[         R                  " X5        UR                  [        5      n[        U5      S:X  d   e S S S 5        [        R                  " S5      n[        R                   " S5      n[        [        [         R                  XSS9  [        [        [         R                  [        R                  " S5      U5        [        [        [         R                  U[        R"                  " S5      5        [        [        [         R                  U[        R                   " S5      5        g ! , (       d  f       N= f)N)r^  r   rg   r   r  g4Vj?gy'@gI1?gSB#@ge<@g 4W(@g6R¿?g9r
v"@gс?g{#@g4xg"f"@ry  rz  gN}O6?gYMW"@r   r  )check_validraiser  rl   other)r   rg   rg   ro   )r   rx   multivariate_normalr<   rr   r	   r   r   r   r   rb   r   r
   r   r   r   eyer  )	rT   r  covr   r`  r\  r   r   mus	            r8   test_multivariate_normal'TestRandomDist.test_multivariate_normal  s0   DII1v1v++Dt<((/1BC/1BCE/1CD/1BCE/1BC02CDF	G H 	"&2> ++D6((-/?@A!&2> 1v1v1v^V%?%?K 	655t'/	1 	j&"<"<d")	+ hhC3(+2::> C&&t1

>*Aq6Q;; !
 XXa[ffQij&"<"<d")	+j&"<"<hhy)3	0j&"<"<"((6*	,j&"<"<"&&)	% ! s   =I33
Jc                     [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/S	S
//5      n[        X5        g )Nr   g|Pk?r  )nr   r   iP  iI  i|  ic  i  i  )r   rx   r   r<   rr   r   r}  s      r8   r   %TestRandomDist.test_negative_binomial  sW    DII))C6G((S#J #J #J( ) 	6+r:   c                 6   [        5        nUR                  [        5        [        [        [
        R                  S[        R                  5        [        [        [
        R                  S[        R                  /S-  5        S S S 5        g ! , (       d  f       g = f)Nr   r   )	r
   r   r   r   rb   r   r   r<   r   rc  s     r8   !test_negative_binomial_exceptions0TestRandomDist.test_negative_binomial_exceptions  s[     CJJ~&*f&>&>RVVL*f&>&>66(R-) !  s   A6B


Bc                    [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/SS	//5      n[        XS
S9  [         R                  " SSSS9n[        R                  " SS/SS/SS//5      n[        XS
S9  [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/SS//5      n[        XS
S9  g )Nrq   r  )dfnoncr   gG7@g! ܴ*@g1}z9?@g+驸0@g26E_r#@gI!1@rV  rz  r   r   g?gTD?g?T?g+qnl?g~|D?g밬?r   g{01#@gprs'@g~;$@g"dI@g*@g}',@)r   rx   noncentral_chisquarer<   rr   r	   r}  s      r8   test_noncentral_chisquare(TestRandomDist.test_noncentral_chisquare  s   DII,,G((13GH13GH02FGI J 	"&2>,,&I((03FG03FG.1DEG H 	"&2>DII,,G((.0BC/1BC/1CDF G 	"&2>r:   c                     [         R                  " U R                  5        [         R                  " SSSSS9n[        R                  " SS/SS	/S
S//5      n[        XSS9  g )Nrq   r   rg   r  )dfnumdfdenr  r   g^~?g/+c?g".@g@g7?gE?rV  rz  )r   rx   noncentral_fr<   rr   r	   r}  s      r8   test_noncentral_f TestRandomDist.test_noncentral_f0  sg    DII$$1AA*02((02EF02EF02DEG H 	"&2>r:   c                     [         R                  " U R                  5        [         R                  " SS[        R                  S9n[        R
                  " U5      (       d   eg )Nrq   r   )r  r  r  )r   rx   r  r<   r   isnan)rT   r`  s     r8   test_noncentral_f_nan$TestRandomDist.test_noncentral_f_nan9  s?    DII$$1ABFFCxxr:   c                     [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/S	S
//5      n[        XSS9  g )Nr^  rg  r  rh  g&&n@gOG_@g~w@gtw]տgm&5@g$>@ry  rz  )r   rx   normalr<   rr   r	   r}  s      r8   test_normalTestRandomDist.test_normal>  s`    DII:SvF((02EF.0DE02EFH I 	"&2>r:   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g rI  )r   r   r  r   rb   rc   s    r8   test_normal_0TestRandomDist.test_normal_0F  rp  r:   c                     [         R                  " U R                  5        [         R                  " SSS9n[        R                  " SS/SS/SS	//5      n[        R
                  R                  XS
S9  g )Nr^  r  rH   r   gWI@gԨy@gy]0Ag1~\Aga@gY
7A   )nulp)r   rx   paretor<   rr   testingassert_array_almost_equal_nulpr}  s      r8   test_paretoTestRandomDist.test_paretoJ  sk    DII&9(()+BC)+BC)+BCEF 	

11&1Kr:   c                     [         R                  " U R                  5        [         R                  " SSS9n[        R                  " SS/SS/SS//5      n[        X5        g )Nr^  r  )lamr   r   rg   )r   rx   r   r<   rr   r   r}  s      r8   test_poissonTestRandomDist.test_poissonY  sS    DIIJV<((QFFF$ % 	6+r:   c                 ~   [         R                  " S5      R                  nSn[        [        [
        R                  U5        [        [        [
        R                  U/S-  5        [        [        [
        R                  U5        [        [        [
        R                  U/S-  5        [        5        nUR                  [        5        [        [        [
        R                  [         R                  5        [        [        [
        R                  [         R                  /S-  5        S S S 5        g ! , (       d  f       g = f)NrX  r_   r   )r<   r&  r(  r   rb   r   r   r
   r   r   r   )rT   lambiglamnegr   s       r8   test_poisson_exceptions&TestRandomDist.test_poisson_exceptionsa  s    #""j&..&9j&..6(R-@j&..&9j&..6(R-@ CJJ~&*fnnbff=*fnnrvvhmD !  s   1A4D..
D<c                     [         R                  " U R                  5        [         R                  " SSS9n[        R                  " SS/SS/SS	//5      n[        XS
S9  g )Nr^  r  r  g;'?gܴw*?g5?gFG?g D]?g$`?ry  rz  )r   rx   powerr<   rr   r	   r}  s      r8   
test_powerTestRandomDist.test_powerm  s^    DII
8((02EF02EF02EFH I 	"&2>r:   c                     [         R                  " U R                  5        [         R                  " SSS9n[        R                  " SS/SS/SS	//5      n[        XS
S9  g )Nr   r  )rK  r   g"u+@gN$MB*@g7v8B4@g55@ge&@g~ӣZ1@rV  rz  )r   rx   rayleighr<   rr   r	   r}  s      r8   test_rayleighTestRandomDist.test_rayleighu  s^    DIIr7((02DE13GH13GHJ K 	"&2>r:   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g rI  )r   r   r  r   rb   rc   s    r8   test_rayleigh_0TestRandomDist.test_rayleigh_0}  s%    V__1-q1j&//=r:   c                     [         R                  " U R                  5        [         R                  " SS9n[        R                  " SS/SS/SS//5      n[        XS	S
9  g )Nr  r   gMoDL?g6([9grF=?gM'	- gVgVA:Qy?ry  rz  )r   rx   standard_cauchyr<   rr   r	   r}  s      r8   test_standard_cauchy#TestRandomDist.test_standard_cauchy  s^    DII''V4((02FG02FG13FGI J 	"&2>r:   c                     [         R                  " U R                  5        [         R                  " SS9n[        R                  " SS/SS/SS//5      n[        XS	S
9  g )Nr  r   g܁?gc!z?g&N"@gNI@gF>?g~ME?ry  rz  )r   rx   standard_exponentialr<   rr   r	   r}  s      r8   test_standard_exponential(TestRandomDist.test_standard_exponential  s^    DII,,&9((02EF/1DE/1DEG H 	"&2>r:   c                     [         R                  " U R                  5        [         R                  " SSS9n[        R                  " SS/SS/SS	//5      n[        XS
S9  g )Nro   r  )r   r   g)@gľ@gd],q@gPk{@g9B#1@gv @rV  rz  )r   rx   standard_gammar<   rr   r	   r}  s      r8   test_standard_gamma"TestRandomDist.test_standard_gamma  s`    DII&&QV<((02EF02EF02CDF G 	"&2>r:   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g )Nr   )r   rL  )r   r   r  r   rb   rc   s    r8   test_standard_gamma_0$TestRandomDist.test_standard_gamma_0  s)    V**3Q7j&"7"7sCr:   c                     [         R                  " U R                  5        [         R                  " SS9n[        R                  " SS/SS/SS//5      n[        XS	S
9  g )Nr  r   r  r  r  r  r  r  ry  rz  )r   rx   r   r<   rr   r	   r}  s      r8   test_standard_normal#TestRandomDist.test_standard_normal  s^    DII''V4((02EF.0CD.0CDF G 	"&2>r:   c                     [         R                  " U R                  5        [         R                  " 5       n[        R                  " S5      n[        XSS9  g )Nr  ry  rz  r  r}  s      r8   test_randn_singleton#TestRandomDist.test_randn_singleton  s6    DII((./!&2>r:   c                     [         R                  " U R                  5        [         R                  " SSS9n[        R                  " SS/SS/SS	//5      n[        XS
S9  g )Nr   r  )r  r   g\VH?ghU%gH$M?gLgVqdzǿg㖀?ry  rz  )r   rx   
standard_tr<   rr   r	   r}  s      r8   test_standard_tTestRandomDist.test_standard_t  s`    DII""bv6((02FG02FG13FGI J 	"&2>r:   c                     [         R                  " U R                  5        [         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rightr   g:}\)@ghرTj(@gǨL30@g6ڜA0@g6sh&@g<,@rV  rz  )r   rx   
triangularr<   rr   r	   r}  s      r8   test_triangularTestRandomDist.test_triangular  sg    DII""5(.0((13FG13GH13FGI J 	"&2>r:   c                     [         R                  " U R                  5        [         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  )lowhighr   g>#H@gu@g#@g}d]#@gN@gw)* @ry  rz  )r   rx   uniformr<   rr   r	   r}  s      r8   test_uniformTestRandomDist.test_uniform  s`    DIIDu6B((02EF02EF02EFH I 	"&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   rg   g ؅W4vC)r  r  )
r<   finfor'  r(  r   r  r   OverflowErrorinf	nextafter)rT   fminfmaxfuncs       r8   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                 ~    " 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r3   ra   rc   s    r8   	__float__QTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__      r:   r   N)r   r   r   r   r  r   r   r:   r8   ThrowingFloatr         r:   r  r  c                       \ rS rSrS rSrg)ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegeri  c                     [         er3   r  rc   s    r8   __int__QTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__  r  r:   r   N)r   r   r   r   r  r   r   r:   r8   ThrowingIntegerr    r  r:   r  rg   )	r<   ndarrayrr   rQ  r   ra   r   r  r   )rT   r  throwing_floatr  throwing_ints        r8   !test_scalar_exception_propagation0TestRandomDist.test_scalar_exception_propagation  s    	 BJJ 	  #++M:i$	&	 bjj 	  xx{''8i!6!6aKr:   c                     [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " SS/SS/S	S
//5      n[        XSS9  g )Nr   p=
ף?r  r  kappar   gLZI@g'N"@gkr?gk=m@gډ?g^=\?ry  rz  r   rx   vonmisesr<   rr   r	   r}  s      r8   test_vonmisesTestRandomDist.test_vonmises  s`    DIID6B((02EF02EF02EFH I 	"&2>r:   c                     [         R                  " U R                  5        [         R                  " SSSS9n[        [        R
                  " U5      R                  5       5        g )Nr   gg5_PG>@B r'  )r   rx   r*  r   r<   isfiniter   rT   rs     r8   test_vonmises_small"TestRandomDist.test_vonmises_small  s=    DIIOOre<A""$%r:   c                     [         R                  " U R                  5        [         R                  " SSSS9n[        R                  " / SQ5      n[        XSS9  g )Nr   g    cAro   r'  )g A^>?g @R7?g x.r;  rz  r)  r}  s      r8   test_vonmises_large"TestRandomDist.test_vonmises_large  sC    DIIBc:(( 4 5 	"&1=r:   c                     [         R                  " U R                  5        [         R                  " S[        R                  S9n[        [        R                  " U5      5        g )Nr   )r  r(  )r   rx   r*  r<   r   r   r  r0  s     r8   test_vonmises_nan TestRandomDist.test_vonmises_nan  s6    DIIOOr0r:   c                     [         R                  " U R                  5        [         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  rK  r   gZ@g-g@g8
m?gVP"?g`V?gx^&3?rV  rz  )r   rx   waldr<   rr   r	   r}  s      r8   	test_waldTestRandomDist.test_wald  s`    DII$d@((02EF02EF02EFH I 	"&2>r:   c                     [         R                  " U R                  5        [         R                  " SSS9n[        R                  " SS/SS/SS	//5      n[        XS
S9  g )Nr   r  r  g@6?g]A?g(1ڥR?gU?g2_u?g^}-Q?ry  rz  )r   rx   weibullr<   rr   r	   r}  s      r8   test_weibullTestRandomDist.test_weibull  s^    DII$V4((02EF02EF02EFH I 	"&2>r:   c                     [         R                  " U R                  5        [        [         R                  " SSS9[        R
                  " S5      5        [        [        [         R                  SS9  g )Nr   rP  r  rL  )rH   )r   rx   r   r?  r<   r   r   rb   rc   s    r8   test_weibull_0TestRandomDist.test_weibull_0  s?    DIIV^^ab1288B<@j&..C8r:   c                     [         R                  " U R                  5        [         R                  " SSS9n[        R                  " SS/SS/SS//5      n[        X5        g )	Nr   r  r  B      rg   ro   r-  )r   rx   r   r<   rr   r   r}  s      r8   	test_zipfTestRandomDist.test_zipf  sS    DIIt&1((RHFG% & 	6+r:   rp  N)]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?  rB  rF  rM  rS  rX  r[  r`  rd  rk  rn  rr  rv  ry  r}  r  r  r  r  r   rk  parametrizer<   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+  r2  r5  r8  r<  r@  rC  rH  r   r   r:   r8   rn  rn    s   ??
E,2$,(&,@
E,,,,,2&,9\9
/&068$,6?,?E&
@;
6?A??F,G?<,4?=???,( [[Wr||B';R&LM	> N	>	,1%f,)?*? 
?<L,
E??>???D?????D L,?&>
??9
,r:   rn  c                       \ 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#S"r$g#)$TestBroadcasti$  c                     SU l         g )N[rp  rc   s    r8   r   TestBroadcast.setup_method'  s	    	r:   c                 D    [         R                  " U R                  5        g r3   )r   rx   rc   s    r8   set_seedTestBroadcast.set_seed*  s    DIIr:   c                     S/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        XTSS9  U R	                  5         U" XS-  5      n[        XTSS9  g )Nr   rg   gl?g_x?g=*BN?ro   rV  rz  )r   r  r<   rr   rQ  r	   )rT   r  r  r  r\  r`  s         r8   r  TestBroadcast.test_uniform-  sr    cs..(( 1 2 	q$'!&2>Qh'!&2>r:   c                 L   S/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        XeSS9  [        [        XAS-  U5        U R	                  5         U" XS-  5      n[        XeSS9  [        [        XAUS-  5        g )Nr   rg   r_   )g-r@gYl@g-`w?ro   rV  rz  )r   r  r<   rr   rQ  r	   r   rb   )rT   ri  rK  	bad_scaler  r\  r`  s          r8   r  TestBroadcast.test_normal=  s    cD	(( 0 1 	a'!&2>j&'9=QY'!&2>j&y1}=r:   c                    S/nS/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        XvSS9  [        [        XSS-  U5        [        [        XQS-  U5        U R	                  5         U" XS-  5      n[        XvSS9  [        [        XSUS-  5        [        [        XQUS-  5        g )	Nrg   r   r_   rh   )gnQVf?gVKB?gv`k?ro   rV  rz  )r   r!  r<   rr   rQ  r	   r   rb   )rT   rH   rI   bad_abad_br!  r\  r`  s           r8   r"  TestBroadcast.test_betaP  s    CC{{(( 1 2 	a!eQ!&2>j$	15j$Au5aQ!&2>j$q1u5j$5195r:   c                     S/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  5      n[        XTSS9  [        [        X2S-  5        g Nrg   r_   )g.UgZ?gi Prq?gEK?ro   rV  rz  )r   rE  r<   rr   rQ  r	   r   rb   )rT   rK  rW  rE  r\  r`  s         r8   rF  TestBroadcast.test_exponentialf  s_    D	(((( 1 2 	UQY'!&2>j+1}=r:   c                     S/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  5      n[        XTSS9  [        [        X2S-  5        g r^  )r   r  r<   rr   rQ  r	   r   rb   )rT   r   	bad_shape	std_gammar\  r`  s         r8   r  !TestBroadcast.test_standard_gammas  s_    D	))	(( 1 2 	519%!&2>j)];r:   c                    S/nS/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        XvSS9  [        [        XSS-  U5        [        [        XQS-  U5        U R	                  5         U" XS-  5      n[        XvSS9  [        [        XSUS-  5        [        [        XQUS-  5        g )	Nrg   r   r_   rh   )g.UgZ?gi Prq?gEK?ro   rV  rz  )r   rW  r<   rr   rQ  r	   r   rb   )rT   r   rK  ra  rW  rW  r\  r`  s           r8   rX  TestBroadcast.test_gamma  s    D	D	(( 0 1 	uqy%(!&2>j%Q>j%I>uai(!&2>j%EAI>j%	A>r:   c                    S/nS/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        XvSS9  [        [        XSS-  U5        [        [        XQS-  U5        U R	                  5         U" XS-  5      n[        XvSS9  [        [        XSUS-  5        [        [        XQUS-  5        g )	Nrg   r   r_   rh   )gbyʜ?go?gT7@ro   rV  rz  )r   rR  r<   rr   rQ  r	   r   rb   )rT   r  r  	bad_dfnum	bad_dfdenrR  r\  r`  s           r8   rS  TestBroadcast.test_f  s    D	D	HH(( 0 1 	519e$!&2>j!]E:j!QY	:5!)$!&2>j!	:j!IM:r:   c           
      ^   S/nS/nS/nS/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  X#5      n	[        XSS	9  [        R                  " [        R                  " U" X[        R                  /S-  5      5      5      (       d   e[        [        XtS-  X#5        [        [        XqS-  XS5        [        [        XqS-  X&5        U R	                  5         U" XS-  U5      n	[        XSS	9  [        [        XtUS-  U5        [        [        XqUS-  U5        [        [        XqUS-  U5        U R	                  5         U" XUS-  5      n	[        XSS	9  [        [        XtX#S-  5        [        [        XqXSS-  5        [        [        XqX&S-  5        g )
Nr   ro   rp   r   r_   rh   )gr^G"@g/*@gц!@rV  rz  )r   r  r<   rr   rQ  r	   r   r  r   r   rb   )
rT   r  r  r  rg  rh  bad_noncnonc_fr\  r`  s
             r8   r  TestBroadcast.test_noncentral_f  sz   sC	D	4$$(( 0 1 		5/!&2>vvbhhveRVVHqLABCCCCj&a-Ej&!)YEj&!)UEqy$/!&2>j&UQYEj&QEj&HEdQh/!&2>j&U1HEj&1HEj&1Er:   c                     U R                  5         [        R                  " SS/5      n[        R                  " SSSSS9n[        X!SS9  g )Ngaz@gn4M;%?r   r   r   rV  rz  )rQ  r<   rr   r   r  r	   )rT   r\  r`  s      r8   test_noncentral_f_small_df(TestBroadcast.test_noncentral_f_small_df  s@    ((-/@AB$$S#qq9!&2>r:   c                     S/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  5      n[        XTSS9  [        [        X2S-  5        g )Nrg   r_   )g~}N??g$F?g'rS?ro   rV  rz  )r   r.  r<   rr   rQ  r	   r   rb   )rT   r  bad_dfr.  r\  r`  s         r8   r/  TestBroadcast.test_chisquare  s_    S$$	(( 0 1 	26"!&2>j)aZ8r:   c                    S/nS/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        XvSS9  [        [        XSS-  U5        [        [        XQS-  U5        U R	                  5         U" XS-  5      n[        XvSS9  [        [        XSUS-  5        [        [        XQUS-  5        g )	Nrg   r   r_   rh   )g w "@g2WR@gRY@ro   rV  rz  )r   r  r<   rr   rQ  r	   r   rb   )rT   r  r  rr  rk  nonc_chir\  r`  s           r8   r  'TestBroadcast.test_noncentral_chisquare  s    Ss4..(( 0 1 	"q&$'!&2>j(QJ=j(FH="Qh'!&2>j(D1H=j(1=r:   c                    S/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  5      n[        XTSS9  [        [        X2S-  5        [        [        [         R                  US-  5        g )Nrg   r_   )gT@g~Fl@gƚtp?ro   rV  rz  )r   r  r<   rr   rQ  r	   r   rb   )rT   r  rr  tr\  r`  s         r8   r  TestBroadcast.test_standard_t  st    S(( 0 1 	26!&2>j!aZ0j&"3"3VaZ@r:   c                 L   S/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        XeSS9  [        [        XAS-  U5        U R	                  5         U" XS-  5      n[        XeSS9  [        [        XAUS-  5        g )Nr   rg   r_   )gW!@gOBg}?ro   rV  rz  )r   r*  r<   rr   rQ  r	   r   rb   )rT   r  r(  	bad_kappar*  r\  r`  s          r8   r+  TestBroadcast.test_vonmises  s    SD	??(( 1 2 	"q&%(!&2>j(FI>"ai(!&2>j(	A>r:   c                    S/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  5      n[        XTSS9  [        [        X2S-  5        [        [        [         R                  US-  5        g )Nrg   r_   )g&8??geFX?gՋː?ro   rV  rz  )r   r  r<   rr   rQ  r	   r   rb   )rT   rH   rZ  r  r\  r`  s         r8   r  TestBroadcast.test_pareto  sp    C(( 0 1 	A!&2>j&!)4j&--;r:   c                    S/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  5      n[        XTSS9  [        [        X2S-  5        [        [        [         R                  US-  5        g r^  )r   r?  r<   rr   rQ  r	   r   rb   )rT   rH   rZ  r?  r\  r`  s         r8   r@  TestBroadcast.test_weibull'  sp    C..(( 1 2 	Q!&2>j'195j&..%!)<r:   c                    S/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  5      n[        XTSS9  [        [        X2S-  5        [        [        [         R                  US-  5        g )Nrg   r_   rT  ro   rV  rz  )r   r  r<   rr   rQ  r	   r   rb   )rT   rH   rZ  r  r\  r`  s         r8   r  TestBroadcast.test_power5  sp    C(( 1 2 	q1u!&2>j%3j&,,	:r:   c                 L   S/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        XeSS9  [        [        XAS-  U5        U R	                  5         U" XS-  5      n[        XeSS9  [        [        XAUS-  5        g )Nr   rg   r_   )g:BKc?g3k?g~q?ro   rV  rz  )r   ru  r<   rr   rQ  r	   r   rb   )rT   ri  rK  rW  ru  r\  r`  s          r8   rv  TestBroadcast.test_laplaceC  s    cD	..(( 2 3 	q%(!&2>j'7I>ai(!&2>j'	A>r:   c                 L   S/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        XeSS9  [        [        XAS-  U5        U R	                  5         U" XS-  5      n[        XeSS9  [        [        XAUS-  5        g )Nr   rg   r_   )g'Zy?gdSO=?g3L1?ro   rV  rz  )r   rj  r<   rr   rQ  r	   r   rb   )rT   ri  rK  rW  rj  r\  r`  s          r8   rk  TestBroadcast.test_gumbelV  s    cD	(( 1 2 	a'!&2>j&'9=QY'!&2>j&y1}=r:   c                    S/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        XeSS9  [        [        XAS-  U5        U R	                  5         U" XS-  5      n[        XeSS9  [        [        XAUS-  5        [        [         R                  " SS	5      S5        g )
Nr   rg   r_   )gy?gJR?g
~&?ro   rV  rz  r  r   )	r   r|  r<   rr   rQ  r	   r   rb   r   )rT   ri  rK  rW  r|  r\  r`  s          r8   r}  TestBroadcast.test_logistici  s    cD	??(( 2 3 	#'5)!&2>j(!GY?#qy)!&2>j(Q?V__S#.4r:   c                    S/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        XeSS9  [        [        XAS-  U5        [        [        [         R                  US-  U5        U R	                  5         U" XS-  5      n[        XeSS9  [        [        XAUS-  5        [        [        [         R                  XS-  5        g )Nr   rg   r_   )gH"@gܮ @gvv	:@ro   rV  rz  )r   r  r<   rr   rQ  r	   r   rb   )rT   r  r  	bad_sigmar  r\  r`  s          r8   r  TestBroadcast.test_lognormal}  s    sD	$$	(( 0 1 	4!8U+!&2>j)AXyAj&"2"2D1HiH4+!&2>j)9q=Aj&"2"2Da-Hr:   c                     S/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  5      n[        XTSS9  [        [        X2S-  5        g )Nrg   r_   )gݱlo?g/ӂ?gz~R?ro   rV  rz  )r   r  r<   rr   rQ  r	   r   rb   )rT   rK  rW  r  r\  r`  s         r8   r  TestBroadcast.test_rayleigh  s]    D	??(( 0 1 	%!)$!&2>j(M:r:   c                 v   S/nS/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        XvSS9  [        [        XSS-  U5        [        [        XQS-  U5        [        [        [         R                  US-  U5        [        [        [         R                  US-  U5        U R	                  5         U" XS-  5      n[        XvSS9  [        [        XSUS-  5        [        [        XQUS-  5        [        [        US	S5        [        [        USS	5        g )
Nr   rg   r   rh   )g@m e?g`I߿?g|2?ro   rV  rz  r   )r   r;  r<   rr   rQ  r	   r   rb   )rT   r  rK  bad_meanrW  r;  r\  r`  s           r8   r<  TestBroadcast.test_wald  s   u3D	{{(( 0 1 	dQh&!&2>j$1e<j$q)<j&++x!|UCj&++taxCdAI&!&2>j$%!)<j$i!m<j$Q/j$S1r:   c                 H   S/nS/nS/nS/nS/nUS-  u  pg[         R                  n[        R                  " / SQ5      n	U R	                  5         U" US-  X25      n
[        XSS9  [        [        XS-  X25        [        [        XS-  XR5        [        [        XS-  UU5        U R	                  5         U" XS-  U5      n
[        XSS9  [        [        XUS-  U5        [        [        XUS-  U5        [        [        XUS-  U5        U R	                  5         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 )Nrg   ro   r   rp   )g,P;bD @g%G @g,~S @rV  rz  r   r   g      4@g      9@)r   r  r<   rr   rQ  r	   r   rb   )rT   r  r  r  bad_left_onebad_mode_onebad_left_twobad_mode_twor  r\  r`  s              r8   r  TestBroadcast.test_triangular  s   ssss%*QY"&&
(( 0 1 	D1Hd2!&2>j*Q.>Lj*QhLj*Q.>	 	D(E2!&2>j*D1HeLj*L14DeLj*L1<L	 	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                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        X5        [        [        XcS-  U5        [        [        XaS-  U5        [        [        XaS-  U5        U R	                  5         U" XS-  5      n[        X5        [        [        XcUS-  5        [        [        XaUS-  5        [        [        XaUS-  5        g )Nrg   r   r_         ?rg   rg   rg   ro   )r   r   r<   rr   rQ  r   r   rb   )	rT   r  r   bad_n	bad_p_one	bad_p_twobinomr\  r`  s	            r8   r*  TestBroadcast.test_binomial  s    CED	E	((9%q1ua6+j%A6j%Q	:j%Q	:qa%6+j%A6j%IM:j%IM:r:   c                    S/nS/nS/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  U5      n[        X5        [        [        XcS-  U5        [        [        XaS-  U5        [        [        XaS-  U5        U R	                  5         U" XS-  5      n[        X5        [        [        XcUS-  5        [        [        XaUS-  5        [        [        XaUS-  5        g )Nrg   r   r_   r  )rg   r   rg   ro   )r   r   r<   rr   rQ  r   r   rb   )	rT   r  r   r  r  r  	neg_binomr\  r`  s	            r8   r   $TestBroadcast.test_negative_binomial  s    CED	E	,,	((9%1q5!$6+j)QY:j)UI>j)UI>1!e$6+j)AE:j)	A>j)	A>r:   c                 B   [         R                  " 5       R                  nS/nS/nUS-  /n[         R                  n[        R
                  " / SQ5      nU R                  5         U" US-  5      n[        Xv5        [        [        XSS-  5        [        [        XTS-  5        g )Nrg   r_   r   )rg   rg   r   ro   )
r   rQ   _poisson_lam_maxr   r<   rr   rQ  r   r   rb   )rT   max_lamr  bad_lam_onebad_lam_twor   r\  r`  s           r8   r  TestBroadcast.test_poisson  s    $$&77cd{m..((9%q!6+j'?;j'?;r:   c                    S/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  5      n[        XT5        [        [        X2S-  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   rg   ro   r  r  )
r   r   r<   rr   rQ  r   r   rb   r  r   )rT   rH   rZ  r   r\  r`  s         r8   rH  TestBroadcast.test_zipf  s    C{{((9%a!e6+j$	2[[**dBFF3*dQ266N; +**s   <AC
Cc                     S/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  5      n[        Xe5        [        [        XBS-  5        [        [        XCS-  5        g )Nr   r_   r  r   ro   )r   r   r<   rr   rQ  r   r   rb   )rT   r   r  r  geomr\  r`  s          r8   r`  TestBroadcast.test_geometric,  sj    ED	E	((9%a!e6+j$A6j$A6r:   c                    S/nS/nS/nS/nS/nS/nS/n[         R                  n[        R                  " / SQ5      n	U R	                  5         U" US-  X#5      n
[        X5        [        [        XS-  X#5        [        [        XS-  XS5        [        [        XS-  X&5        [        [        XS-  X'5        U R	                  5         U" XS-  U5      n
[        X5        [        [        XUS-  U5        [        [        XUS-  U5        [        [        XUS-  U5        [        [        XUS-  U5        U R	                  5         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        g )Nrg   r   r_   rh   r   rp   r  ro   r   r      )r   r   r<   rr   rQ  r   r   rb   )rT   ngoodnbadnsample	bad_ngoodbad_nbadbad_nsample_onebad_nsample_two	hypergeomr\  r`  s              r8   rr  !TestBroadcast.test_hypergeometric9  s   s#D	4##))	((9%519d46+j)]DJj)QYJj)QYNj)QYN5(G46+j)q'Jj)HqL'Jj)D1HoNj)D1HoN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Q7j)RR8r:   c                     S/nS/nS/n[         R                  n[        R                  " / SQ5      nU R	                  5         U" US-  5      n[        Xe5        [        [        XBS-  5        [        [        XCS-  5        g )Nr   r   r_   r  ro   )r   r   r<   rr   rQ  r   r   rb   )rT   r   r  r  r   r\  r`  s          r8   r  TestBroadcast.test_logseriesa  sk    EC	D	$$	((9%1q5!6+j)];j)];r:   rp  N)%r   r   r   r   r   rQ  r  r  r"  rF  r  rX  rS  r  ro  r/  r  r  r+  r  r@  r  rv  rk  r}  r  r  r<  r  r*  r   r  rH  r`  rr  r  r   r   r:   r8   rL  rL  $  s    ? >&6,><?,;,!FF?9>,A?&<=;?&>&5(I*;24&=P;.?.<<7&9P<r:   rL  zcan't start threadrY  c                   2    \ rS rSrS rS rS rS rS rSr	g)	
TestThreadio  c                 $    [        S5      U l        g )Nrp   )rY   seedsrc   s    r8   r   TestThread.setup_methodr  s    1X
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[        R                  " U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" [        R                  " U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argsrp   win32)	threadingr  r<   r  r   r  zipr   rQ   startjoinintprm   itemsizerL  platformr	   r   )
rT   functionszr  out1out2rU   orx  r   s
             r8   check_functionTestThread.check_functionu  s!   $xxTZZ*R/0xxTZZ*R/0 TZZ.0. 86+=+=a+@!*DE. 	
 0AqA1a1 

D)DAV''*A. * 779??##q(S\\W-D%d1t*0s   :)E9*E?	Fc                 *    S nU R                  USS9  g )Nc                 (    U R                  SS9US'   g )N'  r   .)r  rC   outs     r8   
gen_random*TestThread.test_normal.<locals>.gen_random  s    |||/CHr:   )r  r  r  rT   r  s     r8   r  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   rO   rJ  .)rE  r<   r  r  s     r8   r  'TestThread.test_exp.<locals>.gen_random  s"    ((rww{/C(DCHr:   r  r  r  r  s     r8   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   r  r   r  r   .)r   r  s     r8   r  /TestThread.test_multinomial.<locals>.gen_random  s#    ((fX\(FCHr:   )r  r   r  r  r  s     r8   r  TestThread.test_multinomial  s    	G 	J:6r:   )r  N)
r   r   r   r   r   r  r  r  r  r   r   r:   r8   r  r  o  s    +,587r:   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestSingleEltArrayInputi  c                     [         R                  " S/5      U l        [         R                  " S/5      U l        [         R                  " S/5      U l        SU l        g )Nr   ro   rp   r  )r<   rr   argOneargTwoargThreetgtShaperc   s    r8   r   $TestSingleEltArrayInput.setup_method  s<    hhsmhhsm!r:   c                 l   [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  4n[         R                  [         R                  4nU HX  nX2;   a  U" [        R                  " S/5      5      nOU" U R                  5      n[!        UR"                  U R$                  5        MZ     g r   )r   rE  r  r.  r  r  r?  r  r  r   r   r   r   r<   rr   r  r   r   r  )rT   funcs	probfuncsr  r  s        r8   test_one_arg_funcs*TestSingleEltArrayInput.test_one_arg_funcs  s    ##V%:%:!!6#4#4v!!6#3#35 %%v'7'78	D 288SE?+ 4;;'DMM2 r:   c                    [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  4n[         R                  [         R                  4nU H  nX2;   a  [        R                   " S/5      nOU R"                  nU" U R$                  U5      n['        UR(                  U R*                  5        U" U R$                  S   U5      n['        UR(                  U R*                  5        U" U R$                  US   5      n['        UR(                  U R*                  5        M     g )Nr   r   )r   r  r  r!  rW  rR  r  r*  ru  rj  r|  r  r;  r   r   r<   rr   r  r  r   r   r  )rT   r  r  r  r  r  s         r8   test_two_arg_funcs*TestSingleEltArrayInput.test_two_arg_funcs  s   fll666&..!!6;;&":":< __f&>&>?	D 3% t{{F+CDMM2t{{1~v.CDMM2t{{F1I.CDMM2 r:   c                 0   [         R                  [         R                  [         R                  /nU H  nU" U R                  U R
                  U R                  5      n[        UR                  U R                  5        U" U R                  S   U R
                  U R                  5      n[        UR                  U R                  5        U" U R                  U R
                  S   U R                  5      n[        UR                  U R                  5        M     g Nr   )
r   r  r  r   r  r  r  r   r   r  )rT   r  r  r  s       r8   test_three_arg_funcs,TestSingleEltArrayInput.test_three_arg_funcs  s    $$f&7&7&&( Dt{{DKK?CDMM2t{{1~t{{DMMBCDMM2t{{DKKNDMMBCDMM2 r:   )r  r  r  r  N)	r   r   r   r   r   r  r  r  r   r   r:   r8   r  r    s    3&363r:   r  c                     [         R                  " S5        U u  pn[        [         U5      nU" USS06n[        UR                  [
        R                  " S5      :H  5        g )NrN  r   r   rX  )r   rx   getattrr   rm   r<   )r9   fnamer  rP  rR  r`  s         r8   test_integer_dtyper    sL    
KK	"EA1FFLLBHHSM)*r:   c                 N   [         R                  " S5        U u  pn[        [         U5      nU" USS06n[        R                  S:w  a  UR                  5       n[        R                  " UR                  [        R                  5      5      R                  5       n[        Xc:H  5        g )NrN  r   r.  rK  )r   rx   r  rL  rM  rN  rO  rP  rQ  r<   rG  rR  r   )r9   r  r  rP  rR  rT  rU  s          r8   test_integer_repeatr     sx    
KK	"EA
T
 
 C
}} lln
.."''*
+
5
5
7CCMr:   c                     [         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        g ! , (       d  f       N= f! , (       d  f       N]= f! , (       d  f       g = f)Nrg   r  gffffff?)r   rg   r   r   )r   r   rb   r   r   r   r:   r8   test_broadcast_size_errorr    s    	z	"C:F3 
#	z	"A&1 
#	z	"Ac
8 
#	"	 
#	"	"	"	"	"s#   B5CC5
C
C
C%c                     [         R                  R                  [        S5      5      n U R	                  S5        U R                  5       u  pnUS   R                  R                  S:X  d   eU" S6 nUR                  U5        UR                  SS9n[        US   US   5        [        US   S	   US   S	   5        [        US   S
   US   S
   5        [        US   US   5        [        US   US   5        g )Nr   rg   r   )r   Fr  rB   rC   rD   rE   rF   rG   )r<   r   rQ   r   r   
__reduce__	__class__r   r   r   r   r   )ry   ctorr  state_arI   state_bs         r8   &test_randomstate_ctor_old_style_pickler	    s    			wqz	*Bq--/D7%%222lAKKkkk'G)7?+CDww'.0@0GHww'.0@0GH%w{';<!77#34r:   c                 p   [         R                  R                  S5      nUR                  n[         R                  R	                  U5        [        [         R                  R                  R                  R                  [        U5      5      (       d   e[         R                  R                  5       nX#L d   eg r  )r<   r   default_rngrB   r>   r   mtrand_rand_bit_generatorrf  r=   )r@   def_bgbg	second_bgs       r8   test_hot_swapr    s|    YY""1%F			BII#bii&&,,;;T"XFFFF		++-I??r:   c                    [        S5      n[        R                  R                  U5        [        R                  R	                  SS9n[        R                  R                  S5        [        R                  R	                  SS9n[        U5        [        U5        US   S:X  d   eUS   S   US   S   :w  d   eUS   S   US   S   :w  d   eg )	Nr   Fr  rg   rB   r   rC   inc)r   r<   r   r>   r   rx   print)r@   r  rC   r  s       r8   test_seed_alt_bit_genr    s    	qBII#IIu-EIINN1		##5#1I	%L	)!W,,,>'"i&8&AAAA>% Ig$6u$====r:   c                 8   [         R                  R                  5       n[        S5      n[         R                  R	                  U5        [
        R                  " [        SS9   [         R                  R                  U5        S S S 5        g ! , (       d  f       g = f)Nr   zstate must be for a PCG64r   )	r<   r   r   r   r>   r   r   rb   r   )r@   rC   r  s      r8   test_state_error_alt_bit_genr  ,  s]    II!E	qBII#	z)D	E
		E" 
F	E	Es   " B
Bc                 z   [         R                  R                  S5        [         R                  R                  SSS5      n[	        S5      nUR
                  n[         R                  R                  U5        [         R                  R                  SS9nU H  nX5   XE   :X  a  M   e   [         R                  R                  S5        [         R                  R                  SSS5      n[         R                  " X:H  5      (       a   eUR
                  nUS   S   US   S   :w  d   eUS   S   US   S   :X  d   eg )	Ń r      @r   Fr  rC   r  )	r<   r   rx   rR   r   rC   r>   r   r   )r@   r<  r  rC   state_directfieldpcg_valsr  s           r8   test_swap_workedr  5  s   IINN599Q,D	qBHHEII#99&&e&4L||2222 IINN5yy  GR0Hvvd&''''IWg&%.*AAAAWe$	'(:5(AAAAr:   c                 "   [         R                  R                  [        S5      5        [         R                  R	                  SSS5      n[         R                  R                  [        S5      5      nUR	                  SSS5      n[        X15        g )Nr  r   r  r   )r<   r   r>   r   rR   rQ   r   )r@   singleton_valsrgnon_singleton_valss       r8   %test_swapped_singleton_against_directr$  G  sd    IIe-YY&&q'26N			uU|	,BAw3#4r:   )3rO  r	  rL  r  numpyr<   r   numpy.testingr   r   r   r   r   r   r	   r
   r   numpy.randomr   r   r   r  r5   r&  rd  r(  r6   fixturer9   r@   rJ   rL   r   r   r   r  rn  rL  rk  rl  r  r  r  r   r  r	  r  r  r  r  r$  r   r:   r8   <module>r)     s     
   
 
 
 ( %+c!12"+	 88BGG5 #e$f$f)k&h,n"daO $f$f)k$f&h,n"daO hy1, 2,
 - -),? ,?^> >6. 6.pTJ TJna+ a+Hh, h,VH	< H	<V G$89+7 +7 :+7^A3 A3J+95$>#B$5r:   