
    4iV             	          S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r	J
r
  S SKJrJrJrJrJrJrJr  SSSSS\R&                  " S	5      S
-  4SSSS.r\R*                  " \R,                  5      R.                  S:  a  SSSSSSSSS.rOSSSSSSSS S.r\R2                  " S!\S"9S# 5       r\R2                  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#\RH                  RK                  \S4S59 " S6 S75      5       r& " S8 S95      r'S: r(S; r)S< r*S= r+\RH                  RY                  S>S59S? 5       r-\RH                  RY                  S>S59S@ 5       r.\RH                  RY                  S>S59SA 5       r/\RH                  RY                  S>S59SB 5       r0\RH                  RY                  S>S59SC 5       r1g)D    N)random)MT19937PCG64)IS_WASMassert_assert_array_almost_equalassert_array_equalassert_equalassert_no_warningsassert_raises)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    e/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/numpy/random/tests/test_randomstate.pyint_funcr7   6   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    r6   restore_singleton_bitgenr>   <   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     r6   assert_mt19937_state_equalrH   D   sr    ?#Q%78qz%(!G*U*;<qz%(!G*U*;<;;07QwZ(r8   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestSeedL   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     r6   test_scalarTestSeed.test_scalarM   sF    q!QYYt_c*z*QYYt_c*r8   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   rM   i  r   i  rN   i	  )r   rO   ranger
   rP   r:   arangerQ   s     r6   
test_arrayTestSeed.test_arrayS   s    uRy)QYYt_c*ryy}-QYYt_c*s#QYYt_c*
|,QYYt_c*r8   c                     [        [        [        R                  S5        [        [        [        R                  S5        g )N      r   	TypeErrorr   rO   
ValueErrorrR   s    r6   test_invalid_scalarTestSeed.test_invalid_scalar]   s&    i!3!3T:j&"4"4b9r8   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   )re   r   r^   ra   s    r6   test_invalid_arrayTestSeed.test_invalid_arrayb   sd    i!3!3dV<j&"4"4rd;j&"4"4zlCj&"4"46HIj&"4"46IJr8   c           	         [        [        [        R                  [        R
                  " / [        R                  S95        [        [        [        R                  / SQ/5        [        [        [        R                  / SQ/ SQ/5        g )Ndtypere   r      )      r   )r   r`   r   rO   r:   arrayint64ra   s    r6   test_invalid_array_shape!TestSeed.test_invalid_array_shapej   s\    j&"4"4bhhrEGXX7O 	Pj&"4"4ykBj&"4"4y7@7B 	Cr8   c                     [         R                  " [        S5      5      n[        [        5         UR                  S5        S S S 5        g ! , (       d  f       g = f)Nr     )r   rO   r   r   r_   seed)rR   rss     r6   test_cannot_seedTestSeed.test_cannot_seedr   s5    a)9%GGDM &%%s   A


Ac                 J    [        [        [        R                  [        5        g r1   )r   r`   r   rO   r   ra   s    r6   test_invalid_initialization$TestSeed.test_invalid_initializationw   s    j&"4"4g>r8    N)__name__
__module____qualname____firstlineno__rT   rY   rb   rg   rr   rx   r{   __static_attributes__r}   r8   r6   rJ   rJ   L   s'    ++:
KC
?r8   rJ   c                        \ rS rSrS rS rSrg)TestBinomial{   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   intrj   )r   r   re   r   )r:   zerosr   r   r   r	   )rR   r   ps      r6   test_n_zeroTestBinomial.test_n_zero|   sI     %(AFOOAq)Q./vu8%@ r8   c                 `    [        [        [        R                  S[        R
                  5        g )Nre   )r   r`   r   r   r:   nanra   s    r6   test_p_is_nanTestBinomial.test_p_is_nan   s    j&//1bff=r8   r}   N)r~   r   r   r   r   r   r   r}   r8   r6   r   r   {   s    A>r8   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   ra   s    r6   
test_basicTestMultinomial.test_basic   s    3c
+r8   c                 6    [         R                  " S/ SQ5        g )Nr   )r   r           r   r   r   ra   s    r6   test_zero_probability%TestMultinomial.test_zero_probability   s    3 9:r8   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]   ro   )r   r   rP   r:   allrR   xs     r6   test_int_negative_interval*TestMultinomial.test_int_negative_interval   s\    fnnR,11r12NN2r1%rQw q2vr8   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   re   re   r   r   r   r   r   r   r   )
r
   r   r   r:   uint32shaperp   r   r_   floatrR   r   s     r6   	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	 r8   c                     [        [        [        R                  SSS/5        [        [        [        R                  SSS/5        g )Nr   皙?r   皙?r   r`   r   r   ra   s    r6   test_invalid_prob!TestMultinomial.test_invalid_prob   s2    j&"4"4cC:Fj&"4"4cC:Fr8   c                 H    [        [        [        R                  SSS/5        g )Nr]   r   r   r   ra   s    r6   test_invalid_nTestMultinomial.test_invalid_n   s    j&"4"4b3*Er8   c                 T   [         R                  " S5      nU[         R                  " USS S2   5      -  nUSS S2   n[        R                  " S5      nUR                  SUS9n[        R                  " S5      nUR                  S[         R                  " U5      S9n[        XE5        g )Ng      .@re   rm   i۠iUr   )pvals)r:   rX   sumr   rO   r   ascontiguousarrayr	   )rR   r   r   rng
non_contigcontigs         r6   test_p_non_contiguous%TestMultinomial.test_p_non_contiguous   s    IIcN	RVVAaddG_!$Q$  ,__S_6
  ,B,@,@,GH:.r8   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   rj   z-[\w\s]*pvals array is cast to 64-bit floatingmatchre   )	r:   rp   float32r   pytestraisesr`   r   r   )rR   r   r   r   s       r6   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   ra   s    r6   test_multinomial_n_float(TestMultinomial.test_multinomial_n_float   s    53*-r8   r}   N)r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r}   r8   r6   r   r      s1    ,;  GF/).r8   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                 X    Sn[         R                  " U5      nUR                  5       nX#4$ )NI)r   rO   	get_state)rR   rv   random_staterA   s       r6   _create_stateTestSetState._create_state   s.    ))$/&&(""r8   c                     U R                  5       u  pUR                  S5      nUR                  U5        UR                  S5      n[        [        R
                  " X4:H  5      5        g )N   )r   tomaxint	set_stater   r:   r   rR   r   rA   oldnews        r6   r   TestSetState.test_basic   sT    "002##B'u%##B'sz"#r8   c                     U R                  5       u  pUR                  SS9nUR                  U5        UR                  SS9n[        [        R
                  " X4:H  5      5        g Nrm   sizer   standard_normalr   r   r:   r   r   s        r6   test_gaussian_reset TestSetState.test_gaussian_reset   sZ    "002***2u%***2sz"#r8   c                    U R                  5       u  pUR                  5         UR                  5       nUR                  SS9nUR                  U5        UR                  SS9n[	        [
        R                  " X4:H  5      5        g r   )r   r   r   r   r   r:   r   r   s        r6    test_gaussian_reset_in_media_res-TestSetState.test_gaussian_reset_in_media_res   sv     #002$$&&&(***2u%***2sz"#r8   c                 T   U R                  5       u  pUS S nUR                  SS9nUR                  U5        UR                  SS9nUR                  U5        UR                  SS9n[        [        R
                  " XE:H  5      5        [        [        R
                  " XF:H  5      5        g )Nrf   r   r   r   )rR   r   rA   	old_statex1x2x3s          r6   test_backwards_compatibility)TestSetState.test_backwards_compatibility   s     #002#2J	))r)2y)))r)2u%))r)2rx !rx !r8   c                 L    U R                  5       u  pUR                  SS5        g Nr   )r   r   rR   r   _s      r6   test_negative_binomial#TestSetState.test_negative_binomial   s$     ,,.&&sC0r8   c                    [         R                  " [        5       5      n[        R                  " [
        5         UR                  5       nS S S 5        [        W[        5      (       d   eUS   S:X  d   eg ! , (       d  f       N1= f)Nr@   r   )	r   rO   r   r   warnsRuntimeWarningr   
isinstancedict)rR   rw   rA   s      r6   test_get_state_warning#TestSetState.test_get_state_warning   s_    (\\.)LLNE *%&&&&_%000 *)s   A55
Bc           	      L   U R                  5       u  pUR                  5       nSUSS  -   n[        [        UR                  U5        [        [
        UR                  [        R                  " U[        S95        UR                  SS9nUS	 [        [        UR                  U5        g )N)Unknownre   rj   Flegacyr@   )	r   r   r   r`   r   r_   r:   rp   object)rR   r   rA   	new_states       r6   !test_invalid_legacy_state_setting.TestSetState.test_invalid_legacy_state_setting   s    "002&&(!E!"I-	j,"8"8)Di!7!7hhy7	9&&e&4/"j,"8"8%@r8   c                 P   U R                  5       u  pUR                  S5        UR                  S5        UR                  5         UR	                  SS9n[        US   S5        [        R                  " [        R                  " U5      5      nUR	                  SS9n[        X55        g )Nr   r   Fr   rD   re   )
r   rv   random_sampler   r   r
   pickleloadsdumpsrH   )rR   r   r   pickled	rs_unpick	unpickleds         r6   test_pickleTestSetState.test_pickle	  s    ,,.!""3'$$&(((6W[)1-LLl!;<	''u'5	"76r8   c                     U R                  5       u  pUR                  5       nUR                  5         UR                  U5        UR	                  SS9n[        X25        g )NFr   )r   __getstate__r   __setstate__r   rH   )rR   r   rA   
attr_states       r6   test_state_settingTestSetState.test_state_setting  sV    "002!..0
$$&!!*-&&e&4":5r8   c                 j    U R                  5       u  p[        U5      R                  S5      (       d   eg )NzRandomState(MT19937))r   repr
startswithr   s      r6   	test_reprTestSetState.test_repr  s/    ,,.L!,,-CDDDDr8   r}   N)r~   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r}   r8   r6   r   r      s;    #$$	$"11	A	76Er8   r   c            	          \ rS rSr\R
                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  /	rS rS rS rS rS rS r\R,                  R/                  \R0                  " S5      R2                  S	:  S
S9S 5       rS rS rSrg)TestRandinti!  c                 |    [         R                  R                  5       n[        [        UR
                  S[        S9  g Nre   rj   )r:   r   rO   r   r_   rP   r   )rR   r   s     r6   test_unsupported_type!TestRandint.test_unsupported_type'  s&    ii##%iau=r8   c           	         [         R                  R                  5       n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-
  XBS9  [        [        UR                  X4S-   US9  [        [        UR                  XCUS9  [        [        UR                  SSUS9  M     g )Nr   r   re   rj   )r:   r   rO   itypebooliinfominmaxr   r`   rP   )rR   r   dtlbndubnds        r6   test_bounds_checking TestRandint.test_bounds_checking+  s    ii##%**Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D*ckk4!8TL*ckk4L*ckk4RH*ckk1arB r8   c           
         [         R                  R                  5       n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                  XUS-   SUS9U5        Un[        UR                  XUS-   SUS9U5        X4-   S-  n[        UR                  XUS-   SUS9U5        M     g )Nr   r   re   rM   r   rk   )
r:   r   rO   r"  r#  r$  r%  r&  r
   rP   )rR   r   r'  r(  r)  tgts         r6   test_rng_zero_and_extremes&TestRandint.test_rng_zero_and_extremes5  s    ii##%**Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D(CS'BGMCS'BGM;1$CS'BGM r8   c                    [         R                  R                  5       n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                  X4US9  M     g ! [         a  n[        S[        U5      -  5      eS nAff = f)Nr   r   re   rj   zMNo error should have been raised, but one was with the following message:

%s)r:   r   rO   r"  r#  r$  r%  r&  rP   	ExceptionAssertionErrorstr)rR   r   r'  r(  r)  es         r6   test_full_rangeTestRandint.test_full_rangeD  s    ii##%**Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D@Db1   @$ &68;A&? @ @@s   B11
C;CCc           	         [         R                  R                  5       n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 )Nre   )rn      r   r   i   r-  r   )	r:   r   rO   r"  rP   r   r&  r%  r#  )rR   r   r'  r)  valss        r6   test_in_bounds_fuzzTestRandint.test_in_bounds_fuzzS  s    ii##%**QR.B"{{1db{A
T)*
a( # ! {{1ae277{;
Q
a r8   c           
      "   SSSSSSSSSS.	nU R                   SS   H  n[        R                  " S5      n[        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      n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int32rq   int8uint16r   uint64uint8re   ru   littler   r   rM   r-  r   )r"  r   rO   sys	byteorderrP   byteswaphashlibsha256viewr:   rE  	hexdigestr   rk   namer#  )rR   r.  r'  r   valress         r6   test_repeatabilityTestRandint.test_repeatabilityb  sC    \[[[[[[[[] **QR.B$$T*C }}(kk!QTk<kk!QTk<EEG.."''!23==?CC))*c12 !   &kk!QTk6;;BGGDnnS!++-BHHTN''(C/0r8   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      nUR	                  S/S/S/// SQUS9n[        XBb  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)ro   rm   rm   i90  r]   r   re   )rN   r   l       r   )r:   rp   r   rO   rP   r	   )rR   desiredr   r   r   s        r6   .test_repeatability_32bit_boundary_broadcasting:TestRandint.test_repeatability_32bit_boundary_broadcasting  s     ((AAAC BAAC BAAC BAAC BAACD E &D$$U+CbTA3,.K $  &Aq-='71:N	 &r8   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:   rq   r$  r&  rG  r   rP   r
   )rR   r'  r.  r(  r)  actuals         r6   test_int64_uint64_corner_case)TestRandint.test_int64_uint64_corner_case  s     XXhhrxx $$xx*../yy"((+//!34 "5V!r8   c                 $   [         R                  R                  5       n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                  X4U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                  X4US9n[        [        US5      (       + 5        [        [        U5      U5        M     g )Nr   r   re   rj   longr#  rk   )r:   r   rO   r"  r#  r$  r%  r&  rP   r
   rk   r   r   hasattrtype)rR   r   r'  r(  r)  sampleop_dtypes          r6   test_respect_dtype_singleton(TestRandint.test_respect_dtype_singleton  s   ii##%**Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D[[2[6Frxx|4  +B "$svHd
1(:(>(>Dd
1(:(>(>(BD[[2[6F001fr* r8   r}   N)r~   r   r   r   r:   r#  rE  rH  rC  rF  rD  r   rq   rG  r"  r  r*  r/  r6  r;  rT  r   markskipifr$  r&  r[  r_  rg  r   r}   r8   r6   r  r  !  s     WWbggrxx299XXryy"((BII7E>CN@!1@ [[))E1?  AOAO,".+r8   r  c                   z   \ 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  r   c                     [         R                  " U R                  5      nUR                  SS5      n[        R
                  " SS/SS/SS//5      n[        X#S	S
9  g )Nrm   r   _\*?琛?<p?,o?H?Z?   decimal)r   rO   rv   randr:   rp   r   rR   r   r^  rZ  s       r6   	test_randTestRandomDist.test_rand  sa      +!Q((02EF02EF/1CDF G 	"&2>r8   c                 |    [         R                  " U R                  5      nUR                  5       nSn[	        X#SS9  g )Nrn  rt  ru  )r   rO   rv   rw  r   rx  s       r6   test_rand_singleton"TestRandomDist.test_rand_singleton  s0      +%!&2>r8   c                 4   [         R                  " U R                  5      nUR                  SS5      n[        R
                  " SS/SS/SS//5      n[        X#S	S
9  [         R                  " U R                  5      nUR                  5       n[        X#S   S	S
9  g )Nrm   r   !<Oq?4u,?3?LI/DͿ@? @HS\@rt  ru  r   r   r   rO   rv   randnr:   rp   r   rx  s       r6   
test_randnTestRandomDist.test_randn  s      +1a((02EF-/BC-/BCE F 	"&2>  +!&$-Dr8   c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#5        g )Nc   rm   r   r      rm   )   )r   rO   rv   rP   r:   rp   r	   rx  s       r6   test_randintTestRandomDist.test_randint  s[      +S"62((RG "I #J( ) 	6+r8   c                    [         R                  " U R                  5      n[        R                  " [
        5         UR                  SSSS9nS S S 5        [        R                  " SS/SS/S	S
//5      n[        WU5        [         R                  " U R                  5      n[        R                  " [
        5         UR                  SSS9nS S S 5        [        X#S-   5        g ! , (       d  f       N= f! , (       d  f       N.= f)Nr  r  r  r   r  rm   r  r  r  r     r   )
r   rO   rv   r   r   DeprecationWarningrandom_integersr:   rp   r	   rx  s       r6   test_random_integers#TestRandomDist.test_random_integers  s      +\\,-((bv(>F .((RG "I #J( ) 	67+  +\\,-((6(:F .6S=1 .- .-s   C":C3"
C03
Dc                     [         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rj   l   K+W+y l   r&&J] l   ;	 l   nBz l   @XHT l   D+l++ r  )r   rO   rv   r   r:   r$  rb  r&  rp   rq   r
   )rR   rw   r^  rZ  s       r6   test_tomaxintTestRandomDist.test_tomaxint  s    		*&)88BGG  J.hhi 8!+i 8!+i 8 :ACKG hh!46I J!46I J!46I J L &(XX/G
 	V%
		VT]+r8   c           	         [         R                  " [        5         [        R                  " [
        R                  " S5      R                  [
        R                  " S5      R                  5      nS S S 5        [
        R                  " S5      R                  n[        WU5        [         R                  " [        5         [
        R                  " S5      R                  n[        R                  " U" [
        R                  " S5      R                  5      U" [
        R                  " S5      R                  5      5      nS S S 5        [        X5        g ! , (       d  f       N= f! , (       d  f       N+= f)NrV  )r   r   r  r   r  r:   r$  r&  r
   rk   rd  )rR   r^  rZ  typers       r6   test_random_integers_max_int+TestRandomDist.test_random_integers_max_int  s     \\,-++BHHSM,=,=,.HHSM,=,=?F . ((3-##VW%\\,-HHSM&&E++E"((3-2C2C,D,1"((3-2C2C,DFF . 	V% .- .-s   AE=B E"
E"
E0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errorrV  )
warningscatch_warningssimplefilterr  r   r   r  r:   r$  r&  ra   s    r6   test_random_integers_deprecated.TestRandomDist.test_random_integers_deprecated#  s    $$&!!'+=> , 00((3-++-
 , 00((3-++RXXc]->->@ '&&s   B5C
C"c                 2   [         R                  " U R                  5      nUR                  S5      n[        R
                  " SS/SS/SS//5      n[        X#SS	9  [         R                  " U R                  5      nUR                  5       n[        X#S
   SS	9  g )Nr  rn  ro  rp  rq  rr  rs  rt  ru  r  )r   rO   rv   r  r:   rp   r   rx  s       r6   test_random_sample!TestRandomDist.test_random_sample1  s      +""6*((02EF02EF/1CDF G 	"&2>  +""$!&$-Dr8   c                     [         R                  " U R                  5      nUR                  SS5      n[        R
                  " / SQ5      n[        X#5        g )Nrn   )r   rm   r   rm   r   rO   rv   choicer:   rp   r	   rx  s       r6   test_choice_uniform_replace*TestRandomDist.test_choice_uniform_replace=  s<      +Aq!((<(6+r8   c                     [         R                  " U R                  5      nUR                  SS/ SQS9n[        R
                  " / SQ5      n[        X#5        g )Nrn   )皙?r  皙?r  r   )re   re   r   r   r  rx  s       r6   test_choice_nonuniform_replace-TestRandomDist.test_choice_nonuniform_replaceC  sA      +Aq$89((<(6+r8   c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " / SQ5      n[        X#5        g )Nrn   rm   Freplace)r   re   rm   r  rx  s       r6   test_choice_uniform_noreplace,TestRandomDist.test_choice_uniform_noreplaceI  s@      +Aq%0((9%6+r8   c                     [         R                  " U R                  5      nUR                  SSS/ SQS9n[        R
                  " / SQ5      n[        X#5        g )Nrn   rm   F)r  333333?r   r  r  r   )r   rm   re   r  rx  s       r6    test_choice_nonuniform_noreplace/TestRandomDist.test_choice_nonuniform_noreplaceO  sC      +Aq%3GH((9%6+r8   c                     [         R                  " U R                  5      nUR                  / SQS5      n[        R
                  " / SQ5      n[        X#5        g )N)rF   rG   cdrn   )r  r  r  r  r  rx  s       r6   test_choice_noninteger%TestRandomDist.test_choice_nonintegerU  s>      +0!4((/06+r8   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]   rm         @re   r   rn   )re   r   rm   rn   g      ?r  )r  r  r   r   r   r  rl   Fr  rf   )r]   )r]   re   )re   r   r   r  )r   r  r   r`   )rR   re  s     r6   test_choice_exceptions%TestRandomDist.test_choice_exceptions[  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	2r8   c                 b
   SS/n[        [        R                  " [        R                  " SSS95      5        [        [        R                  " [        R                  " SSS95      5        [        [        R                  " [        R                  " SSUS95      5        [        [        R                  " [        R                  " SSUS95      5        [        [        R                  " [        R                  " SS/SS95      5        [        [        R                  " S /SS9S L 5        [        R
                  " SS/5      n[        R                  " S[        S	9nX#S
'   [        [        R                  " USS9UL 5        Sn[        [        R                  " [        R                  " SUSS95      (       + 5        [        [        R                  " [        R                  " SUSS95      (       + 5        [        [        R                  " [        R                  " SUSUS95      (       + 5        [        [        R                  " [        R                  " SUSUS95      (       + 5        [        [        R                  " [        R                  " SS/USS95      (       + 5        [        [        R                  " S /USS9R                  S
:H  5        [        R
                  " SS/5      n[        R                  " S[        S	9nX#S
'   [        [        R                  " X4SS9R                  5       UL 5        Sn/ SQn[        [        R                  " SUSS9R                  U5        [        [        R                  " SUSS9R                  U5        [        [        R                  " SUSUS9R                  U5        [        [        R                  " SUSUS9R                  U5        [        [        R                  " [        R                  " S5      USS9R                  U5        [        [        R                  " S
S
SS9R                  S5        [        [        R                  " S
SS
S9R                  S5        [        [        R                  " SSS
S9R                  S5        [        [        R                  " S
S
S9R                  S5        [        [        R                  " / SS9R                  S5        [        [        R                  " SS/SS9R                  S5        [        [        [        R                  / S5        g )Nr  r   r   Tr  Fr  re   rj   r   r}   )r   rm   )r  r  r  r  r  r   r   )rm   r   rn   r   i)r   r   rF   rG   )r   r:   isscalarr   r  rp   emptyr  ndimitemr
   r   rX   rP   r   r`   )rR   r   rF   arrrS   s        r6   test_choice_return_shape'TestRandomDist.test_choice_return_shapen  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 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8r8   c                 v    [         R                  " / SQ5      n/ SQn[        [        [        R
                  XS9  g )N)*   re   r   )NNNr  )r:   rp   r   r`   r   r  )rR   rF   r   s      r6   test_choice_nan_probabilities,TestRandomDist.test_choice_nan_probabilities  s%    HHZ j&--8r8   c           
      `   [         R                  " S5      S-  nSUSS S2'   [        R                  " U R                  5      nUR                  SSUS S S2   S9n[        R                  " U R                  5      nUR                  SS[         R                  " US S S2   5      S9n[        X45        g )Nr   ro   r  re   r   rm   r  )r:   onesr   rO   rv   r  r   r	   )rR   r   r   r   r   s        r6   test_choice_p_non_contiguous+TestRandomDist.test_choice_p_non_contiguous  s    GGBK!O!$Q$  +ZZ1#A#Z/
  +AqB$8$83Q3$@A:.r8   c                     [         R                  " U R                  5      nUR                  S5      nSn[	        X#5        g )Nr   s
   Ui+Wf)r   rO   rv   bytesr
   rx  s       r6   
test_bytesTestRandomDist.test_bytes  s0      +2.V%r8   c                     S S S S S S S S S	 S
 S 4 HU  n[         R                  " U R                  5      nU" / SQ5      nUR                  U5        UnU" / SQ5      n[	        XE5        MW     g )Nc                 .    [         R                  " / 5      $ r1   r:   rp   r   s    r6   <lambda>-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rxx|r8   c                     U $ r1   r}   r  s    r6   r  r    s    qr8   c                 h    [         R                  " U 5      R                  [         R                  5      $ r1   )r:   asarrayastyperE  r  s    r6   r  r    s    rzz!}33BGG<r8   c                 h    [         R                  " U 5      R                  [         R                  5      $ r1   )r:   r  r  r   r  s    r6   r  r    s    rzz!}33BJJ?r8   c                 h    [         R                  " U 5      R                  [         R                  5      $ r1   )r:   r  r  	complex64r  s    r6   r  r    s    rzz!}33BLLAr8   c                 T    [         R                  " U 5      R                  [        5      $ r1   )r:   r  r  r  r  s    r6   r  r    s    rzz!}33F;r8   c                 4    U  Vs/ s H  oU4PM     sn$ s  snf r1   r}   r   is     r6   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 r1   )r:   r  r  s     r6   r  r    s!    rzz1*=1aq61*=>*=s   )c                 D    [         R                  " X /5      R                  $ r1   )r:   vstackTr  s    r6   r  r    s    ryy!022r8   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 )NrF   rG   )r:   r  r   rO  recarrayr  s     r6   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 )NrF   re   rG   )r:   r  r  rD  r  s     r6   r  r    sB    rzz1*=1aq61*=,/+>,/4+@+B C*=s   A
re   r   rm   rn   ro   r      r9  	   r   
r   re   r  r   r   rn   ro   r9  r  rm   )r   rO   rv   shuffler	   )rR   convr   alistr^  rZ  s         r6   test_shuffleTestRandomDist.test_shuffle  s}     , <?A;2>24CDD" $$TYY/C78EKKF9:Gv/-Dr8   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   )ro   rn   rm   re   r]   2   c                 n    [         R                  " S5      n[        [        [        R
                  U5        g )Nrm   )r:   rp   r   r_   r   r  r   s     r6   test_shuffle_invalid_objectsHTestRandomDist.test_shuffle_masked.<locals>.test_shuffle_invalid_objects  s    A)V^^Q7r8   )r:   mamasked_valuesreshaperW   rX   copyr   r  r
   sorteddatamask)rR   rF   rG   a_origb_origr  r  s          r6   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 	8r8   c                    [         R                  " U R                  5      n/ SQnUR                  U5      n/ SQn[	        X45        [         R                  " U R                  5      n[
        R                  " / SQ5      R                  nUR                  U5      n[	        U[
        R                  " U5      R                  5        [         R                  " U R                  5      nSn[        [        [         R                  U5        [         R                  " U R                  5      nSn[        [        [         R                  U5        Sn/ SQn[         R                  " U R                  5      nUR                  U5      n[	        X45        g )Nr  r  abcdg333333?r   )
r  r   r9  ro   re   rm   rn   r  r   r   )
r   rO   rv   permutationr	   r:   
atleast_2dr  r   
IndexError)	rR   r   r  r^  rZ  arr_2d	bad_x_strbad_x_floatinteger_vals	            r6   test_permutationTestRandomDist.test_permutation  s     +.'06+  +=>@@(62==#9#;#;<  +	j&"4"4i@  +j&"4"4kB0  +-6+r8   c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )Nr  r   r  r   gAKč?ghA?g ҇o>gάXf+q?gS1$?g'8zX ?rt  ru  )r   rO   rv   betar:   rp   r   rx  s       r6   	test_betaTestRandomDist.test_beta  sf      +"bv.(()+BC)+BC)+BCEF 	"&2>r8   c                 8   [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#5        [         R                  " U R                  5      nUR                  SS5      nSn[        X#5        g )NgZd;Y@gv/?r  r   %   +   r  0   .   -   )r   rO   rv   r   r:   rp   r	   rx  s       r6   test_binomialTestRandomDist.test_binomial  s      +gt&9((RHHH& ' 	6+  +gt,6+r8   c                     [         R                  " U R                  5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Nr  r  r   g+Q]uO@g+Q@gY7`ZqP@ge(fG@gvtR@gEIȋR@   ru  )r   rO   rv   	chisquarer:   rp   r   rx  s       r6   test_chisquareTestRandomDist.test_chisquare  sd      +r/((13GH13GH02FGI J 	"&2>r8   c                    [         R                  " U R                  5      n[        R                  " SS/5      nUR                  USS9n[        R                  " SS/SS//S	S
/SS//SS/SS///5      n[        X4SS9  [        R                  " SS/5      n[        [        [         R
                  U5        [         R                  " U R                  5      n[        R                  " SS/5      nUR                  U5      n[        X4S   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?rt  ru  HzG?缉ؗҜr  )	r   rO   rv   r:   rp   	dirichletr   r   r`   )rR   r   alphar^  rZ  	bad_alphas         r6   test_dirichletTestRandomDist.test_dirichlet  s     +.0DEFu62((13FG13FGI13FG13FGI13FG13FGI	J K 	"&2>HHgx01	j&"2"2I>  +.0DEFu%!&$-Dr8   c                 .   [         R                  " SS/5      n[        [        R                  " U[         R
                  " S5      5      R                  S5        [        [        R                  " U[         R
                  " S5      5      R                  S5        [        [        R                  " U[         R
                  " S5      5      R                  S5        [        [        R                  " USS/5      R                  S5        [        [        R                  " US5      R                  S5        [        [        R                  " U[         R                  " S5      5      R                  S5        [        [        [        R                  U[        S5      5        g )Nr-  r.  re   r   r   r   r   )
r:   rp   r
   r   r1  r   r   r   r_   r   r   s     r6   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?r8   c                 r    [         R                  " SS/5      n[        [        [        R
                  U5        g )Nr/  r0  )r:   rp   r   r`   r   r1  )rR   r2  s     r6   test_dirichlet_bad_alpha'TestRandomDist.test_dirichlet_bad_alpha5  s'    '8,-j&"2"2E:r8   c                 B   [         R                  " / SQ5      nUS S S2   n[        R                  " U R                  5      nUR                  USS9n[        R                  " U R                  5      nUR                  [         R                  " U5      SS9n[        XE5        g )N)r-  g      r.  r   r  r   )r:   rp   r   rO   rv   r1  r   r   )rR   rF   r2  r   r   r   s         r6   #test_dirichlet_alpha_non_contiguous2TestRandomDist.test_dirichlet_alpha_non_contiguous:  s    HHGH#A#  +]]5v]6
  +r33E:'-  /!*5r8   c                     [         R                  " U R                  5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Ng8EGr?r  r   gNU?gbI0?gVU\@g:3@gU?g"qo?rt  ru  )r   rO   rv   exponentialr:   rp   r   rx  s       r6   test_exponentialTestRandomDist.test_exponentialD  sd      +f5((02EF02EF02EFH I 	"&2>r8   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g Nr   scale       )r
   r   r@  r   r`   ra   s    r6   test_exponential_0!TestRandomDist.test_exponential_0L  s)    V''a0!4j&"4"4C@r8   c                     [         R                  " U R                  5      nU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?rt  ru  )r   rO   rv   fr:   rp   r   rx  s       r6   test_fTestRandomDist.test_fP  sf      +r2F+((02EF02EF02EFH I 	"&2>r8   c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )Nro   rm   r  r   gԏGM8@gȌ<@g	":@gv#)@gZQ?@gr[@@   ru  )r   rO   rv   gammar:   rp   r   rx  s       r6   
test_gammaTestRandomDist.test_gammaX  sf      +1af-((13GH13GH13GHJ K 	"&2>r8   c                 ~    [        [        R                  " SSS9S5        [        [        [        R                  SSS9  g )Nr   )r   rF  rG  )r
   r   rR  r   r`   ra   s    r6   test_gamma_0TestRandomDist.test_gamma_0`  s)    V\\3Q7j&,,cEr8   c                     [         R                  " U R                  5      nUR                  SSS9n[        R
                  " SS/SS/SS//5      n[        X#5        g )	N_c97ݚ?r  r   r9  r     ro   rK  )r   rO   rv   r   r:   rp   r	   rx  s       r6   test_geometricTestRandomDist.test_geometricd  sY      +z7((QFHG% & 	6+r8   c                 \   [        [        [        R                  S5        [        [        [        R                  S/S-  5        [        [        [        R                  S5        [        [        [        R                  S/S-  5        [        R
                  " 5          [        R                  " S[        5        [        [        [        R                  [        R                  5        [        [        [        R                  [        R                  /S-  5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   ignore)
r   r`   r   r   r  r  r  r   r:   r   ra   s    r6   test_geometric_exceptions(TestRandomDist.test_geometric_exceptionsl  s    j&"2"2C8j&"2"2SEBJ?j&"2"2D9j&"2"2TFRK@$$&!!(N;*f&6&6?*f&6&62F '&&s   A:D
D+c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )NrY         @r  locrF  r   gؕ?gs0 ?g#0g(xg-KD?gůp`@rt  ru  )r   rO   rv   gumbelr:   rp   r   rx  s       r6   test_gumbelTestRandomDist.test_gumbelv  sf      +
#FC((02EF02FG02FGI J 	"&2>r8   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g rD  )r
   r   re  r   r`   ra   s    r6   test_gumbel_0TestRandomDist.test_gumbel_0~  %    V]]+Q/j&--s;r8   c                 d   [         R                  " U R                  5      nUR                  SSSSS9n[        R
                  " SS/SS/SS//5      n[        X#5        UR                  SS	S
SS9n[        R
                  " / SQ5      n[        X#5        UR                  SS	SSS9n[        R
                  " / SQ5      n[        X#5        UR                  S	SS
SS9n[        R
                  " / SQ5      n[        X#5        UR                  S	SSSS9n[        R
                  " / SQ5      n[        X#5        g )Ng333333$@g      @rQ  r  r   r   r  ro   r   rm   rn   )rm   rm   rm   rm   rt  rK  )rK  rK  rK  rK  )r   r   r   r   )r   rO   rv   r   r:   rp   r	   rx  s       r6   test_hypergeometric"TestRandomDist.test_hypergeometric  s!     +##D#r#?((RHHF$ % 	6+ ##Aq!!#4((<(6+##B2A#6((+,6+ ##Aq!!#4((<(6+##Ar2A#6((<(6+r8   c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )NrY  rb  r  rc  g bO?g¸?gpJm	@g{K*t	@g:^w-gY~o?rt  ru  )r   rO   rv   laplacer:   rp   r   rx  s       r6   test_laplaceTestRandomDist.test_laplace  sf      +3VD((02EF02EF13FGI J 	"&2>r8   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g rD  )r
   r   rp  r   r`   ra   s    r6   test_laplace_0TestRandomDist.test_laplace_0  s%    V^^!,a0j&..<r8   c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )NrY  rb  r  rc  g#K-z?gJ?g92@gر[@g#+^˿g-@rt  ru  )r   rO   rv   logisticr:   rp   r   rx  s       r6   test_logisticTestRandomDist.test_logistic  sf      +*CfE((02DE02EF13FGI J 	"&2>r8   c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )NrY  rb  r  )meansigmar   gɁ0@go,+4FB@g)ʭ6@g5?gnxNnP@g)U@r(  ru  )r   rO   rv   	lognormalr:   rp   r   rx  s       r6   test_lognormalTestRandomDist.test_lognormal  sf      +JcG((13GH13FG13GHJ K 	"&2>r8   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g )Nr   )r|  re   rG  )r
   r   r}  r   r`   ra   s    r6   test_lognormal_0TestRandomDist.test_lognormal_0  s)    V%%A.2j&"2"2#>r8   c                     [         R                  " U R                  5      nUR                  SSS9n[        R
                  " SS/SS/SS//5      n[        X#5        g )Ngƀ@?r  )r   r   r   r   rZ  rm   )r   rO   rv   r   r:   rp   r	   rx  s       r6   test_logseriesTestRandomDist.test_logseries  sY      +&9((QFGF$ % 	6+r8   c                 <    [         R                  " S5      S:X  d   eg )Nr   re   )r   r   ra   s    r6   test_logseries_zero"TestRandomDist.test_logseries_zero  s    "a'''r8   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)Nr^  invalidr   r   )r:   errstater   r   r`   r   r   rp   )rR   r  s     r6   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      nUR                  SS/S-  SS9n[        R
                  " / SQ/ SQ// SQ/ S	Q// S
Q/ SQ//5      n[        X#5        g )Nr   UUUUUU?r   r  r   )rn   rm   ro   rn   r   r   )ro   r   r9  r   r   re   )rm   rn   rm   r   r   rn   )r   re   rn   rm   r   rn   )rn   rn   r   ro   r   rm   )rn   rm   rn   r   rm   rn   )r   rO   rv   r   r:   rp   r	   rx  s       r6   test_multinomialTestRandomDist.test_multinomial  sn      +fX\?((//1//1//1	2 3 	6+r8   c                    [         R                  " U R                  5      nSnSS/SS//nSnUR                  X#U5      n[        R
                  " SS/SS//S	S
/SS//SS/SS///5      n[        XVSS9  UR                  X#5      n[        R
                  " SS/5      n[        XVSS9  SS/nSS/SS//n[        R                  " [        UR                  X#5        [        UR                  X#SS9  [        [        UR                  X#SS9  [        R
                  " SS/SS//[        R                  S9n[        R                  " 5          [        R                   " S[        5        UR                  X#5        S S S 5        [        R"                  " S5      n[        R$                  " S5      n[        [        UR                  X#SS9  [        [        UR                  [        R"                  " S5      U5        [        [        UR                  U[        R&                  " S5      5        [        [        UR                  U[        R$                  " S5      5        g ! , (       d  f       N= f)N)rY  r   re   r   r  g4Vj?gy'@gI1?gSB#@ge<@g 4W(@g6R¿?g9r
v"@gс?g{#@g4xg"f"@rt  ru  gN}O6?gYMW"@r   r^  )check_validraiser  rj   r  other)r   re   re   rm   )r   rO   rv   multivariate_normalr:   rp   r   r   r   r   r   r   r`   r   r  r  r  r   eyer  )rR   r   r{  covr   r^  rZ  mus           r6   test_multivariate_normal'TestRandomDist.test_multivariate_normal  s.     +1v1v((D9((/1BC/1BCE/1CD/1BCE/1BC02CDF	G H 	"&2> ((3((-/?@A!&2> 1v1v1v^S%<%<dH 	322D'/	1 	j#"9"94")	+ hhC3(+2::>$$&!!'>:##D. ' XXa[ffQij#"9"94")	+j#"9"9hhy)3	0j#"9"9"((6*	,j#"9"9"&&)	% '&s   -I
I c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#5        g )Nr   g|Pk?r  )nr   r   iP  iI  i|  ic  i  i  )r   rO   rv   r   r:   rp   r	   rx  s       r6   r   %TestRandomDist.test_negative_binomial  s^      +&&V&D((S#J #J #J( ) 	6+r8   c                 X   [         R                  " 5          [         R                  " S[        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  r   r   r`   r   r   r:   r   ra   s    r6   !test_negative_binomial_exceptions0TestRandomDist.test_negative_binomial_exceptions  sc    $$&!!(N;*f&>&>RVVL*f&>&>66(R-) '&&s   A<B
B)c                    [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  UR                  SSSS9n[        R
                  " SS/SS/SS//5      n[        X#S
S9  [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/SS//5      n[        X#S
S9  g )Nro   r  )dfnoncr   gG7@g! ܴ*@g1}z9?@g+驸0@g26E_r#@gI!1@rQ  ru  r   r   g?gTD?g?T?g+qnl?g~|D?g밬?r   g{01#@gprs'@g~;$@g"dI@g*@g}',@)r   rO   rv   noncentral_chisquarer:   rp   r   rx  s       r6   test_noncentral_chisquare(TestRandomDist.test_noncentral_chisquare  s#     +))QQV)D((13GH13GH02FGI J 	"&2>))Rbv)F((03FG03FG.1DEG H 	"&2>  +))QQV)D((.0BC/1BC/1CDF G 	"&2>r8   c                     [         R                  " U R                  5      nUR                  SSSSS9n[        R
                  " SS/SS	/S
S//5      n[        X#SS9  g )Nro   r   re   r  )dfnumdfdenr  r   g^~?g/+c?g".@g@g7?gE?rQ  ru  )r   rO   rv   noncentral_fr:   rp   r   rx  s       r6   test_noncentral_f TestRandomDist.test_noncentral_f4  sp      +!!*0 " 2((02EF02EF02DEG H 	"&2>r8   c                     [         R                  " U R                  5        [         R                  " SS[        R                  S9n[        R
                  " U5      (       d   eg )Nro   r   )r  r  r  )r   rv   r  r:   r   isnan)rR   r^  s     r6   test_noncentral_f_nan$TestRandomDist.test_noncentral_f_nan=  s?    DII$$1ABFFCxxr8   c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )NrY  rb  r  rc  g&&n@gOG_@g~w@gtw]տgm&5@g$>@rt  ru  )r   rO   rv   normalr:   rp   r   rx  s       r6   test_normalTestRandomDist.test_normalB  sf      +
#FC((02EF.0DE02EFH I 	"&2>r8   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g rD  )r
   r   r  r   r`   ra   s    r6   test_normal_0TestRandomDist.test_normal_0J  rk  r8   c                     [         R                  " U R                  5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        R                  R                  X#S
S9  g )NrY  r  rF   r   gWI@gԨy@gy]0Ag1~\Aga@gY
7A   )nulp)r   rO   rv   paretor:   rp   testingassert_array_almost_equal_nulprx  s       r6   test_paretoTestRandomDist.test_paretoN  sq      +jv6(()+BC)+BC)+BCEF 	

11&1Kr8   c                     [         R                  " U R                  5      nUR                  SSS9n[        R
                  " SS/SS/SS//5      n[        X#5        g )NrY  r  )lamr   r   re   )r   rO   rv   r   r:   rp   r	   rx  s       r6   test_poissonTestRandomDist.test_poisson]  sY      +&9((QFFF$ % 	6+r8   c                    [         R                  " S5      R                  nSn[        [        [
        R                  U5        [        [        [
        R                  U/S-  5        [        [        [
        R                  U5        [        [        [
        R                  U/S-  5        [        R                  " 5          [        R                  " S[        5        [        [        [
        R                  [         R                  5        [        [        [
        R                  [         R                  /S-  5        S S S 5        g ! , (       d  f       g = f)NrV  r]   r   r^  )r:   r$  r&  r   r`   r   r   r  r  r  r   r   )rR   lambiglamnegs      r6   test_poisson_exceptions&TestRandomDist.test_poisson_exceptionse  s    #""j&..&9j&..6(R-@j&..&9j&..6(R-@$$&!!(N;*fnnbff=*fnnrvvhmD '&&s   <A:D??
Ec                     [         R                  " U R                  5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )NrY  r  r  g;'?gܴw*?g5?gFG?g D]?g$`?rt  ru  )r   rO   rv   powerr:   rp   r   rx  s       r6   
test_powerTestRandomDist.test_powerq  sd      +Zf5((02EF02EF02EFH I 	"&2>r8   c                     [         R                  " U R                  5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Nr   r  )rF  r   g"u+@gN$MB*@g7v8B4@g55@ge&@g~ӣZ1@rQ  ru  )r   rO   rv   rayleighr:   rp   r   rx  s       r6   test_rayleighTestRandomDist.test_rayleighy  sd      +BV4((02DE13GH13GHJ K 	"&2>r8   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g rD  )r
   r   r  r   r`   ra   s    r6   test_rayleigh_0TestRandomDist.test_rayleigh_0  s%    V__1-q1j&//=r8   c                     [         R                  " U R                  5      nU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?rt  ru  )r   rO   rv   standard_cauchyr:   rp   r   rx  s       r6   test_standard_cauchy#TestRandomDist.test_standard_cauchy  se      +$$&$1((02FG02FG13FGI J 	"&2>r8   c                     [         R                  " U R                  5      nU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?rt  ru  )r   rO   rv   standard_exponentialr:   rp   r   rx  s       r6   test_standard_exponential(TestRandomDist.test_standard_exponential  se      +))v)6((02EF/1DE/1DEG H 	"&2>r8   c                     [         R                  " U R                  5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Nrm   r  )r   r   g)@gľ@gd],q@gPk{@g9B#1@gv @rQ  ru  )r   rO   rv   standard_gammar:   rp   r   rx  s       r6   test_standard_gamma"TestRandomDist.test_standard_gamma  sg      +##!&#9((02EF02EF02CDF G 	"&2>r8   c                 z    [        [        R                  " SS9S5        [        [        [        R                  SS9  g )Nr   )r   rG  )r
   r   r  r   r`   ra   s    r6   test_standard_gamma_0$TestRandomDist.test_standard_gamma_0  s)    V**3Q7j&"7"7sCr8   c                     [         R                  " U R                  5      nU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  rt  ru  )r   rO   rv   r   r:   rp   r   rx  s       r6   test_standard_normal#TestRandomDist.test_standard_normal  se      +$$&$1((02EF.0CD.0CDF G 	"&2>r8   c                     [         R                  " U R                  5      nUR                  5       n[        R
                  " S5      n[        X#SS9  g )Nr  rt  ru  r  rx  s       r6   test_randn_singleton#TestRandomDist.test_randn_singleton  s:      +((./!&2>r8   c                     [         R                  " U R                  5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Nr   r  )r  r   g\VH?ghU%gH$M?gLgVqdzǿg㖀?rt  ru  )r   rO   rv   
standard_tr:   rp   r   rx  s       r6   test_standard_tTestRandomDist.test_standard_t  sd      +2F3((02FG02FG13FGI J 	"&2>r8   c                     [         R                  " U R                  5      nUR                  SSSSS9n[        R
                  " SS/SS	/S
S//5      n[        X#SS9  g )Ng{Gz@g(\u$@gףp=
W4@r  )leftmoderightr   g:}\)@ghرTj(@gǨL30@g6ڜA0@g6sh&@g<,@rQ  ru  )r   rO   rv   
triangularr:   rp   r   rx  s       r6   test_triangularTestRandomDist.test_triangular  sn      +TU(.   0((13FG13GH13FGI J 	"&2>r8   c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )NGz?gGz%@r  )lowhighr   g>#H@gu@g#@g}d]#@gN@gw)* @rt  ru  )r   rO   rv   uniformr:   rp   r   rx  s       r6   test_uniformTestRandomDist.test_uniform  sf      +E?((02EF02EF02EFH I 	"&2>r8   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   re   g ؅W4vC)r  r  )
r:   finfor%  r&  r   r  r   OverflowErrorinf	nextafter)rR   fminfmaxfuncs       r6   test_uniform_range_bounds(TestRandomDist.test_uniform_range_bounds  s    xx $$xx $$~~mTBFF7A6mT1bff5mT6mTRVVG9qc:mTA39
 	2<<a0td{Cr8   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r1   r_   ra   s    r6   	__float__QTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__      r8   r}   N)r~   r   r   r   r  r   r}   r8   r6   ThrowingFloatr         r8   r  r  c                       \ rS rSrS rSrg)ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegeri  c                     [         er1   r  ra   s    r6   __int__QTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__  r  r8   r}   N)r~   r   r   r   r  r   r}   r8   r6   ThrowingIntegerr    r  r8   r  re   )	r:   ndarrayrp   rO  r   r_   r   r  r   )rR   r  throwing_floatr  throwing_ints        r6   !test_scalar_exception_propagation0TestRandomDist.test_scalar_exception_propagation  s    	 BJJ 	  #++M:i$	&	 bjj 	  xx{''8i!6!6aKr8   c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )Nr  p=
ף?r  r  kappar   gLZI@g'N"@gkr?gk=m@gډ?g^=\?rt  ru  r   rO   rv   vonmisesr:   rp   r   rx  s       r6   test_vonmisesTestRandomDist.test_vonmises  sf      +T?((02EF02EF02EFH I 	"&2>r8   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   rv   r$  r   r:   isfiniter   rR   rs     r6   test_vonmises_small"TestRandomDist.test_vonmises_small  s=    DIIOOre<A""$%r8   c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " / SQ5      n[        X#SS9  g )Nr   g    cArm   r!  )g A^>?g @R7?g x.r9  ru  r#  rx  s       r6   test_vonmises_large"TestRandomDist.test_vonmises_large  sI      +3Q7(( 4 5 	"&1=r8   c                     [         R                  " U R                  5        [         R                  " S[        R                  S9n[        [        R                  " U5      5        g )Nr   )r  r"  )r   rv   r$  r:   r   r   r  r*  s     r6   test_vonmises_nan TestRandomDist.test_vonmises_nan  s6    DIIOOr0r8   c                     [         R                  " U R                  5      nUR                  SSSS9n[        R
                  " SS/SS/S	S
//5      n[        X#SS9  g )Nr  r   r  )r{  rF  r   gZ@g-g@g8
m?gVP"?g`V?gx^&3?rQ  ru  )r   rO   rv   waldr:   rp   r   rx  s       r6   	test_waldTestRandomDist.test_wald
  sf      +t4f=((02EF02EF02EFH I 	"&2>r8   c                     [         R                  " U R                  5      nUR                  SSS9n[        R
                  " SS/SS/SS	//5      n[        X#S
S9  g )Nr  r  r  g@6?g]A?g(1ڥR?gU?g2_u?g^}-Q?rt  ru  )r   rO   rv   weibullr:   rp   r   rx  s       r6   test_weibullTestRandomDist.test_weibull  sd      +t&1((02EF02EF02EFH I 	"&2>r8   c                     [         R                  " U R                  5        [        [         R                  " SSS9[        R
                  " S5      5        [        [        [         R                  SS9  g )Nr   rK  r  rG  )rF   )r   rv   r
   r9  r:   r   r   r`   ra   s    r6   test_weibull_0TestRandomDist.test_weibull_0  s?    DIIV^^ab1288B<@j&..C8r8   c                     [         R                  " U R                  5      nUR                  SSS9n[        R
                  " SS/SS/SS//5      n[        X#5        g )	Nr  r  r  B      re   rm   r(  )r   rO   rv   r   r:   rp   r	   rx  s       r6   	test_zipfTestRandomDist.test_zipf  sY      +Dv.((RHFG% & 	6+r8   r}   N)]r~   r   r   r   rv   ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r*  r4  r7  r:  r=  rA  rH  rN  rS  rV  r[  r_  rf  ri  rm  rq  rt  rx  r~  r  r  r  r   ri  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%  r,  r/  r2  r6  r:  r=  rB  r   r}   r8   r6   rl  rl    s    D??
E,2,&&$@
E,,,,,2&,9\9
/&068$,6?,?E&
@;
6?A??F,G?<,4?=???,( [[Wr||B';R&LM	> N	>	,0%d,)?*? 
?<L,
E??>???D?????D L,?&>
??9
,r8   rl  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#g")#TestBroadcasti(  [c                 :   S/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        XSSS9  [        R                  " U R                  5      nUR                  XS-  5      n[        XSSS9  g )Nr   re   gl?g_x?g=*BN?rm   rQ  ru  )r:   rp   r   rO   rv   r  r   )rR   r  r  rZ  r   r^  s         r6   r  TestBroadcast.test_uniform-  s    cs(( 1 2   +S1Wd+!&2>  +S(+!&2>r8   c                    S/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        XdSS9  [        [        UR
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        XdSS9  [        [        UR
                  XS-  5        g )Nr   re   r]   )g-r@gYl@g-`w?rm   rQ  ru  )	r:   rp   r   rO   rv   r  r   r   r`   rR   rd  rF  	bad_scalerZ  r   r^  s          r6   r  TestBroadcast.test_normal<  s    cD	(( 0 1   +C!GU+!&2>j#**cAgyA  +C+!&2>j#**cq=Ar8   c                 :   S/nS/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        XuSS9  [        [        UR
                  US-  U5        [        [        UR
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        XuSS9  [        [        UR
                  X2S-  5        [        [        UR
                  XS-  5        g )	Nre   r   r]   rf   )gnQVf?gVKB?gv`k?rm   rQ  ru  )	r:   rp   r   rO   rv   r  r   r   r`   )rR   rF   rG   bad_abad_brZ  r   r^  s           r6   r  TestBroadcast.test_betaN  s    CC(( 1 2   +!a%#!&2>j#((EAIq9j#((AE59  +!U#!&2>j#((Eq59j#((Aqy9r8   c                     S/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        g Nre   r]   )g.UgZ?gi Prq?gEK?rm   rQ  ru  )	r:   rp   r   rO   rv   r@  r   r   r`   rR   rF  rM  rZ  r   r^  s         r6   rA  TestBroadcast.test_exponentialc  si    D	(( 1 2   ++!&2>j#//9q=Ar8   c                     S/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        g rT  )	r:   rp   r   rO   rv   r  r   r   r`   )rR   r   	bad_shaperZ  r   r^  s         r6   r  !TestBroadcast.test_standard_gammao  sm    D	(( 1 2   +##EAI.!&2>j#"4"4i!mDr8   c                 :   S/nS/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        XuSS9  [        [        UR
                  US-  U5        [        [        UR
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        XuSS9  [        [        UR
                  X2S-  5        [        [        UR
                  XS-  5        g )	Nre   r   r]   rf   )g.UgZ?gi Prq?gEK?rm   rQ  ru  )	r:   rp   r   rO   rv   rR  r   r   r`   )rR   r   rF  rX  rM  rZ  r   r^  s           r6   rS  TestBroadcast.test_gamma{  s    D	D	(( 0 1   +519e,!&2>j#))Y]EBj#))UQY	B  +5!),!&2>j#))Y	Bj#))UMBr8   c                 :   S/nS/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        XuSS9  [        [        UR
                  US-  U5        [        [        UR
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        XuSS9  [        [        UR
                  X2S-  5        [        [        UR
                  XS-  5        g )	Nre   r   r]   rf   )gbyʜ?go?gT7@rm   rQ  ru  )	r:   rp   r   rO   rv   rM  r   r   r`   )rR   r  r  	bad_dfnum	bad_dfdenrZ  r   r^  s           r6   rN  TestBroadcast.test_f  s    D	D	(( 0 1   +uqy%(!&2>j#%%Q>j#%%I>  +uai(!&2>j#%%AI>j#%%A>r8   c           
         S/nS/nS/nS/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  X#5      n	[        XSS	9  [         R                  " [         R                  " UR                  X[         R                  /S-  5      5      5      (       d   e[        [        UR
                  US-  X#5        [        [        UR
                  US-  XS5        [        [        UR
                  US-  X&5        [        R                  " U R                  5      nUR                  XS-  U5      n	[        XSS	9  [        [        UR
                  XBS-  U5        [        [        UR
                  XS-  U5        [        [        UR
                  XS-  U5        [        R                  " U R                  5      nUR                  XUS-  5      n	[        XSS	9  [        [        UR
                  XBUS-  5        [        [        UR
                  XUS-  5        [        [        UR
                  XUS-  5        g )
Nr   rm   rn   r   r]   rf   )gr^G"@g/*@gц!@rQ  ru  )r:   rp   r   rO   rv   r  r   r   r  r   r   r`   )
rR   r  r  r  r]  r^  bad_noncrZ  r   r^  s
             r6   r  TestBroadcast.test_noncentral_f  s   sC	D	4(( 0 1   +!!%!)U9!&2>vvbhhs//rvvhlKLMMMMj#"2"2IM5Oj#"2"2EAIyOj#"2"2EAIuO  +!!%D9!&2>j#"2"2Iqy$Oj#"2"2Eq=$Oj#"2"2E19hO  +!!%q9!&2>j#"2"2IdQhOj#"2"2EdQhOj#"2"2E(Q,Or8   c                     [         R                  " U R                  5      n[        R                  " SS/5      nUR                  SSSSS9n[        X2SS9  g )Ngaz@gn4M;%?r   r   r   rQ  ru  )r   rO   rv   r:   rp   r  r   )rR   r   rZ  r^  s       r6   test_noncentral_f_small_df(TestBroadcast.test_noncentral_f_small_df  sN      +((-/@AB!!#sAA!6!&2>r8   c                     S/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        g )Nre   r]   )g~}N??g$F?g'rS?rm   rQ  ru  )	r:   rp   r   rO   rv   r)  r   r   r`   rR   r  bad_dfrZ  r   r^  s         r6   r*  TestBroadcast.test_chisquare  si    S(( 0 1   +rAv&!&2>j#--!<r8   c                 :   S/nS/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        XuSS9  [        [        UR
                  US-  U5        [        [        UR
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        XuSS9  [        [        UR
                  X2S-  5        [        [        UR
                  XS-  5        g )	Nre   r   r]   rf   )g w "@g2WR@gRY@rm   rQ  ru  )	r:   rp   r   rO   rv   r  r   r   r`   )rR   r  r  rh  ra  rZ  r   r^  s           r6   r  'TestBroadcast.test_noncentral_chisquare  s    Ss4(( 0 1   +))"q&$7!&2>j#":":FQJMj#":":BFHM  +))"Qh7!&2>j#":":F1HMj#":":B1Mr8   c                 <   S/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        [        [        [        R
                  US-  5        g )Nre   r]   )gT@g~Fl@gƚtp?rm   rQ  ru  )	r:   rp   r   rO   rv   r  r   r   r`   rg  s         r6   r  TestBroadcast.test_standard_t  s    S(( 0 1   +Q'!&2>j#..&1*=j&"3"3VaZ@r8   c                    S/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        XdSS9  [        [        UR
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        XdSS9  [        [        UR
                  XS-  5        g )Nr   re   r]   )gW!@gOBg}?rm   rQ  ru  )	r:   rp   r   rO   rv   r$  r   r   r`   )rR   r  r"  	bad_kapparZ  r   r^  s          r6   r%  TestBroadcast.test_vonmises  s    SD	(( 1 2   +b1fe,!&2>j#,,Q	B  +b!),!&2>j#,,MBr8   c                 <   S/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        [        [        [        R
                  US-  5        g )Nre   r]   )g&8??geFX?gՋː?rm   rQ  ru  )	r:   rp   r   rO   rv   r  r   r   r`   rR   rF   rP  rZ  r   r^  s         r6   r  TestBroadcast.test_pareto  s}    C(( 0 1   +AE"!&2>j#**eai8j&--;r8   c                 <   S/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        [        [        [        R
                  US-  5        g rT  )	r:   rp   r   rO   rv   r9  r   r   r`   rr  s         r6   r:  TestBroadcast.test_weibull  s}    C(( 1 2   +QU#!&2>j#++uqy9j&..%!)<r8   c                 <   S/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        [        [        [        R
                  US-  5        g )Nre   r]   rI  rm   rQ  ru  )	r:   rp   r   rO   rv   r  r   r   r`   rr  s         r6   r  TestBroadcast.test_power'  s}    C(( 1 2   +1q5!!&2>j#))UQY7j&,,	:r8   c                    S/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        XdSS9  [        [        UR
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        XdSS9  [        [        UR
                  XS-  5        g )Nr   re   r]   )g:BKc?g3k?g~q?rm   rQ  ru  )	r:   rp   r   rO   rv   rp  r   r   r`   rL  s          r6   rq  TestBroadcast.test_laplace4  s    cD	(( 2 3   +S1We,!&2>j#++sQw	B  +S!),!&2>j#++sMBr8   c                    S/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        XdSS9  [        [        UR
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        XdSS9  [        [        UR
                  XS-  5        g )Nr   re   r]   )g'Zy?gdSO=?g3L1?rm   rQ  ru  )	r:   rp   r   rO   rv   re  r   r   r`   rL  s          r6   rf  TestBroadcast.test_gumbelF  s    cD	(( 1 2   +C!GU+!&2>j#**cAgyA  +C+!&2>j#**cq=Ar8   c                    S/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        XdSS9  [        [        UR
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        XdSS9  [        [        UR
                  XS-  5        [        UR                  SS	5      S5        g )
Nr   re   r]   )gy?gJR?g
~&?rm   rQ  ru  r  r   )
r:   rp   r   rO   rv   rw  r   r   r`   r
   rL  s          r6   rx  TestBroadcast.test_logisticX  s    cD	(( 2 3   +cAgu-!&2>j#,,aC  +c19-!&2>j#,,]CS\\#s+S1r8   c                 D   S/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        XdSS9  [        [        UR
                  US-  U5        [        [        [        R
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        XdSS9  [        [        UR
                  XS-  5        [        [        [        R
                  XS-  5        g )Nr   re   r]   )gH"@gܮ @gvv	:@rm   rQ  ru  )	r:   rp   r   rO   rv   r}  r   r   r`   )rR   r{  r|  	bad_sigmarZ  r   r^  s          r6   r~  TestBroadcast.test_lognormalk  s    sD	(( 0 1   +tax/!&2>j#--9Ej&"2"2D1HiH  +tQY/!&2>j#--1}Ej&"2"2Da-Hr8   c                     S/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  5      n[        XSSS9  [        [        UR
                  US-  5        g )Nre   r]   )gݱlo?g/ӂ?gz~R?rm   rQ  ru  )	r:   rp   r   rO   rv   r  r   r   r`   rU  s         r6   r  TestBroadcast.test_rayleigh  si    D	(( 0 1   +eai(!&2>j#,,	A>r8   c                 6   S/nS/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        XuSS9  [        [        UR
                  US-  U5        [        [        UR
                  US-  U5        [        [        [        R
                  US-  U5        [        [        [        R
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        XuSS9  [        [        UR
                  X2S-  5        [        [        UR
                  XS-  5        [        [        UR
                  S	S5        [        [        UR
                  SS	5        g )
Nr   re   r   rf   )g@m e?g`I߿?g|2?rm   rQ  ru  r   )	r:   rp   r   rO   rv   r5  r   r   r`   )rR   r{  rF  bad_meanrM  rZ  r   r^  s           r6   r6  TestBroadcast.test_wald  s9   u3D	(( 0 1   +$(E*!&2>j#((HqL%@j#((D1Hi@j&++x!|UCj&++taxC  +$	*!&2>j#((Hai@j#((Da-@j#((C3j#((C5r8   c                    S/nS/nS/nS/nS/nUS-  u  pg[         R                  " / SQ5      n[        R                  " U R                  5      n	U	R                  US-  X25      n
[        XSS9  [        [        U	R
                  US-  X25        [        [        U	R
                  US-  XR5        [        [        U	R
                  US-  UU5        [        R                  " U R                  5      n	U	R                  XS-  U5      n
[        XSS9  [        [        U	R
                  XCS-  U5        [        [        U	R
                  XS-  U5        [        [        U	R
                  XgS-  U5        [        R                  " U R                  5      n	U	R                  XUS-  5      n
[        XSS9  [        [        U	R
                  XCUS-  5        [        [        U	R
                  XUS-  5        [        [        U	R
                  XgUS-  5        [        [        U	R
                  SS	S
5        [        [        U	R
                  SSS
5        [        [        U	R
                  SSS5        g )Nre   rm   r   rn   )g,P;bD @g%G @g,~S @rQ  ru  r   r   g      4@g      9@)	r:   rp   r   rO   rv   r  r   r   r`   )rR   r  r  r  bad_left_onebad_mode_onebad_left_twobad_mode_tworZ  r   r^  s              r6   r  TestBroadcast.test_triangular  s   ssss%*QY"(( 0 1   +q$6!&2>j#..,2BDPj#..$(LPj#..,2BL	   +Qh6!&2>j#..,q%Pj#..$q8H%Pj#..,q@P	   +EAI6!&2>j#..,eaiPj#..$eaiPj#..,ai	! 	j#..#r3?j#..#sC@j#..#sC@r8   c                    S/nS/nS/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        X5        [        [        UR
                  US-  U5        [        [        UR
                  US-  U5        [        [        UR
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        X5        [        [        UR
                  X2S-  5        [        [        UR
                  XS-  5        [        [        UR
                  XS-  5        g )Nre   r   r]         ?re   re   re   rm   )	r:   rp   r   rO   rv   r   r	   r   r`   	rR   r  r   bad_n	bad_p_one	bad_p_tworZ  r   r^  s	            r6   r%  TestBroadcast.test_binomial  s   CED	E	((9%  +a!eQ'6+j#,,	1=j#,,AyAj#,,AyA  +aQ'6+j#,,1u=j#,,q=Aj#,,q=Ar8   c                    S/nS/nS/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  U5      n[        X5        [        [        UR
                  US-  U5        [        [        UR
                  US-  U5        [        [        UR
                  US-  U5        [        R                  " U R                  5      nUR                  XS-  5      n[        X5        [        [        UR
                  X2S-  5        [        [        UR
                  XS-  5        [        [        UR
                  XS-  5        g )Nre   r   r]   r  )re   r   re   rm   )	r:   rp   r   rO   rv   r   r	   r   r`   r  s	            r6   r   $TestBroadcast.test_negative_binomial  s   CED	E	((9%  +&&q1ua06+j#"7"7AFj#"7"7Q	Jj#"7"7Q	J  +&&qa%06+j#"7"7AFj#"7"7MJj#"7"7MJr8   c                    [         R                  " 5       R                  nS/nS/nUS-  /n[        R                  " / SQ5      n[         R                  " U R
                  5      nUR                  US-  5      n[        Xu5        [        [        UR                  US-  5        [        [        UR                  US-  5        g )Nre   r]   r   )re   re   r   rm   )
r   rO   _poisson_lam_maxr:   rp   rv   r   r	   r   r`   )rR   max_lamr  bad_lam_onebad_lam_tworZ  r   r^  s           r6   r  TestBroadcast.test_poisson  s    $$&77cd{m((9%  +S1W%6+j#++{Q?j#++{Q?r8   c                     S/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  5      n[        XS5        [        [        UR
                  US-  5        [         R                  " SS9   [        [        UR
                  [         R                  5        [        [        UR
                  SS[         R                  /5        S S S 5        g ! , (       d  f       g = f)Nr   r   )r   r   re   rm   r^  r  )r:   rp   r   rO   rv   r   r	   r   r`   r  r   rr  s         r6   rB  TestBroadcast.test_zipf  s    C((9%  +!a%6+j#((EAI6[[**chh7*chhArvv? +**s   AC//
C=c                 <   S/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  5      n[        Xd5        [        [        UR
                  US-  5        [        [        UR
                  US-  5        g )Nr   r]   r  r   rm   )	r:   rp   r   rO   rv   r   r	   r   r`   rR   r   r  r  rZ  r   r^  s          r6   r[  TestBroadcast.test_geometric  s{    ED	E	((9%  +q1u%6+j#--Q?j#--Q?r8   c                    S/nS/nS/nS/nS/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      n	U	R                  US-  X#5      n
[        X5        [        [        U	R
                  US-  X#5        [        [        U	R
                  US-  XS5        [        [        U	R
                  US-  X&5        [        [        U	R
                  US-  X'5        [        R                  " U R                  5      n	U	R                  XS-  U5      n
[        X5        [        [        U	R
                  XBS-  U5        [        [        U	R
                  XS-  U5        [        [        U	R
                  XS-  U5        [        [        U	R
                  XS-  U5        [        R                  " U R                  5      n	U	R                  XUS-  5      n
[        X5        [        [        U	R
                  XBUS-  5        [        [        U	R
                  XUS-  5        [        [        U	R
                  XUS-  5        [        [        U	R
                  XUS-  5        [        [        U	R
                  SS	S
5        [        [        U	R
                  S	SS
5        [        [        U	R
                  S	S	S5        [        [        U	R
                  S	S	S5        g )Nre   r   r]   rf   r   rn   r  rm   r   r      )	r:   rp   r   rO   rv   r   r	   r   r`   )rR   ngoodnbadnsample	bad_ngoodbad_nbadbad_nsample_onebad_nsample_tworZ  r   r^  s              r6   rm  !TestBroadcast.test_hypergeometric  sU   s#D	4##((9%  +##EAIt=6+j#"4"4i!mTSj#"4"4eaiSj#"4"4eaiWj#"4"4eaiW  +##E!8W=6+j#"4"4i7Sj#"4"4e\7Sj#"4"4eAXWj#"4"4eAXW  +##E1=6+j#"4"4iwQR{Sj#"4"4ewQR{Sj#"4"4e?UVCVWj#"4"4e?UVCVWj#"4"4b"bAj#"4"4b"bAj#"4"4b"a@j#"4"4b"bAr8   c                 <   S/nS/nS/n[         R                  " / SQ5      n[        R                  " U R                  5      nUR                  US-  5      n[        Xd5        [        [        UR
                  US-  5        [        [        UR
                  US-  5        g )Nr   r   r]   r  rm   )	r:   rp   r   rO   rv   r   r	   r   r`   r  s          r6   r  TestBroadcast.test_logseriesE  s{    EC	D	((9%  +q1u%6+j#--Q?j#--Q?r8   r}   N)$r~   r   r   r   rv   r  r  r  rA  r  rS  rN  r  rd  r*  r  r  r%  r  r:  r  rq  rf  rx  r~  r  r6  r  r%  r   r  rB  r[  rm  r  r   r}   r8   r6   rF  rF  (  s     D?B$:*
B
EC*?* PD?
=N*AC$<=;C$B$2&I(
?62%ANB,K,@@
@%BN
@r8   rF  zcan't start threadrW  c                   <    \ rS rSr\" S5      rS rS rS rS r	Sr
g)	
TestThreadiR  rn   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argsrn   win32)	threadingr  r:   r  lenseedszipr   rO   startjoinintprk   itemsizerJ  platformr   r	   )
rR   functionszr  out1out2rS   otr   s
             r6   check_functionTestThread.check_functionW  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  rA   outs     r6   
gen_random*TestThread.test_normal.<locals>.gen_randomn  s    |||/CHr8   )r  r  r  rR   r  s     r6   r  TestThread.test_normalm  s    	0 	J84r8   c                 *    S nU R                  USS9  g )Nc                 P    U R                  [        R                  " S5      S9US'   g )Nr   rM   rE  .)r@  r:   r  r  s     r6   r  'TestThread.test_exp.<locals>.gen_randomt  s"    ((rww{/C(DCHr8   r  r  r  r  s     r6   test_expTestThread.test_exps  s    	E 	J;7r8   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     r6   r  /TestThread.test_multinomial.<locals>.gen_randomz  s#    ((fX\(FCHr8   )r  r   r  r  r  s     r6   r  TestThread.test_multinomialy  s    	G 	J:6r8   r}   N)r~   r   r   r   rW   r  r  r  r  r  r   r}   r8   r6   r  r  R  s!     !HE+,587r8   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestSingleEltArrayInputi  c                     [         R                  " S/5      [         R                  " S/5      [         R                  " S/5      S4$ )Nr   rm   rn   r  r  ra   s    r6   _create_arrays&TestSingleEltArrayInput._create_arrays  s/    xx}bhhsmRXXqc]D@@r8   c                 l   U R                  5       u  n  p#[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  4n[        R                  [        R                  4nU HD  nXe;   a  U" [        R                  " S/5      5      nOU" U5      n[!        UR"                  U5        MF     g r   )r  r   r@  r  r)  r  r  r9  r  r  r   r   r   r   r:   rp   r
   r   )rR   argOner   tgtShapefuncs	probfuncsr  r  s           r6   test_one_arg_funcs*TestSingleEltArrayInput.test_one_arg_funcs  s    !%!4!4!61##V%:%:!!6#4#4v!!6#3#35 %%v'7'78	D 288SE?+ 6lH- r8   c                 $   U R                  5       u  pp4[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  4n[        R                  [        R                  4nU H  nXv;   a  [         R"                  " S/5      nOUnU" X5      n[%        UR&                  U5        U" US   U5      n[%        UR&                  U5        U" XS   5      n[%        UR&                  U5        M     g )Nr   r   )r  r   r  r  r  rR  rM  r  r$  rp  re  rw  r}  r5  r   r   r:   rp   r
   r   )	rR   r  argTwor   r  r  r  r  r  s	            r6   test_two_arg_funcs*TestSingleEltArrayInput.test_two_arg_funcs  s   &*&9&9&;#fll666&..!!6;;&":":< __f&>&>?	D 3%  v&CH-vay&)CH-vay)CH- r8   c                 `   U R                  5       u  pp4[        R                  [        R                  [        R                  /nU Hf  nU" XU5      n[        UR                  U5        U" US   X#5      n[        UR                  U5        U" XS   U5      n[        UR                  U5        Mh     g Nr   )r  r   r  r  r   r
   r   )rR   r  r  argThreer  r  r  r  s           r6   test_three_arg_funcs,TestSingleEltArrayInput.test_three_arg_funcs  s    -1-@-@-B*$$f&7&7&&( Dvx0CH-vay&3CH-vay(3CH- r8   r}   N)	r~   r   r   r   r  r  r  r  r   r}   r8   r6   r  r    s    A.(.8.r8   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 )NrG  r   r   rV  )r   rv   getattrr   rk   r:   )r7   fnamer  rN  rM  r^  s         r6   test_integer_dtyper    sL    
KK	"EA1FFLLBHHSM)*r8   c                 D   [         R                  " S5      nU u  p#n[        X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[        Xt:H  5        g )NrG  r   r(  rI  )r   rO   r  rJ  rK  rL  rM  rN  rO  r:   rE  rP  r   )r7   r   r  r  rN  rM  rR  rS  s           r6   test_integer_repeatr    sz    


Y
'C"EA
T
 
 C
}} lln
.."''*
+
5
5
7CCMr8   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)Nre   r  gffffff?)r   re   r   r   )r   r   r`   r   r   r}   r8   r6   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   re   r   )r   Fr   r@   rA   rB   rC   rD   rE   )r:   r   rO   r   r   
__reduce__	__class__r~   r   r   r
   r	   )rw   ctorr  state_arG   state_bs         r6   &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4r8   z0np.random.set_bit_generator affects global statec                 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_rngr@   r<   r   mtrand_rand_bit_generatorrd  r;   )r>   def_bgbg	second_bgs       r6   test_hot_swapr    s~     YY""1%F			BII#bii&&,,;;T"XFFFF		++-I??r8   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   re   r@   r   rA   inc)r   r:   r   r<   r   rv   print)r>   r  rA   r  s       r6   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$====r8   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   r`   r   )r>   rA   r  s      r6   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   rA   r  )	r:   r   rv   rP   r   rA   r<   r   r   )r>   r:  r  rA   state_directfieldpcg_valsr  s           r6   test_swap_workedr    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Ar8   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   rP   rO   r
   )r>   singleton_valsrgnon_singleton_valss       r6   %test_swapped_singleton_against_directr  -  sd    IIe-YY&&q'26N			uU|	,BAw3#4r8   )2rM  r  rJ  r  r   numpyr:   r   numpy.randomr   r   numpy.testingr   r   r   r	   r
   r   r   r  r3   r$  rb  r&  r4   fixturer7   r>   rH   rJ   r   r   r   r  rl  rF  ri  rj  r  r  r  r  r  r  thread_unsafer  r
  r  r  r  r}   r8   r6   <module>r     sk     
     '   &+c!12"+	 88BGG5 ,n,n,n,n,n,n,n,nO -o,n,n,n,n,n,n,nO hy1, 2,
 - -),? ,?^> >6. 6.r[E [E|e+ e+P\, \,~g@ g@T G$89*7 *7 :*7\A. A.J+95$ "TU V "TU> V> "TU# V# "TUB VB$ "TU5 V5r8   