
    BwgM             	          d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZmZ d dlmZ ddddd ej*                  d	      d
z  fddddZ ej.                  ej0                        j2                  dk  rdddddddddZndddddddd dZ ej6                  d!e"      d#        Zej6                  d$        Zd% Z G d& d'      Z G d( d)      Z  G d* d+      Z! G d, d-      Z" G d. d/      Z# G d0 d1      Z$ G d2 d3      Z%ejL                  jO                  ed45       G d6 d7             Z( G d8 d9      Z)d: Z*d; Z+d< Z,d= Z-d> Z.d? Z/d@ Z0dA Z1dB Z2y)C    N)	assert_assert_raisesassert_equalassert_warnsassert_no_warningsassert_array_equalassert_array_almost_equalsuppress_warningsIS_WASM)MT19937PCG64)random)g      Y@g333333?)      ?)   r   
   r      g      @)d   r   )      $@)   )binomial	geometrichypergeometric	logseriesmultinomialnegative_binomialpoissonzipf        @2fbead005fc63942decb5326d36a1f32fe2c9d32c904ee61e46866b88447c263@23ead5dcde35d4cfd4ef2c105e4c3d43304b45dc1b1444b7823b9ee4fa144ebb@0d764db64f5c3bad48c8c33551c13b4d07a1e7b470f77629bef6c985cac76fcf@7b59bf2f1691626c5815cdcd9a49e1dd68697251d4521575219e4d2a1b8b2c67@d754fa5b92943a38ec07630de92362dd2e02c43577fc147417dc5b9db94ccdd3@8eb216f7cb2a63cf55605422845caaff002fddc64a7dc8b2d45acd477a49e824@70c891d76104013ebd6f6bcf30d403a9074b886ff62e4e6b8eb605bf1a4673b7@01f074f97517cd5d21747148ac6ca4074dde7fcb7acbaec0a936606fecacd93f)r   r   r   r   r   r   r   r   @8626dd9d052cb608e93d8868de0a7b347258b199493871a1dc56e2a26cacb112@8edd53d272e49c4fc8fbbe6c7d08d563d62e482921f3131d0a0e068af30f0db9@83496cc4281c77b786c9b7ad88b74d42e01603a55c60577ebab81c3ba8d45657@65878a38747c176bc00e930ebafebb69d4e1e16cd3a704e264ea8f5e24f548db@7a984ae6dca26fd25374479e118b22f55db0aedccd5a0f2584ceada33db98605@d636d968e6a24ae92ab52fe11c46ac45b0897e98714426764e820a7d77602a61@956552176f77e7c9cb20d0118fc9cf690be488d790ed4b4c4747b965e61b0bb4@f84ba7feffda41e606e20b28dfc0f1ea9964a74574513d4a4cbc98433a8bfa45module)scopeparamsc                 d    | j                   t        | j                      t        | j                      fS N)param	INT_FUNCSINT_FUNC_HASHES)requests    Z/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/random/tests/test_randomstate.pyint_funcr9   2   s*    MM9W]]3GMM*, ,    c               #      K   t         j                  j                         } d t         j                  j                  |        yw)z:Ensures that the singleton bitgen is restored after a testN)npr   get_bit_generatorset_bit_generator)orig_bitgens    r8   restore_singleton_bitgenr@   8   s/      ))--/K	II,s   AAc                     t        | d   |d          t        | d   d   |d   d          t        | d   d   |d   d          t        | d   |d          t        | d   |d          y )Nbit_generatorstatekeypos	has_gaussgauss)r   r   )abs     r8   assert_mt19937_state_equalrJ   @   sr    ?#Q%78qz%(!G*U*;<qz%(!G*U*;<;;07QwZ(r:   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestSeedc                     t        j                  d      }t        |j                  d      d       t        j                  d      }t        |j                  d      d       y )Nr     i      i  )r   RandomStater   randintselfss     r8   test_scalarzTestSeed.test_scalarI   sF    q!QYYt_c*z*QYYt_c*r:   c                    t        j                  t        d            }t        |j	                  d      d       t        j                  t        j                  d            }t        |j	                  d      d       t        j                  dg      }t        |j	                  d      d       t        j                  dg      }t        |j	                  d      d       y )Nr   rN   i  r   i  rO   i	  )r   rP   ranger   rQ   r<   arangerR   s     r8   
test_arrayzTestSeed.test_arrayO   s    uRy)QYYt_c*ryy}-QYYt_c*s#QYYt_c*
|,QYYt_c*r:   c                     t        t        t        j                  d       t        t        t        j                  d       y )N      r   	TypeErrorr   rP   
ValueErrorrS   s    r8   test_invalid_scalarzTestSeed.test_invalid_scalarY   s&    i!3!3T:j&"4"4b9r:   c                 H   t        t        t        j                  dg       t        t        t        j                  dg       t        t        t        j                  dg       t        t        t        j                  g d       t        t        t        j                  g d       y )Nr[   r\   r   )   r   r   )rc   r   r]   r`   s    r8   test_invalid_arrayzTestSeed.test_invalid_array^   sd    i!3!3dV<j&"4"4rd;j&"4"4zlCj&"4"46HIj&"4"46IJr:   c                    t        t        t        j                  t	        j
                  g t        j                               t        t        t        j                  g dg       t        t        t        j                  g dg dg       y )Ndtyperc   r      )      r   )r   r_   r   rP   r<   arrayint64r`   s    r8   test_invalid_array_shapez!TestSeed.test_invalid_array_shapef   s\    j&"4"4bhhrEGXX7O 	Pj&"4"4ykBj&"4"4y7@7B 	Cr:   c                     t        j                  t        d            }t        t              5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr     )r   rP   r   r   r^   seed)rS   rss     r8   test_cannot_seedzTestSeed.test_cannot_seedn   s>    a)9% 	GGDM	 	 	s   A		Ac                 J    t        t        t        j                  t               y r3   )r   r_   r   rP   r   r`   s    r8   test_invalid_initializationz$TestSeed.test_invalid_initializations   s    j&"4"4g>r:   N)
__name__
__module____qualname__rU   rY   ra   re   ro   rt   rv    r:   r8   rL   rL   H   s'    ++:
KC
?r:   rL   c                       e Zd Zd Zd Zy)TestBinomialc                     t        j                  dd      }dD ]D  }t        t        j                  d|      dk(         t        t        j                  ||      |       F y )Nr   intrg   )r   r   rc   r   )r<   zerosr   r   r   r   )rS   r   ps      r8   test_n_zerozTestBinomial.test_n_zerox   sR     %( 	AAFOOAq)Q./vua8%@	Ar:   c                 `    t        t        t        j                  dt        j
                         y )Nrc   )r   r_   r   r   r<   nanr`   s    r8   test_p_is_nanzTestBinomial.test_p_is_nan   s    j&//1bff=r:   N)rw   rx   ry   r   r   rz   r:   r8   r|   r|   w   s    A>r:   r|   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestMultinomialc                 4    t        j                  dddg       y )Nr   皙?皙?r   r   r`   s    r8   
test_basiczTestMultinomial.test_basic   s    3c
+r:   c                 4    t        j                  dg d       y )Nr   )r   r           r   r   r   r`   s    r8   test_zero_probabilityz%TestMultinomial.test_zero_probability   s    3 9:r:   c                    t        dt        j                  dd      cxk  xr dk  nc        t        j                  ddd      }t        t        j                  d|k               t        t        j                  |dk               y )Nr\   rl   )r   r   rQ   r<   allrS   xs     r8   test_int_negative_intervalz*TestMultinomial.test_int_negative_interval   sY    fnnR,1r12NN2r1%rQw q2vr:   c           	          ddg}t        t        j                  d|t        j                  d            j
                  d       t        t        j                  d|t        j                  d            j
                  d       t        t        j                  d|t        j                  d            j
                  d       t        t        j                  d|ddg      j
                  d       t        t        j                  d|d      j
                  d       t        t        j                  d|t        j                  d            j
                  d       t        t        t        j                  d|t        d             y )Nr   rc   rc   r   r   r   r   r   r   r   )
r   r   r   r<   uint32shaperm   r   r^   floatrS   r   s     r8   	test_sizezTestMultinomial.test_size   s   #JV''1biil;AA6JV''1biil;AA6JV''1biil;AA6JV''1q!f5;;YGV''1f5;;YGV''1bhhv.>?EE	  	i!3!3QAh	 r:   c                     t        t        t        j                  dddg       t        t        t        j                  dddg       y )Nr   皙?r   皙?r   r_   r   r   r`   s    r8   test_invalid_probz!TestMultinomial.test_invalid_prob   s2    j&"4"4cC:Fj&"4"4cC:Fr:   c                 H    t        t        t        j                  dddg       y )Nr\   r   r   r   r`   s    r8   test_invalid_nzTestMultinomial.test_invalid_n   s    j&"4"4b3*Er:   c                 h   t        j                  d      }|t        j                  |dd d         z  }|dd d   }t        j                  d       t        j
                  d|      }t        j                  d       t        j
                  dt        j                  |            }t        ||       y )Ng      .@rc   rj   i۠iUr   )pvals)r<   rX   sumr   rr   r   ascontiguousarrayr   )rS   r   r   
non_contigcontigs        r8   test_p_non_contiguousz%TestMultinomial.test_p_non_contiguous   s    IIcN	RVVAaddG_!$Q$J''59
J##Cr/C/CE/JK:v.r:   c                    t        j                  g dt         j                        }||j                         z  }d}t	        j
                  t        |      5  t        j                  d|       d d d        y # 1 sw Y   y xY w)N)
Gz?r   &.>r   r   r   r   r   r   r   rg   z-[\w\s]*pvals array is cast to 64-bit floatingmatchrc   )	r<   rm   float32r   pytestraisesr_   r   r   )rS   r   r   r   s       r8   test_multinomial_pvals_float32z.TestMultinomial.test_multinomial_pvals_float32   sd    HH :ACMAEEG@]]:U3 	)q%(	) 	) 	)s   A88Bc                 4    t        j                  dddg       y )Ng      Y@r   r   r   r`   s    r8   test_multinomial_n_floatz(TestMultinomial.test_multinomial_n_float   s    53*-r:   N)rw   rx   ry   r   r   r   r   r   r   r   r   r   rz   r:   r8   r   r      s1    ,;  GF/).r:   r   c                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)TestSetStatec                     d| _         t        j                  | j                         | _        | j                  j	                         | _        y NiI)rr   r   rP   random_state	get_staterC   r`   s    r8   setup_methodzTestSetState.setup_method   s6    	"..tyy9&&002
r:   c                     | j                   j                  d      }| j                   j                  | j                         | j                   j                  d      }t	        t        j                  ||k(               y )N   )r   tomaxint	set_staterC   r   r<   r   rS   oldnews      r8   r   zTestSetState.test_basic   s[    ((,##DJJ/((,scz"#r:   c                     | j                   j                  d      }| j                   j                  | j                         | j                   j                  d      }t	        t        j                  ||k(               y Nrj   size)r   standard_normalr   rC   r   r<   r   r   s      r8   test_gaussian_resetz TestSetState.test_gaussian_reset   sa    //Q/7##DJJ///Q/7scz"#r:   c                 T   | j                   j                          | j                   j                         }| j                   j                  d      }| j                   j                  |       | j                   j                  d      }t	        t        j                  ||k(               y r   )r   r   r   r   r   r<   r   )rS   rC   r   r   s       r8    test_gaussian_reset_in_media_resz-TestSetState.test_gaussian_reset_in_media_res   s     	))+!!++-//Q/7##E*//Q/7scz"#r:   c                    | j                   d d }| j                  j                  d      }| j                  j                  |       | j                  j                  d      }| j                  j                  | j                          | j                  j                  d      }t	        t        j                  ||k(               t	        t        j                  ||k(               y )Nrd   r   r   )rC   r   r   r   r   r<   r   )rS   	old_statex1x2x3s        r8   test_backwards_compatibilityz)TestSetState.test_backwards_compatibility   s     JJsO	..B.7##I...B.7##DJJ/..B.7rRx !rRx !r:   c                 <    | j                   j                  dd       y Nr   )r   r   r`   s    r8   test_negative_binomialz#TestSetState.test_negative_binomial   s     	++C5r:   c                 .   t        j                  t                     }t               5 }|j	                  t
              }|j                         }t        t        |      dk(         t        |t              sJ |d   dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nrc   rB   r   )r   rP   r   r
   recordRuntimeWarningr   r   len
isinstancedict)rS   rs   supwrC   s        r8   test_get_state_warningz#TestSetState.test_get_state_warning   s}    (  	5C

>*ALLNECFaK eT***)W444	5 	5 	5s   ABBc                    | j                   j                         }d|dd  z   }t        t        | j                   j                  |       t        t
        | j                   j                  t        j                  |t                     | j                   j                  d      }|d= t        t        | j                   j                  |       y )N)Unknownrc   rg   FlegacyrB   )	r   r   r   r_   r   r^   r<   rm   object)rS   rC   	new_states      r8   !test_invalid_legacy_state_settingz.TestSetState.test_invalid_legacy_state_setting   s    !!++-!E!"I-	j$"3"3"="=yIi!2!2!<!<hhy7	9!!++5+9/"j$"3"3"="=uEr:   c                    | j                   j                  d       | j                   j                  d       | j                   j                          | j                   j	                  d      }t        |d   d       t        j                  t        j                  | j                               }|j	                  d      }t        ||       y )Nr   r   Fr   rF   rc   )
r   rr   random_sampler   r   r   pickleloadsdumpsrJ   )rS   pickled	rs_unpick	unpickleds       r8   test_picklezTestSetState.test_pickle   s    q!'',))+##--U-;W[)1-LLd.?.?!@A	''u'5	"7I6r:   c                     | j                   j                         }| j                   j                          | j                   j                  |       | j                   j	                  d      }t        ||       y )NFr   )r   __getstate__r   __setstate__r   rJ   )rS   
attr_staterC   s      r8   test_state_settingzTestSetState.test_state_setting
  s_    &&335
))+&&z2!!++5+9":u5r:   c                 P    t        | j                        j                  d      sJ y )NzRandomState(MT19937))reprr   
startswithr`   s    r8   	test_reprzTestSetState.test_repr  s"    D%%&112HIIIr:   N)rw   rx   ry   r   r   r   r   r   r   r   r   r   r   r   rz   r:   r8   r   r      s;    3
$$	$
"6
5F76Jr:   r   c            	          e Zd Zej                  Zej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  g	Zd Zd Zd Zd Zd Zd Zej0                  j3                   ej4                  d      j6                  dk  d	
      d        Zd Zd Zy)TestRandintc                 F    t        t        | j                  dt               y Nrc   rg   )r   r^   rfuncr   r`   s    r8   test_unsupported_typez!TestRandint.test_unsupported_type  s    iQe<r:   c                    | j                   D ]  }|t        j                  u rdnt        j                  |      j                  }|t        j                  u rdn!t        j                  |      j
                  dz   }t        t        | j                  |dz
  ||       t        t        | j                  ||dz   |       t        t        | j                  |||       t        t        | j                  dd|        y )Nr   r   rc   rg   )	ityper<   booliinfominmaxr   r_   r   )rS   dtlbndubnds       r8   test_bounds_checkingz TestRandint.test_bounds_checking   s    ** 	BBbgg1288B<+;+;Dbgg1288B<+;+;a+?D*djj$(DK*djj$qK*djj$BG*djj!QbA	Br:   c           	         | j                   D ]  }|t        j                  u rdnt        j                  |      j                  }|t        j                  u rdn!t        j                  |      j
                  dz   }|dz
  }t        | j                  ||dz   d|      |       |}t        | j                  ||dz   d|      |       ||z   dz  }t        | j                  ||dz   d|      |        y )Nr   r   rc   rN   r   rh   )r   r<   r  r  r  r  r   r   )rS   r  r  r  tgts        r8   test_rng_zero_and_extremesz&TestRandint.test_rng_zero_and_extremes)  s    ** 	MBbgg1288B<+;+;Dbgg1288B<+;+;a+?D(CCqt2FLCCqt2FL$;"CCqt2FL	Mr:   c                 r   | j                   D ]  }|t        j                  u rdnt        j                  |      j                  }|t        j                  u rdn!t        j                  |      j
                  dz   }	 | j                  |||        y # t        $ r}t        dt        |      z        d }~ww xY w)Nr   r   rc   rg   zMNo error should have been raised, but one was with the following message:

%s)
r   r<   r  r  r  r  r   	ExceptionAssertionErrorstr)rS   r  r  r  es        r8   test_full_rangezTestRandint.test_full_range7  s     ** 		@Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D@

4R
0		@  @$ &68;A&? @ @@s   :B	B6B11B6c                    t        j                          | j                  dd  D ]V  }dD ]O  }| j                  d|d|      }t	        |j                         |k         t	        |j                         dk\         Q X | j                  dddt        j                        }t	        |j                         dk         t	        |j                         dk\         y )Nrc   )rk      r   r   i   r
  r   )	r   rr   r   r   r   r  r  r<   r  )rS   r  r  valss       r8   test_in_bounds_fuzzzTestRandint.test_in_bounds_fuzzE  s    **QR. 	)B" )zz!TRz@
T)*
a()	) zz!QU"''z:
Q
a r:   c           
      "   dddddddddd	}| j                   dd  D ]  }t        j                  d       t        j                  d	k(  r| j                  d
dd|      }n#| j                  d
dd|      j                         }t        j                  |j                  t        j                              j                         }t        |t        j                  |      j                     |k(          t        j                  d       | j                  d
ddt               j                  t        j                        }t        j                  |      j                         }t        |t        j                  t               j                     |k(         y )N@509aea74d792fb931784c4b0135392c65aec64beee12b0cc167548a2c3d31e71@7b07f1a920e46f6d0fe02314155a2330bcfd7635e708da50e536c5ebb631a7d4@e577bfed6c935de944424667e3da285012e741892dcb7051a8f1ce68ab05c92f@0fbead0b06759df2cfb55e43148822d4a1ff953c7eb19a5b08445a63bb64fa9e@001aac3a5acb935a9b186cbe14a1ca064b8bb2dd0b045d48abeacf74d0203404)	r  int16int32rn   int8uint16r   uint64uint8rc   rq   littler   r   rN   r
  r   )r   r   rr   sys	byteorderr   byteswaphashlibsha256viewr<   r  	hexdigestr   rh   namer  )rS   r  r  valress        r8   test_repeatabilityzTestRandint.test_repeatabilityT  s@    ZZZZY[[[Z\ **QR. 
	3BKK }}(jjADj;jjADj;DDF.."''!23==?CC))*c12
	3 	DjjADj5::277CnnS!++-BHHTN''(C/0r:   lr   zCannot test with 32-bit C longreasonc           
      (   t        j                  g dg dg dgg dg dg dgg dg dg d	gg d
g dg dgg dg dg dgg      }dD ]F  }t        j                  d       | j	                  dgdgdggg d|      }t        |||n|d          H y )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)rl   rj   rj   i90  r\   r   rc   )rO   r   l       r   )r<   rm   r   rr   r   r   )rS   desiredr   r   s       r8   .test_repeatability_32bit_boundary_broadcastingz:TestRandint.test_repeatability_32bit_boundary_broadcastingt  s     ((AAAC BAAC BAAC BAAC BAACD E & 	ODKK

RD1#s+-J $  &AqT-='71:N		Or:   c                    t         j                  }t        j                  t         j                        j                  }t        j                  t        j                  t         j                        j                        }t        j                  t        j                  t         j                        j                  dz         }t        j                  |||      }t        ||       y r   )r<   rn   r  r  r!  r   rQ   r   )rS   r  r  r  r  actuals         r8   test_int64_uint64_corner_casez)TestRandint.test_int64_uint64_corner_case  s     XXhhrxx $$xx*../yy"((+//!34 d"5VS!r:   c                    | j                   D ]  }|t        j                  u rdnt        j                  |      j                  }|t        j                  u rdn!t        j                  |      j
                  dz   }| j                  |||      }t        |j                  t        j                  |              t        t        fD ]  }|t        u rdnd}|t        u rdnt        j                  |      j                  }|t        u rdn!t        j                  |      j
                  dz   }| j                  |||      }t        t        |d              t        t        |      |        y )Nr   r   rc   rg   longr  rh   )r   r<   r  r  r  r  r   r   rh   r~   r   hasattrtype)rS   r  r  r  sampleop_dtypes         r8   test_respect_dtype_singletonz(TestRandint.test_respect_dtype_singleton  s   ** 	5Bbgg1288B<+;+;Dbgg1288B<+;+;a+?DZZd"Z5Frxx|4	5 + 
	+B "$svHd
1(:(>(>Dd
1(:(>(>(BDZZd"Z5F001fr*
	+r:   N)rw   rx   ry   r   rQ   r   r<   r  r  r"  r  r   r  r   rn   r!  r   r   r  r  r  r  r.  r   markskipifr  r  r4  r7  r>  rz   r:   r8   r   r     s    NNE WWbggrxx299XXryy"((BII7E=BM@!1@ [[))E1?  AOAO,".+r:   r   c                   t   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1e2jf                  ji                  d0 e5jl                  d1d2      d3e5jn                  d4g      d5        Z8d6 Z9d7 Z:d8 Z;d9 Z<d: Z=d; Z>d< Z?d= Z@d> ZAd? ZBd@ ZCdA ZDdB ZEdC ZFdD ZGdE ZHdF ZIdG ZJdH ZKdI ZLdJ ZMdK ZNdL ZOdM ZPdN ZQdO ZRdP ZSdQ ZTdR ZUdS ZVdT ZWdU ZXdV ZYdW ZZyX)YTestRandomDistc                     d| _         y r   rr   r`   s    r8   r   zTestRandomDist.setup_method  s	    	r:   c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgddgg      }t        ||d	
       y )Nrj   r   _\*?琛?<p?,o?H?Z?   decimal)r   rr   randr<   rm   r	   rS   r6  r3  s      r8   	test_randzTestRandomDist.test_rand  s`    DIIQ"((02EF02EF/1CDF G 	"&'2>r:   c                     t        j                  | j                         t        j                         }d}t        ||d       y )NrF  rL  rM  )r   rr   rO  r	   rP  s      r8   test_rand_singletonz"TestRandomDist.test_rand_singleton  s.    DII%!&'2>r:   c                 N   t        j                  | j                         t        j                  dd      }t        j                  ddgddgddgg      }t        ||d	
       t        j                  | j                         t        j                         }t        ||d   d	
       y )Nrj   r   !<Oq?4u,?3?LI/DͿ@? @HS\@rL  rM  r   r   r   rr   randnr<   rm   r	   rP  s      r8   
test_randnzTestRandomDist.test_randn  s    DIIa#((02EF-/BC-/BCE F 	"&'2>DII!&'$-Dr:   c                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||       y )Nc   rj   r   r      rj   )   )r   rr   rQ   r<   rm   r   rP  s      r8   test_randintzTestRandomDist.test_randint  sW    DIIRf5((RG "I #J( ) 	67+r:   c                 |   t        j                  | j                         t               5 }|j                  t              }t        j
                  ddd      }t        t        |      dk(         d d d        t        j                  ddgdd	gd
dgg      }t        |       t        j                  | j                         t               5 }|j                  t              }t        j
                  dd      }t        t        |      dk(         d d d        t        ||dz          y # 1 sw Y   xY w# 1 sw Y   %xY w)Nr`  ra  rb  r   rc   rc  rj   rd  re  rf  rg     r   )r   rr   r
   r   DeprecationWarningrandom_integersr   r   r<   rm   r   )rS   r   r   r6  r3  s        r8   test_random_integersz#TestRandomDist.test_random_integers  s   DII  	!C

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

-.A++Cf=FCFaK 	! 	67S=1	! 	!	! 	!s   AD&
AD2&D/2D;c                 J   t        j                  | j                         t        j                  | j                        }|j                  d      }t	        j
                  t        j                        j                  dk(  r/t	        j                  ddgddgdd	ggt        j                  
      }n.t	        j                  ddgddgddggt        j                  
      }t        ||       |j                  | j                         |j                         }t        ||d          y )Nrb  r   ii4Oi˕+iRKiriFbqirg   l   K+W+y l   r&&J] l   ;	 l   nBz l   @XHT l   D+l++ r[  )r   rr   rP   r   r<   r  r9  r  rm   rn   r   )rS   rs   r6  r3  s       r8   test_tomaxintzTestRandomDist.test_tomaxint  s    DII		*&)88BGG  J.hhi 8!+i 8!+i 8 :ACKG hh!46I J!46I J!46I J L &(XX/G
 	VW%
		VWT]+r:   c           	      4   t               5 }|j                  t              }t        j                  t        j                  d      j                  t        j                  d      j                        }t        t        |      dk(         d d d        t        j                  d      j                  }t        |       t               5 }|j                  t              }t        j                  d      j                  }t        j                   |t        j                  d      j                         |t        j                  d      j                              }t        t        |      dk(         d d d        t        ||       y # 1 sw Y   xY w# 1 sw Y   "xY w)Nr/  rc   )r
   r   rk  r   rl  r<   r  r  r   r   r   rh   r;  )rS   r   r   r6  r3  typers         r8   test_random_integers_max_intz+TestRandomDist.test_random_integers_max_int  s'      	!C

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

-.AHHSM&&E++E"((3-2C2C,D,1"((3-2C2C,DFFCFaK 	! 	VW%	! 	!	! 	!s   A=FB(FFFc           	         t        j                         5  t        j                  dt               t	        t        t
        j                  t        j                  d      j                         t	        t        t
        j                  t        j                  d      j                  t        j                  d      j                         d d d        y # 1 sw Y   y xY w)Nerrorr/  )
warningscatch_warningssimplefilterrk  r   r   rl  r<   r  r  r`   s    r8   test_random_integers_deprecatedz.TestRandomDist.test_random_integers_deprecated  s    $$& 	@!!'+=> , 00((3-++-
 , 00((3-++RXXc]->->@	@ 	@ 	@s   B1CCc                 L   t        j                  | j                         t        j                  d      }t        j                  ddgddgddgg      }t        ||d	       t        j                  | j                         t        j                         }t        ||d
   d	       y )Nrb  rF  rG  rH  rI  rJ  rK  rL  rM  r[  )r   rr   r   r<   rm   r	   rP  s      r8   test_random_samplez!TestRandomDist.test_random_sample,  s    DII%%f-((02EF02EF/1CDF G 	"&'2>DII%%'!&'$-Dr:   c                     t        j                  | j                         t        j                  dd      }t        j                  g d      }t        ||       y )Nrk   )r   rj   r   rj   r   rr   choicer<   rm   r   rP  s      r8   test_choice_uniform_replacez*TestRandomDist.test_choice_uniform_replace8  s:    DIIq!$((<(67+r:   c                     t        j                  | j                         t        j                  ddg d      }t        j                  g d      }t        ||       y )Nrk   )皙?r  皙?r  r   )rc   rc   r   r   r|  rP  s      r8   test_choice_nonuniform_replacez-TestRandomDist.test_choice_nonuniform_replace>  s=    DIIq!';<((<(67+r:   c                     t        j                  | j                         t        j                  ddd      }t        j                  g d      }t        ||       y )Nrk   rj   Freplace)r   rc   rj   r|  rP  s      r8   test_choice_uniform_noreplacez,TestRandomDist.test_choice_uniform_noreplaceD  s<    DIIq!U3((9%67+r:   c                     t        j                  | j                         t        j                  dddg d      }t        j                  g d      }t        ||       y )Nrk   rj   F)r  333333?r   r  r  r   )r   rj   rc   r|  rP  s      r8    test_choice_nonuniform_noreplacez/TestRandomDist.test_choice_nonuniform_noreplaceJ  s?    DIIq!U6JK((9%67+r:   c                     t        j                  | j                         t        j                  g dd      }t        j                  g d      }t        ||       y )N)rH   rI   cdrk   )r  r  r  r  r|  rP  s      r8   test_choice_nonintegerz%TestRandomDist.test_choice_nonintegerP  s<    DII3Q7((/067+r:   c           	      j   t         j                  }t        t        |dd       t        t        |dd       t        t        |ddgddggd       t        t        |g d       t        t        |g ddddgddgg	       t        t        |ddgdg d
	       t        t        |ddgdddg	       t        t        |ddgdddg	       t        t        |g ddd       t        t        |g ddd       t        t        |g ddd       t        t        |g ddd       t        t        |g dddg d       y )Nr\   rj         @rc   r   rk   )rc   r   rj   rk   g      ?r  )r  r  r   r   r   r  ri   Fr  rd   )r\   )r\   rc   )rc   r   r   r  )r   r}  r   r_   )rS   r<  s     r8   test_choice_exceptionsz%TestRandomDist.test_choice_exceptionsV  s	   j&"a0j&"a0j&Aq6Aq6*:A>j&"a0j&,d|4	6j&1a&!Gj&1a&!T{Cj&1a&!SzBj&)QFj&)RGj&)UEJj&)WeLj&)Q#y	2r:   c           
      
   ddg}t        t        j                  t        j                  dd                   t        t        j                  t        j                  dd                   t        t        j                  t        j                  dd|                   t        t        j                  t        j                  dd|                   t        t        j                  t        j                  ddgd                   t        t        j                  d gd      d u        t        j
                  ddg      }t        j                  dt        	      }||d
<   t        t        j                  |d      |u        t               }t        t        j                  t        j                  d|d                    t        t        j                  t        j                  d|d                    t        t        j                  t        j                  d|d|                    t        t        j                  t        j                  d|d|                    t        t        j                  t        j                  ddg|d                    t        t        j                  d g|d      j                  d
k(         t        j
                  ddg      }t        j                  dt        	      }||d
<   t        t        j                  ||d      j                         |u        d}g d}t        t        j                  d|d      j                  |       t        t        j                  d|d      j                  |       t        t        j                  d|d|      j                  |       t        t        j                  d|d|      j                  |       t        t        j                  t        j                  d      |d      j                  |       t        t        j                  d
d
d      j                  d       t        t        j                  d
dd
      j                  d       t        t        j                  ddd
      j                  d       t        t        j                  d
d
      j                  d       t        t        j                  g d      j                  d       t        t        j                  ddgd      j                  d       t        t         t        j                  g d       y )Nr  r   r   Tr  Fr  rc   rg   r   )r   rj   )r  r  r  r  r  r   r   )rj   r   rk   r   i)r   r   rH   rI   )r   r<   isscalarr   r}  rm   emptyr   tuplendimitemr   r   rX   rQ   r   r_   )rS   r   rH   arrrT   s        r8   test_choice_return_shapez'TestRandomDist.test_choice_return_shapei  s   #JFMM!T:;<FMM!U;<=FMM!TQ?@AFMM!Ua@ABFMM1a&$?@Atfd3t;<HHaVhhq'Ac40A56 GBKKaD ABBCBKKaE BCCDBKKaDA FGGHBKKaEQ GHHIBKKq!fa FGGHtfa6;;q@AHHaVhhq'Ac1d388:a?@ *V]]1a6<<a@V]]1a7==qAV]]1a;AA1EV]]1a!<BBAFV]]299Q<DAGGK 	V^^Aqy9??KV^^As3994@V^^B3994@V]]11-33T:V]]2D177>V]]C:I>DD	 j&--R8r:   c                 |    t        j                  g d      }g d}t        t        t        j
                  ||       y )N)*   rc   r   )NNNr  )r<   rm   r   r_   r   r}  )rS   rH   r   s      r8   test_choice_nan_probabilitiesz,TestRandomDist.test_choice_nan_probabilities  s'    HHZ j&--a8r:   c           
      v   t        j                  d      dz  }d|dd d<   t        j                  | j                         t        j                  dd|d d d         }t        j                  | j                         t        j                  ddt        j
                  |d d d               }t        ||       y )Nr   rl   r  rc   r   rj   r  )r<   onesr   rr   r}  r   r   )rS   r   r   r   s       r8   test_choice_p_non_contiguousz+TestRandomDist.test_choice_p_non_contiguous  s    GGBK!O!$Q$DII]]1a1SqS62
DIIq!r';';AccF'CD:v.r:   c                     t        j                  | j                         t        j                  d      }d}t        ||       y )Nr   s
   Ui+Wf)r   rr   bytesr   rP  s      r8   
test_byteszTestRandomDist.test_bytes  s/    DIIb!.VW%r:   c                     d d d d d d d d d	 d
 d fD ]X  }t        j                  | j                          |g d      }t        j                  |       |} |g d      }t        ||       Z y )Nc                 ,    t        j                  g       S r3   )r<   rm   r   s    r8   <lambda>z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rxx| r:   c                     | S r3   rz   r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    q r:   c                 f    t        j                  |       j                  t         j                        S r3   )r<   asarrayastyper  r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BGG< r:   c                 f    t        j                  |       j                  t         j                        S r3   )r<   r  r  r   r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BJJ? r:   c                 f    t        j                  |       j                  t         j                        S r3   )r<   r  r  	complex64r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BLLA r:   c                 R    t        j                  |       j                  t              S r3   )r<   r  r  r   r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33F; r:   c                 0    | D cg c]  }||f c}S c c}w r3   rz   r   is     r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    21A2 2s   c                 V    t        j                  | D cg c]  }||g c}      S c c}w r3   )r<   r  r  s     r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s!    rzz1*=aAq6*=> *=s   &c                 D    t        j                  | | g      j                  S r3   )r<   vstackTr  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    ryy!Q022 r:   c                     t        j                  | D cg c]  }||f c}dt        fdt        fg      j                  t         j                        S c c}w )NrH   rI   )r<   r  r~   r)  recarrayr  s     r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sE    

A+>qQF+>-0#Jc
+C!E!%bkk!2 +>s   Ac                     t        j                  | D cg c]  }||f c}dt        dfdt         j                  dfg      S c c}w )NrH   rc   rI   )r<   r  r   r  r  s     r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sB    rzz1*=aAq6*=,/+>,/4+@+B C *=s   A
rc   r   rj   rk   rl   r      r  	   r   
r   rc   r  r   r   rk   rl   r  r  rj   )r   rr   shuffler   )rS   convalistr6  r3  s        r8   test_shufflezTestRandomDist.test_shuffle  s     , <?A;2>24CD 	0D" KK		"78ENN5!F9:Gvw/-	0r:   c                    t         j                  j                  t        j                  t	        d      d      dz  dz
  d      }t         j                  j                  t        j
                  d      dz  dz
  d      }|j                         }|j                         }t	        d      D ]  }t        j                  |       t        t        |j                  |j                            t        |j                  |j                                   t        j                  |       t        t        |j                  |j                            t        |j                  |j                                    d }y )Nr   )rl   rk   rj   rc   r\   2   c                 l    t        j                  d      }t        t        t        j
                  |       y )Nrj   )r<   rm   r   r^   r   r  r   s     r8   test_shuffle_invalid_objectszHTestRandomDist.test_shuffle_masked.<locals>.test_shuffle_invalid_objects  s    A)V^^Q7r:   )r<   mamasked_valuesreshaperW   rX   copyr   r  r   sorteddatamask)rS   rH   rI   a_origb_origr  r  s          r8   test_shuffle_maskedz"TestRandomDist.test_shuffle_masked  s   EE

59f = AA ErJEE		" 1A 5r:r 	LANN1qvvqvvg'V[[L0I)JLNN1qvvqvvg'V[[L0I)JL	L	8r:   c                    t        j                  | j                         g d}t        j                  |      }g d}t        ||       t        j                  | j                         t	        j
                  g d      j                  }t        j                  |      }t        |t	        j
                  |      j                         t        j                  | j                         d}t        t        t         j                  |       t        j                  | j                         d}t        t        t         j                  |       d}g d}t        j                  | j                         t        j                  |      }t        ||       y )Nr  r  abcdg333333?r   )
r  r   r  rl   rc   rj   rk   r  r   r   )	r   rr   permutationr   r<   
atleast_2dr  r   
IndexError)rS   r  r6  r3  arr_2d	bad_x_strbad_x_floatinteger_vals           r8   test_permutationzTestRandomDist.test_permutation  s   DII.##E*067+DII=>@@##F+62==#9#;#;<DII	j&"4"4i@DIIj&"4"4kB0DII##K067+r:   c                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr  r   rb  r   gAKč?ghA?g ҇o>gάXf+q?gS1$?g'8zX ?rL  rM  )r   rr   betar<   rm   r	   rP  s      r8   	test_betazTestRandomDist.test_beta  sb    DIIR&1(()+BC)+BC)+BCEF 	"&'2>r:   c                 L   t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||       t        j                  | j                         t        j                  dd      }d}t        ||       y )NgZd;Y@gv/?rb  r   %   +   r  0   .   -   )r   rr   r   r<   rm   r   rP  s      r8   test_binomialzTestRandomDist.test_binomial  s    DII$V<((RHHH& ' 	67+DII$/67+r:   c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgdd	gg      }t        ||d
       y )Nr  rb  r   g+Q]uO@g+Q@gY7`ZqP@ge(fG@gvtR@gEIȋR@   rM  )r   rr   	chisquarer<   rm   r	   rP  s      r8   test_chisquarezTestRandomDist.test_chisquare	  sb    DII!!"62((13GH13GH02FGI J 	"&'2>r:   c                 2   t        j                  | j                         t        j                  ddg      }t        j                  |d      }t        j                  ddgddggd	d
gddggddgddggg      }t        ||d       t        j                  ddg      }t        t        t         j                  |       t        j                  | j                         t        j                  ddg      }t        j                  |      }t        ||d   d       y )NI<I@EZC@rb  r   gi{s?gn,	A?g]^?gpDB?gȧ#y?gr?g1U?gѨUC?g^,%?gB?gډOoX;?gM`!O?rL  rM  HzG?缉ؗҜr[  )r   rr   r<   rm   	dirichletr	   r   r_   )rS   alphar6  r3  	bad_alphas        r8   test_dirichletzTestRandomDist.test_dirichlet  s   DII.0DEF!!%f5((13FG13FGI13FG13FGI13FG13FGI	J K 	"&'2>HHgx01	j&"2"2I>DII.0DEF!!%(!&'$-Dr:   c                    t        j                  ddg      }t        t        j                  |t        j
                  d            j                  d       t        t        j                  |t        j
                  d            j                  d       t        t        j                  |t        j
                  d            j                  d       t        t        j                  |ddg      j                  d       t        t        j                  |d      j                  d       t        t        j                  |t        j                  d            j                  d       t        t        t        j                  |t        d             y )Nr  r  rc   r   r   r   r   )
r<   rm   r   r   r  r   r   r   r^   r   r   s     r8   test_dirichlet_sizez"TestRandomDist.test_dirichlet_size$  s   HH*,@ABV%%a16<<fEV%%a16<<fEV%%a16<<fEV%%a!Q066	BV%%a066	BV%%a&)9:@@)Li!1!11eAh?r:   c                 p    t        j                  ddg      }t        t        t        j
                  |       y )Nr  r  )r<   rm   r   r_   r   r  )rS   r  s     r8   test_dirichlet_bad_alphaz'TestRandomDist.test_dirichlet_bad_alpha0  s'    '8,-j&"2"2E:r:   c                 X   t        j                  g d      }|d d d   }t        j                  | j                         t        j                  |d      }t        j                  | j                         t        j                  t        j
                  |      d      }t        ||       y )N)r  g      r  r   rb  r   )r<   rm   r   rr   r  r   r	   )rS   rH   r  r   r   s        r8   #test_dirichlet_alpha_non_contiguousz2TestRandomDist.test_dirichlet_alpha_non_contiguous5  sz    HHGH#A#DII%%e&9
DII!!""6"6u"='-/!*f5r:   c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgdd	gg      }t        ||d
       y )Ng8EGr?rb  r   gNU?gbI0?gVU\@g:3@gU?g"qo?rL  rM  )r   rr   exponentialr<   rm   r	   rP  s      r8   test_exponentialzTestRandomDist.test_exponential?  sb    DII##F8((02EF02EF02EFH I 	"&'2>r:   c                     t        t        j                  d      d       t        t        t        j                  d       y Nr   scale       )r   r   r  r   r_   r`   s    r8   test_exponential_0z!TestRandomDist.test_exponential_0G  s)    V''a0!4j&"4"4C@r:   c                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )N   M   rb  r   g7?g`j?g6"+?gܳ2>?gc>+Y?g_}S?rL  rM  )r   rr   fr<   rm   r	   rP  s      r8   test_fzTestRandomDist.test_fK  sb    DII"bv.((02EF02EF02EFH I 	"&'2>r:   c                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nrl   rj   rb  r   gԏGM8@gȌ<@g	":@gv#)@gZQ?@gr[@@   rM  )r   rr   gammar<   rm   r	   rP  s      r8   
test_gammazTestRandomDist.test_gammaS  sb    DIIa0((13GH13GH13GHJ K 	"&'2>r:   c                     t        t        j                  dd      d       t        t        t        j                  dd       y )Nr   )r   r  r  )r   r   r  r   r_   r`   s    r8   test_gamma_0zTestRandomDist.test_gamma_0[  s)    V\\3Q7j&,,cEr:   c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgddgg      }t        ||       y )	N_c97ݚ?rb  r   r  r     rl   r  )r   rr   r   r<   rm   r   rP  s      r8   test_geometriczTestRandomDist.test_geometric_  sW    DII!!*6:((QFHG% & 	67+r:   c                 0   t        t        t        j                  d       t        t        t        j                  dgdz         t        t        t        j                  d       t        t        t        j                  dgdz         t	               5 }|j                  t               t        t        t        j                  t        j                         t        t        t        j                  t        j                  gdz         d d d        y # 1 sw Y   y xY w)Nr   r   r   )	r   r_   r   r   r
   r   r   r<   r   rS   r   s     r8   test_geometric_exceptionsz(TestRandomDist.test_geometric_exceptionsg  s    j&"2"2C8j&"2"2SEBJ?j&"2"2D9j&"2"2TFRK@  	GCJJ~&*f&6&6?*f&6&62F	G 	G 	Gs   A4DDc                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr         @rb  locr  r   gؕ?gs0 ?g#0g(xg-KD?gůp`@rL  rM  )r   rr   gumbelr<   rm   r	   rP  s      r8   test_gumbelzTestRandomDist.test_gumbelq  sb    DII:SvF((02EF02FG02FGI J 	"&'2>r:   c                     t        t        j                  d      d       t        t        t        j                  d       y r  )r   r   r  r   r_   r`   s    r8   test_gumbel_0zTestRandomDist.test_gumbel_0y  %    V]]+Q/j&--s;r:   c                    t        j                  | j                         t        j                  dddd      }t        j                  ddgddgddgg      }t        ||       t        j                  dd	d
d      }t        j                  g d      }t        ||       t        j                  dd	dd      }t        j                  g d      }t        ||       t        j                  d	dd
d      }t        j                  g d      }t        ||       t        j                  d	ddd      }t        j                  g d      }t        ||       y )Ng333333$@g      @r  rb  r   r   r  rl   r   rj   rk   )rj   rj   rj   rj   rL  r  )r  r  r  r  )r   r   r   r   )r   rr   r   r<   rm   r   rP  s      r8   test_hypergeometricz"TestRandomDist.test_hypergeometric}  s   DII&&tS"6B((RHHF$ % 	67+ &&q!QQ7((<(67+&&r1bq9((+,67+ &&q!QQ7((<(67+&&q"bq9((<(67+r:   c                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr  r  rb  r  g bO?g¸?gpJm	@g{K*t	@g:^w-gY~o?rL  rM  )r   rr   laplacer<   rm   r	   rP  s      r8   test_laplacezTestRandomDist.test_laplace  sb    DIIJcG((02EF02EF13FGI J 	"&'2>r:   c                     t        t        j                  d      d       t        t        t        j                  d       y r  )r   r   r  r   r_   r`   s    r8   test_laplace_0zTestRandomDist.test_laplace_0  s%    V^^!,a0j&..<r:   c                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr  r  rb  r  g#K-z?gJ?g92@gر[@g#+^˿g-@rL  rM  )r   rr   logisticr<   rm   r	   rP  s      r8   test_logisticzTestRandomDist.test_logistic  sb    DIIZsH((02DE02EF13FGI J 	"&'2>r:   c                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr  r  rb  )meansigmar   gɁ0@go,+4FB@g)ʭ6@g5?gnxNnP@g)U@r  rM  )r   rr   	lognormalr<   rm   r	   rP  s      r8   test_lognormalzTestRandomDist.test_lognormal  sd    DII!!z6J((13GH13FG13GHJ K 	"&'2>r:   c                     t        t        j                  d      d       t        t        t        j                  d       y )Nr   )r(  rc   r  )r   r   r)  r   r_   r`   s    r8   test_lognormal_0zTestRandomDist.test_lognormal_0  s)    V%%A.2j&"2"2#>r:   c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgddgg      }t        ||       y )Ngƀ@?rb  )r   r   r   r   r  rj   )r   rr   r   r<   rm   r   rP  s      r8   test_logserieszTestRandomDist.test_logseries  sW    DII!!JV<((QFGF$ % 	67+r:   c                 8    t        j                  d      dk(  sJ y )Nr   rc   )r   r   r`   s    r8   test_logseries_zeroz"TestRandomDist.test_logseries_zero  s    "a'''r:   valuer   r\         ?g      @c                 T   t        j                  d      5  t        j                  t              5  t        j                  |       d d d        t        j                  t              5  t        j                  t        j                  |gdz               d d d        t        j                  t              5  t        j                  t        j                  |gdz        d d d          d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   rxY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nignoreinvalidr   r   )r<   errstater   r   r_   r   r   rm   )rS   r1  s     r8   test_logseries_exceptionsz(TestRandomDist.test_logseries_exceptions  s    [[* 	>z* (  '(z* 9  5'B,!789 z* >  5'B,!7!!<=>	> 	>( (9 9> >	> 	>sR   DC:!D(-D!D63D)D:D	?DD	DD	DD'c                     t        j                  | j                         t        j                  ddgdz  d      }t        j                  g dg dgg dg d	gg d
g dgg      }t        ||       y )Nr   UUUUUU?r   rb  r   )rk   rj   rl   rk   r   r   )rl   r   r  r   r   rc   )rj   rk   rj   r   r   rk   )r   rc   rk   rj   r   rk   )rk   rk   r   rl   r   rj   )rk   rj   rk   r   rj   rk   )r   rr   r   r<   rm   r   rP  s      r8   test_multinomialzTestRandomDist.test_multinomial  sl    DII##B16B((//1//1//1	2 3 	67+r:   c                    t        j                  | j                         d}ddgddgg}d}t        j                  |||      }t        j                  ddgddggd	d
gddggddgddggg      }t        ||d       t        j                  ||      }t        j                  ddg      }t        ||d       ddg}ddgddgg}t        t        t         j                  ||       t        t         j                  ||d       t        t        t         j                  ||d       t        j                  ddgddggt        j                        }t               5 }t        j                  ||       |j                  t              }t        |      dk(  sJ 	 d d d        t        j                  d      }t        j                   d      }t        t        t         j                  ||d       t        t        t         j                  t        j                  d      |       t        t        t         j                  |t        j"                  d             t        t        t         j                  |t        j                   d             y # 1 sw Y   xY w)N)r  r   rc   r   rb  g4Vj?gy'@gI1?gSB#@ge<@g 4W(@g6R¿?g9r
v"@gс?g{#@g4xg"f"@rL  rM  gN}O6?gYMW"@r   r4  )check_validraiser  rg   other)r   rc   rc   rj   )r   rr   multivariate_normalr<   rm   r	   r   r   r   r   r_   r   r
   r   r   r   eyer  )	rS   r'  covr   r6  r3  r   r   mus	            r8   test_multivariate_normalz'TestRandomDist.test_multivariate_normal  sI   DII1v1v++D#t<((/1BC/1BCE/1CD/1BCE/1BC02CDF	G H 	"&'2> ++D#6((-/?@A!&'2> 1v1v1v^V%?%?sK 	655tS'/	1 	j&"<"<dC")	+ hhC3(+2::>  	C&&tS1

>*Aq6Q;;	
 XXa[ffQij&"<"<dC")	+j&"<"<hhy)3	0j&"<"<"((6*	,j&"<"<"&&)	%	 	s   <JJ
c                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||       y )Nr   g|Pk?rb  )nr   r   iP  iI  i|  ic  i  i  )r   rr   r   r<   rm   r   rP  s      r8   r   z%TestRandomDist.test_negative_binomial  sY    DII))C6G((S#J #J #J( ) 	67+r:   c                 ,   t               5 }|j                  t               t        t        t
        j                  dt        j                         t        t        t
        j                  dt        j                  gdz         d d d        y # 1 sw Y   y xY w)Nr   r   )	r
   r   r   r   r_   r   r   r<   r   r  s     r8   !test_negative_binomial_exceptionsz0TestRandomDist.test_negative_binomial_exceptions  sd      	)CJJ~&*f&>&>RVVL*f&>&>66(R-)	) 	) 	)s   A6B

Bc                    t        j                  | j                         t        j                  ddd      }t        j                  ddgddgdd	gg      }t        ||d
       t        j                  ddd      }t        j                  ddgddgddgg      }t        ||d
       t        j                  | j                         t        j                  ddd      }t        j                  ddgddgddgg      }t        ||d
       y )Nrl   rb  )dfnoncr   gG7@g! ܴ*@g1}z9?@g+驸0@g26E_r#@gI!1@r  rM  r   r   g?gTD?g?T?g+qnl?g~|D?g밬?r   g{01#@gprs'@g~;$@g"dI@g*@g}',@)r   rr   noncentral_chisquarer<   rm   r	   rP  s      r8   test_noncentral_chisquarez(TestRandomDist.test_noncentral_chisquare  s   DII,,G((13GH13GH02FGI J 	"&'2>,,&I((03FG03FG.1DEG H 	"&'2>DII,,G((.0BC/1BC/1CDF G 	"&'2>r:   c                     t        j                  | j                         t        j                  dddd      }t        j                  ddgdd	gd
dgg      }t        ||d       y )Nrl   r   rc   rb  )dfnumdfdenrK  r   g^~?g/+c?g".@g@g7?gE?r  rM  )r   rr   noncentral_fr<   rm   r	   rP  s      r8   test_noncentral_fz TestRandomDist.test_noncentral_f0  si    DII$$1AA*02((02EF02EF02DEG H 	"&'2>r:   c                     t        j                  | j                         t        j                  ddt        j                        }t        j
                  |      sJ y )Nrl   r   )rO  rP  rK  )r   rr   rQ  r<   r   isnan)rS   r6  s     r8   test_noncentral_f_nanz$TestRandomDist.test_noncentral_f_nan9  s<    DII$$1ABFFCxxr:   c                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr  r  rb  r  g&&n@gOG_@g~w@gtw]տgm&5@g$>@rL  rM  )r   rr   normalr<   rm   r	   rP  s      r8   test_normalzTestRandomDist.test_normal>  sb    DII:SvF((02EF.0DE02EFH I 	"&'2>r:   c                     t        t        j                  d      d       t        t        t        j                  d       y r  )r   r   rW  r   r_   r`   s    r8   test_normal_0zTestRandomDist.test_normal_0F  r  r:   c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgdd	gg      }t        j
                  j                  ||d
       y )Nr  rb  rH   r   gWI@gԨy@gy]0Ag1~\Aga@gY
7A   )nulp)r   rr   paretor<   rm   testingassert_array_almost_equal_nulprP  s      r8   test_paretozTestRandomDist.test_paretoJ  sm    DII&9(()+BC)+BC)+BCEF 	

11&'1Kr:   c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgddgg      }t        ||       y )Nr  rb  )lamr   r   rc   )r   rr   r   r<   rm   r   rP  s      r8   test_poissonzTestRandomDist.test_poissonY  sU    DIIJV<((QFFF$ % 	67+r:   c                 r   t        j                  d      j                  }d}t        t        t
        j                  |       t        t        t
        j                  |gdz         t        t        t
        j                  |       t        t        t
        j                  |gdz         t               5 }|j                  t               t        t        t
        j                  t         j                         t        t        t
        j                  t         j                  gdz         d d d        y # 1 sw Y   y xY w)Nr/  r\   r   )r<   r  r  r   r_   r   r   r
   r   r   r   )rS   lambiglamnegr   s       r8   test_poisson_exceptionsz&TestRandomDist.test_poisson_exceptionsa  s    #""j&..&9j&..6(R-@j&..&9j&..6(R-@  	ECJJ~&*fnnbff=*fnnrvvhmD	E 	E 	Es   0A4D--D6c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgdd	gg      }t        ||d
       y )Nr  rb  r\  g;'?gܴw*?g5?gFG?g D]?g$`?rL  rM  )r   rr   powerr<   rm   r	   rP  s      r8   
test_powerzTestRandomDist.test_powerm  s`    DII
8((02EF02EF02EFH I 	"&'2>r:   c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgdd	gg      }t        ||d
       y )Nr   rb  )r  r   g"u+@gN$MB*@g7v8B4@g55@ge&@g~ӣZ1@r  rM  )r   rr   rayleighr<   rm   r	   rP  s      r8   test_rayleighzTestRandomDist.test_rayleighu  s`    DIIr7((02DE13GH13GHJ K 	"&'2>r:   c                     t        t        j                  d      d       t        t        t        j                  d       y r  )r   r   rn  r   r_   r`   s    r8   test_rayleigh_0zTestRandomDist.test_rayleigh_0}  s%    V__1-q1j&//=r:   c                     t        j                  | j                         t        j                  d      }t        j                  ddgddgddgg      }t        ||d	
       y )Nrb  r   gMoDL?g6([9grF=?gM'	- gVgVA:Qy?rL  rM  )r   rr   standard_cauchyr<   rm   r	   rP  s      r8   test_standard_cauchyz#TestRandomDist.test_standard_cauchy  s`    DII''V4((02FG02FG13FGI J 	"&'2>r:   c                     t        j                  | j                         t        j                  d      }t        j                  ddgddgddgg      }t        ||d	
       y )Nrb  r   g܁?gc!z?g&N"@gNI@gF>?g~ME?rL  rM  )r   rr   standard_exponentialr<   rm   r	   rP  s      r8   test_standard_exponentialz(TestRandomDist.test_standard_exponential  s`    DII,,&9((02EF/1DE/1DEG H 	"&'2>r:   c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgdd	gg      }t        ||d
       y )Nrj   rb  )r   r   g)@gľ@gd],q@gPk{@g9B#1@gv @r  rM  )r   rr   standard_gammar<   rm   r	   rP  s      r8   test_standard_gammaz"TestRandomDist.test_standard_gamma  sb    DII&&QV<((02EF02EF02CDF G 	"&'2>r:   c                     t        t        j                  d      d       t        t        t        j                  d       y )Nr   )r   r  )r   r   ry  r   r_   r`   s    r8   test_standard_gamma_0z$TestRandomDist.test_standard_gamma_0  s)    V**3Q7j&"7"7sCr:   c                     t        j                  | j                         t        j                  d      }t        j                  ddgddgddgg      }t        ||d	
       y )Nrb  r   rU  rV  rW  rX  rY  rZ  rL  rM  )r   rr   r   r<   rm   r	   rP  s      r8   test_standard_normalz#TestRandomDist.test_standard_normal  s`    DII''V4((02EF.0CD.0CDF G 	"&'2>r:   c                     t        j                  | j                         t        j                         }t        j                  d      }t        ||d       y )NrU  rL  rM  r\  rP  s      r8   test_randn_singletonz#TestRandomDist.test_randn_singleton  s8    DII((./!&'2>r:   c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgdd	gg      }t        ||d
       y )Nr   rb  )rJ  r   g\VH?ghU%gH$M?gLgVqdzǿg㖀?rL  rM  )r   rr   
standard_tr<   rm   r	   rP  s      r8   test_standard_tzTestRandomDist.test_standard_t  sb    DII""bv6((02FG02FG13FGI J 	"&'2>r:   c                     t        j                  | j                         t        j                  dddd      }t        j                  ddgdd	gd
dgg      }t        ||d       y )Ng{Gz@g(\u$@gףp=
W4@rb  )leftmoderightr   g:}\)@ghرTj(@gǨL30@g6ڜA0@g6sh&@g<,@r  rM  )r   rr   
triangularr<   rm   r	   rP  s      r8   test_triangularzTestRandomDist.test_triangular  si    DII""5(.0((13FG13GH13FGI J 	"&'2>r:   c                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )NGz?gGz%@rb  )lowhighr   g>#H@gu@g#@g}d]#@gN@gw)* @rL  rM  )r   rr   uniformr<   rm   r	   rP  s      r8   test_uniformzTestRandomDist.test_uniform  sb    DIIDu6B((02EF02EF02EFH I 	"&'2>r:   c                 ,   t        j                  d      j                  }t        j                  d      j                  }t        j
                  }t        t        |t         j                   d       t        t        |dt         j                         t        t        |||       t        t        |t         j                   gdg       t        t        |dgt         j                  g       t	        j
                  t        j                  |d      |dz         y )Nr   r   rc   g ؅W4vC)r  r  )
r<   finfor  r  r   r  r   OverflowErrorinf	nextafter)rS   fminfmaxfuncs       r8   test_uniform_range_boundsz(TestRandomDist.test_uniform_range_bounds  s    xx $$xx $$~~mTBFF7A6mT1bff5mT46mTRVVG9qc:mTA39
 	2<<a0td{Cr:   c                 z    G d dt         j                        }t        j                  d      j                  |      }t	        t
        t        j                  ||        G d dt         j                        }t        j                  d      j                  |      }t	        t
        t        j                  |dd       y )Nc                       e Zd Zd Zy)GTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloatc                     t         r3   r^   r`   s    r8   	__float__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__      r:   N)rw   rx   ry   r  rz   r:   r8   ThrowingFloatr         r:   r  r2  c                       e Zd Zd Zy)ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                     t         r3   r  r`   s    r8   __int__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__  r  r:   N)rw   rx   ry   r  rz   r:   r8   ThrowingIntegerr    r  r:   r  rc   )	r<   ndarrayrm   r)  r   r^   r   r  r   )rS   r  throwing_floatr  throwing_ints        r8   !test_scalar_exception_propagationz0TestRandomDist.test_scalar_exception_propagation  s    	 BJJ 	  #++M:i$	&	 bjj 	  xx{''8i!6!6aKr:   c                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr  p=
ף?rb  rC  kappar   gLZI@g'N"@gkr?gk=m@gډ?g^=\?rL  rM  r   rr   vonmisesr<   rm   r	   rP  s      r8   test_vonmiseszTestRandomDist.test_vonmises  sb    DIID6B((02EF02EF02EFH I 	"&'2>r:   c                     t        j                  | j                         t        j                  ddd      }t        t	        j
                  |      j                                y )Nr   gg5_PG>@B r  )r   rr   r  r   r<   isfiniter   rS   rs     r8   test_vonmises_smallz"TestRandomDist.test_vonmises_small  s=    DIIOOre<A""$%r:   c                     t        j                  | j                         t        j                  ddd      }t        j                  g d      }t        ||d       y )Nr   g    cArj   r  )g A^>?g @R7?g x.r  rM  r  rP  s      r8   test_vonmises_largez"TestRandomDist.test_vonmises_large  sE    DIIBc:(( 4 5 	"&'1=r:   c                     t        j                  | j                         t        j                  dt        j                        }t        t        j                  |             y )Nr   )rC  r  )r   rr   r  r<   r   r   rT  r  s     r8   test_vonmises_nanz TestRandomDist.test_vonmises_nan  s6    DIIOOr0r:   c                     t        j                  | j                         t        j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr  r  rb  )r'  r  r   gZ@g-g@g8
m?gVP"?g`V?gx^&3?r  rM  )r   rr   waldr<   rm   r	   rP  s      r8   	test_waldzTestRandomDist.test_wald  sb    DII$d@((02EF02EF02EFH I 	"&'2>r:   c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgdd	gg      }t        ||d
       y )Nr  rb  r\  g@6?g]A?g(1ڥR?gU?g2_u?g^}-Q?rL  rM  )r   rr   weibullr<   rm   r	   rP  s      r8   test_weibullzTestRandomDist.test_weibull  s`    DII$V4((02EF02EF02EFH I 	"&'2>r:   c                     t        j                  | j                         t        t        j                  dd      t	        j
                  d             t        t        t         j                  d       y )Nr   r  r\  r  )rH   )r   rr   r   r  r<   r   r   r_   r`   s    r8   test_weibull_0zTestRandomDist.test_weibull_0  s?    DIIV^^ab1288B<@j&..C8r:   c                     t        j                  | j                         t        j                  dd      }t        j                  ddgddgddgg      }t        ||       y )	Nr  rb  r\  B      rc   rj   r  )r   rr   r   r<   rm   r   rP  s      r8   	test_zipfzTestRandomDist.test_zipf  sU    DIIt&1((RHFG% & 	67+r:   N)[rw   rx   ry   r   rQ  rS  r^  rh  rm  ro  rr  rx  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r	  r  r  r  r  r  r  r   r"  r%  r*  r,  r.  r0  r   r?  parametrizer<   r  r   r8  r;  rD  r   rH  rM  rR  rU  rX  rZ  rb  re  ri  rl  ro  rq  rt  rw  rz  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rz   r:   r8   rB  rB    s   ??
E,2$,(&,@
E,,,,,2&,9\9
/&068$,6?,?E&
@;
6?A??F,G?<,4?=???,( [[W|r||B';R&LM	> N	>	,1%f,)?*? 
?<L,
E??>???D?????D L,?&>
??9
,r:   rB  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"y!)"TestBroadcastc                     d| _         y )N[rD  r`   s    r8   r   zTestBroadcast.setup_method'  s	    	r:   c                 B    t        j                  | j                         y r3   )r   rr   r`   s    r8   set_seedzTestBroadcast.set_seed*  s    DIIr:   c                    dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       | j	                           |||dz        }t        ||d       y )Nr   rc   gl?g_x?g=*BN?rj   r  rM  )r   r  r<   rm   r  r	   )rS   r  r  r  r3  r6  s         r8   r  zTestBroadcast.test_uniform-  sx    cs..(( 1 2 	q$'!&'2>dQh'!&'2>r:   c                 `   dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         y )Nr   rc   r\   )g-r@gYl@g-`w?rj   r  rM  )r   rW  r<   rm   r  r	   r   r_   )rS   r  r  	bad_scalerW  r3  r6  s          r8   rX  zTestBroadcast.test_normal=  s    cD	(( 0 1 	a'!&'2>j&#'9=UQY'!&'2>j&#y1}=r:   c                    dg}dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         y )	Nrc   r   r\   rd   )gnQVf?gVKB?gv`k?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   rH   rI   bad_abad_br  r3  r6  s           r8   r  zTestBroadcast.test_betaP  s    CC{{(( 1 2 	a!eQ!&'2>j$	15j$Au5aQ!&'2>j$q1u5j$5195r:   c                     dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         y Nrc   r\   )g.UgZ?gi Prq?gEK?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   r  r  r  r3  r6  s         r8   r  zTestBroadcast.test_exponentialf  sc    D	(((( 1 2 	UQY'!&'2>j+y1}=r:   c                     dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         y r  )r   ry  r<   rm   r  r	   r   r_   )rS   r   	bad_shape	std_gammar3  r6  s         r8   rz  z!TestBroadcast.test_standard_gammas  sc    D	))	(( 1 2 	519%!&'2>j)Y];r:   c                    dg}dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         y )	Nrc   r   r\   rd   )g.UgZ?gi Prq?gEK?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   r   r  r  r  r  r3  r6  s           r8   r	  zTestBroadcast.test_gamma  s    D	D	(( 0 1 	uqy%(!&'2>j%Q>j%I>ueai(!&'2>j%EAI>j%	A>r:   c                    dg}dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         y )	Nrc   r   r\   rd   )gbyʜ?go?gT7@rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   rO  rP  	bad_dfnum	bad_dfdenr  r3  r6  s           r8   r  zTestBroadcast.test_f  s    D	D	HH(( 0 1 	519e$!&'2>j!Y]E:j!UQY	:5%!)$!&'2>j!Y	:j!UIM:r:   c           
         dg}dg}dg}dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  ||      }	t        |	|d	       t        j                  t        j                   |||t        j                  gdz                    sJ t        t        ||dz  ||       t        t        ||dz  ||       t        t        ||dz  ||       | j	                           |||dz  |      }	t        |	|d	       t        t        |||dz  |       t        t        |||dz  |       t        t        |||dz  |       | j	                           ||||dz        }	t        |	|d	       t        t        ||||dz         t        t        ||||dz         t        t        ||||dz         y )
Nr   rj   rk   r   r\   rd   )gr^G"@g/*@gц!@r  rM  )r   rQ  r<   rm   r  r	   r   rT  r   r   r_   )
rS   rO  rP  rK  r  r  bad_noncnonc_fr3  r6  s
             r8   rR  zTestBroadcast.test_noncentral_f  s   sC	D	4$$(( 0 1 		5$/!&'2>vvbhhveURVVHqLABCCCj&)a-Ej&%!)YEj&%!)UHEuqy$/!&'2>j&)UQYEj&%QEj&%HEudQh/!&'2>j&)UD1HEj&%D1HEj&%1Er:   c                     | j                          t        j                  ddg      }t        j                  dddd      }t        ||d       y )Ngaz@gn4M;%?r   r   r   r  rM  )r  r<   rm   r   rQ  r	   )rS   r3  r6  s      r8   test_noncentral_f_small_dfz(TestBroadcast.test_noncentral_f_small_df  sB    ((-/@AB$$S#qq9!&'2>r:   c                     dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         y )Nrc   r\   )g~}N??g$F?g'rS?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   rJ  bad_dfr  r3  r6  s         r8   r  zTestBroadcast.test_chisquare  sc    S$$	(( 0 1 	26"!&'2>j)VaZ8r:   c                    dg}dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         y )	Nrc   r   r\   rd   )g w "@g2WR@gRY@rj   r  rM  )r   rL  r<   rm   r  r	   r   r_   )rS   rJ  rK  r  r  nonc_chir3  r6  s           r8   rM  z'TestBroadcast.test_noncentral_chisquare  s    Ss4..(( 0 1 	"q&$'!&'2>j(FQJ=j(BFH="dQh'!&'2>j(FD1H=j(B1=r:   c                    dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         t        t        t         j                  |dz         y )Nrc   r\   )gT@g~Fl@gƚtp?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   rJ  r  tr3  r6  s         r8   r  zTestBroadcast.test_standard_t  sx    S(( 0 1 	26!&'2>j!VaZ0j&"3"3VaZ@r:   c                 `   dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         y )Nr   rc   r\   )gW!@gOBg}?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   rC  r  	bad_kappar  r3  r6  s          r8   r  zTestBroadcast.test_vonmises  s    SD	??(( 1 2 	"q&%(!&'2>j(BFI>"eai(!&'2>j(B	A>r:   c                    dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         t        t        t         j                  |dz         y )Nrc   r\   )g&8??geFX?gՋː?rj   r  rM  )r   r_  r<   rm   r  r	   r   r_   )rS   rH   r  r_  r3  r6  s         r8   rb  zTestBroadcast.test_pareto  st    C(( 0 1 	A!&'2>j&%!)4j&--;r:   c                    dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         t        t        t         j                  |dz         y r  )r   r  r<   rm   r  r	   r   r_   )rS   rH   r  r  r3  r6  s         r8   r  zTestBroadcast.test_weibull'  st    C..(( 1 2 	Q!&'2>j'5195j&..%!)<r:   c                    dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         t        t        t         j                  |dz         y )Nrc   r\   r  rj   r  rM  )r   rk  r<   rm   r  r	   r   r_   )rS   rH   r  rk  r3  r6  s         r8   rl  zTestBroadcast.test_power5  st    C(( 1 2 	q1u!&'2>j%3j&,,	:r:   c                 `   dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         y )Nr   rc   r\   )g:BKc?g3k?g~q?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   r  r  r  r  r3  r6  s          r8   r   zTestBroadcast.test_laplaceC  s    cD	..(( 2 3 	q%(!&'2>j'37I>eai(!&'2>j'3	A>r:   c                 `   dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         y )Nr   rc   r\   )g'Zy?gdSO=?g3L1?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   r  r  r  r  r3  r6  s          r8   r  zTestBroadcast.test_gumbelV  s    cD	(( 1 2 	a'!&'2>j&#'9=UQY'!&'2>j&#y1}=r:   c                    dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         t        t        j                  dd	      d       y )
Nr   rc   r\   )gy?gJR?g
~&?rj   r  rM  r2  r   )	r   r$  r<   rm   r  r	   r   r_   r   )rS   r  r  r  r$  r3  r6  s          r8   r%  zTestBroadcast.test_logistici  s    cD	??(( 2 3 	#'5)!&'2>j(C!GY?#uqy)!&'2>j(CQ?V__S#.4r:   c                    dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       t        t        t         j                  |dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         t        t        t         j                  ||dz         y )Nr   rc   r\   )gH"@gܮ @gvv	:@rj   r  rM  )r   r)  r<   rm   r  r	   r   r_   )rS   r'  r(  	bad_sigmar)  r3  r6  s          r8   r*  zTestBroadcast.test_lognormal}  s    sD	$$	(( 0 1 	4!8U+!&'2>j)TAXyAj&"2"2D1HiH4+!&'2>j)T9q=Aj&"2"2D)a-Hr:   c                     dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         y )Nrc   r\   )gݱlo?g/ӂ?gz~R?rj   r  rM  )r   rn  r<   rm   r  r	   r   r_   )rS   r  r  rn  r3  r6  s         r8   ro  zTestBroadcast.test_rayleigh  sa    D	??(( 0 1 	%!)$!&'2>j(IM:r:   c                    dg}dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       t        t        t         j                  |dz  |       t        t        t         j                  |dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         t        t        |d	d       t        t        |dd	       y )
Nr   rc   r   rd   )g@m e?g`I߿?g|2?rj   r  rM  r   )r   r  r<   rm   r  r	   r   r_   )rS   r'  r  bad_meanr  r  r3  r6  s           r8   r  zTestBroadcast.test_wald  s   u3D	{{(( 0 1 	dQh&!&'2>j$1e<j$q)<j&++x!|UCj&++taxCdEAI&!&'2>j$%!)<j$i!m<j$Q/j$S1r:   c                    dg}dg}dg}dg}dg}|dz  \  }}t         j                  }t        j                  g d      }	| j	                           ||dz  ||      }
t        |
|	d       t        t        ||dz  ||       t        t        ||dz  ||       t        t        ||dz  ||       | j	                           |||dz  |      }
t        |
|	d       t        t        |||dz  |       t        t        |||dz  |       t        t        |||dz  |       | j	                           ||||dz        }
t        |
|	d       t        t        ||||dz         t        t        ||||dz         t        t        ||||dz         t        t        |dd	d
       t        t        |ddd
       t        t        |ddd       y )Nrc   rj   r   rk   )g,P;bD @g%G @g,~S @r  rM  r   r   g      4@g      9@)r   r  r<   rm   r  r	   r   r_   )rS   r  r  r  bad_left_onebad_mode_onebad_left_twobad_mode_twor  r3  r6  s              r8   r  zTestBroadcast.test_triangular  s   ssss%*QY"l&&
(( 0 1 	D1HdE2!&'2>j*lQ.>eLj*dQheLj*lQ.>	 	D$(E2!&'2>j*lD1HeLj*dL14DeLj*lL1<L	 	D$	2!&'2>j*lD%!)Lj*dL%!)Lj*lLai	! 	j*c2s;j*c3<j*c3<r:   c                    dg}dg}dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||       t        t        ||dz  |       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||       t        t        |||dz         t        t        |||dz         t        t        |||dz         y )Nrc   r   r\         ?rc   rc   rc   rj   )r   r   r<   rm   r  r   r   r_   )	rS   rF  r   bad_n	bad_p_one	bad_p_twobinomr3  r6  s	            r8   r  zTestBroadcast.test_binomial  s    CED	E	((9%q1ua67+j%A6j%Q	:j%Q	:q!a%67+j%A6j%IM:j%IM:r:   c                    dg}dg}dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||       t        t        ||dz  |       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||       t        t        |||dz         t        t        |||dz         t        t        |||dz         y )Nrc   r   r\   r  )rc   r   rc   rj   )r   r   r<   rm   r  r   r   r_   )	rS   rF  r   r  r   r  	neg_binomr3  r6  s	            r8   r   z$TestBroadcast.test_negative_binomial  s    CED	E	,,	((9%1q5!$67+j)UQY:j)QUI>j)QUI>1a!e$67+j)UAE:j)Q	A>j)Q	A>r:   c                 D   t        j                         j                  }dg}dg}|dz  g}t         j                  }t	        j
                  g d      }| j                           ||dz        }t        ||       t        t        ||dz         t        t        ||dz         y )Nrc   r\   r   )rc   rc   r   rj   )
r   rP   _poisson_lam_maxr   r<   rm   r  r   r   r_   )rS   max_lamrd  bad_lam_onebad_lam_twor   r3  r6  s           r8   re  zTestBroadcast.test_poisson  s    $$&77cd{m..((9%q!67+j';?;j';?;r:   c                    dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz        }t        ||       t        t        ||dz         t        j                  d      5  t        t        |t        j                         t        t        |ddt        j                  g       d d d        y # 1 sw Y   y xY w)Nr   r   )r   r   rc   rj   r4  r5  )
r   r   r<   rm   r  r   r   r_   r7  r   )rS   rH   r  r   r3  r6  s         r8   r  zTestBroadcast.test_zipf  s    C{{((9%a!e67+j$	2[[* 	<*dBFF3*dQ266N;	< 	< 	<s   ?AC

Cc                    dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz        }t        ||       t        t        ||dz         t        t        ||dz         y )Nr   r\   r  r   rj   )r   r   r<   rm   r  r   r   r_   )rS   r   r   r  geomr3  r6  s          r8   r  zTestBroadcast.test_geometric,  sp    ED	E	((9%a!e67+j$	A6j$	A6r:   c                    dg}dg}dg}dg}dg}dg}dg}t         j                  }t        j                  g d      }	| j	                           ||dz  ||      }
t        |
|	       t        t        ||dz  ||       t        t        ||dz  ||       t        t        ||dz  ||       t        t        ||dz  ||       | j	                           |||dz  |      }
t        |
|	       t        t        |||dz  |       t        t        |||dz  |       t        t        |||dz  |       t        t        |||dz  |       | j	                           ||||dz        }
t        |
|	       t        t        ||||dz         t        t        ||||dz         t        t        ||||dz         t        t        ||||dz         t        t        |dd	d
       t        t        |d	dd
       t        t        |d	d	d       t        t        |d	d	d       y )Nrc   r   r\   rd   r   rk   r  rj   r   r      )r   r   r<   rm   r  r   r   r_   )rS   ngoodnbadnsample	bad_ngoodbad_nbadbad_nsample_onebad_nsample_two	hypergeomr3  r6  s              r8   r  z!TestBroadcast.test_hypergeometric9  s   s#D	4##))	((9%519dG467+j)Y]D'Jj)UQY'Jj)UQYoNj)UQYoN5$(G467+j)Yq'Jj)UHqL'Jj)UD1HoNj)UD1HoN5$!467+j)YgkJj)UHgkJj)UD/A:MNj)UD/A:MNj)RR8j)RR8j)RQ7j)RR8r:   c                    dg}dg}dg}t         j                  }t        j                  g d      }| j	                           ||dz        }t        ||       t        t        ||dz         t        t        ||dz         y )Nr   r   r\   r  rj   )r   r   r<   rm   r  r   r   r_   )rS   r   r   r  r   r3  r6  s          r8   r.  zTestBroadcast.test_logseriesa  sq    EC	D	$$	((9%1q5!67+j)Y];j)Y];r:   N)#rw   rx   ry   r   r  r  rX  r  r  rz  r	  r  rR  r  r  rM  r  r  rb  r  rl  r   r  r%  r*  ro  r  r  r  r   re  r  r  r  r.  rz   r:   r8   r  r  $  s    ? >&6,><?,;,!FF?9>,A?&<=;?&>&5(I*;24&=P;.?.<<7&9P<r:   r  zcan't start threadr0  c                   *    e Zd Zd Zd Zd Zd Zd Zy)
TestThreadc                 $    t        d      | _        y )Nrk   )rW   seedsr`   s    r8   r   zTestThread.setup_methodr  s    1X
r:   c           
         ddl m} t        j                  t	        | j
                        f|z         }t        j                  t	        | j
                        f|z         }t        | j
                  |      D cg c]$  \  }} ||t        j                  |      |f      & }}}|D 	cg c]  }	|	j                          c}	 |D 	cg c]  }	|	j                          c}	 t        | j
                  |      D ]!  \  }} |t        j                  |      |       # t        j                         j                  j                  dk(  r t        j                  dk(  rt!        ||       y t#        ||       y c c}}w c c}	w c c}	w )Nr   )Thread)targetargsrk   win32)	threadingr  r<   r  r   r  zipr   rP   startjoinintprh   itemsizer$  platformr	   r   )
rS   functionszr  out1out2rT   or  r   s
             r8   check_functionzTestThread.check_functionu  s'   $xxTZZ*R/0xxTZZ*R/0 TZZ.0A 86+=+=a+@!*DE 0 0qa 

D) 	/DAqV''*A.	/ 779??##q(S\\W-D%dD1tT*0s   8)E2(E8E=c                 0    d }| j                  |d       y )Nc                 .    | j                  d      |d<   y )N'  r   .)rW  rC   outs     r8   
gen_randomz*TestThread.test_normal.<locals>.gen_random  s    |||/CHr:   )r0  r)  r-  rS   r3  s     r8   rX  zTestThread.test_normal  s    	0 	J84r:   c                 0    d }| j                  |d       y )Nc                 T    | j                  t        j                  d            |d<   y )Nr   rN   r  .)r  r<   r  r1  s     r8   r3  z'TestThread.test_exp.<locals>.gen_random  s"    ((rww{/C(DCHr:   r9  r4  r5  r6  s     r8   test_expzTestThread.test_exp  s    	E 	J;7r:   c                 0    d }| j                  |d       y )Nc                 :    | j                  ddgdz  d      |d<   y )Nr   r:  r   r0  r   .)r   r1  s     r8   r3  z/TestThread.test_multinomial.<locals>.gen_random  s#    ((fX\(FCHr:   )r0  r   r4  r5  r6  s     r8   r;  zTestThread.test_multinomial  s    	G 	J:6r:   N)rw   rx   ry   r   r-  rX  r:  r;  rz   r:   r8   r  r  o  s    +,587r:   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestSingleEltArrayInputc                     t        j                  dg      | _        t        j                  dg      | _        t        j                  dg      | _        d| _        y )Nr   rj   rk   r  )r<   rm   argOneargTwoargThreetgtShaper`   s    r8   r   z$TestSingleEltArrayInput.setup_method  s<    hhsmhhsm!r:   c                 d   t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  f}t         j                  t         j                  f}|D ]U  }||v r |t        j                  dg            }n || j                        }t!        |j"                  | j$                         W y r   )r   r  ry  r  r  r_  r  rk  rn  r   r   r   r   r<   rm   r@  r   r   rC  )rS   funcs	probfuncsr  r2  s        r8   test_one_arg_funcsz*TestSingleEltArrayInput.test_one_arg_funcs  s    ##V%:%:!!6#4#4v!!6#3#35 %%v'7'78	 	3Dy 288SE?+ 4;;'DMM2	3r:   c                    t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  f}t         j                  t         j                  f}|D ]  }||v rt        j                   dg      }n| j"                  } || j$                  |      }t'        |j(                  | j*                          || j$                  d   |      }t'        |j(                  | j*                          || j$                  |d         }t'        |j(                  | j*                          y )Nr   r   )r   r  rW  r  r  r  rL  r  r  r  r$  r)  r  r   r   r<   rm   rA  r@  r   r   rC  )rS   rE  rF  r  rA  r2  s         r8   test_two_arg_funcsz*TestSingleEltArrayInput.test_two_arg_funcs  s   fll666&..!!6;;&":":< __f&>&>?	 	3Dy 3% t{{F+CDMM2t{{1~v.CDMM2t{{F1I.CDMM2	3r:   c                 ,   t         j                  t         j                  t         j                  g}|D ]  } || j                  | j
                  | j                        }t        |j                  | j                          || j                  d   | j
                  | j                        }t        |j                  | j                          || j                  | j
                  d   | j                        }t        |j                  | j                          y Nr   )
r   rQ  r  r   r@  rA  rB  r   r   rC  )rS   rE  r  r2  s       r8   test_three_arg_funcsz,TestSingleEltArrayInput.test_three_arg_funcs  s    $$f&7&7&&(  	3Dt{{DKK?CDMM2t{{1~t{{DMMBCDMM2t{{DKKNDMMBCDMM2	3r:   N)rw   rx   ry   r   rG  rI  rL  rz   r:   r8   r>  r>    s    3&363r:   r>  c                     t        j                  d       | \  }}}t        t         |      } ||ddi}t        |j                  t        j                  d      k(         y )Nr  r   r   r/  )r   rr   getattrr   rh   r<   )r9   fnamer  r(  r  r6  s         r8   test_integer_dtyperP    sN    
KK	"E4A1FFLLBHHSM)*r:   c                 L   t        j                  d       | \  }}}t        t         |      } ||ddi}t        j                  dk7  r|j                         }t        j                  |j                  t        j                              j                         }t        ||k(         y )Nr  r   r  r#  )r   rr   rN  r$  r%  r&  r'  r(  r)  r<   r  r*  r   )r9   rO  r  r(  r  r,  r-  s          r8   test_integer_repeatrR    s|    
KK	"E4A
T
 
 C
}} lln
.."''*
+
5
5
7CC6Mr:   c                     t        j                  t              5  t        j                  dddgd       d d d        t        j                  t              5  t        j                  ddgdd       d d d        t        j                  t              5  t        j                  ddgddgd       d d d        y # 1 sw Y   xY w# 1 sw Y   TxY w# 1 sw Y   y xY w)Nrc   r  gffffff?)r   rc   r   r   )r   r   r_   r   r   rz   r:   r8   test_broadcast_size_errorrT    s    	z	" 4C:F34	z	" 2A&12	z	" 9Ac
89 9	4 42 29 9s#   B8CC8CCCc                     t         j                  j                  t        d            } | j	                  d       | j                         \  }}}|d   j                  j                  dk(  sJ  |d }|j                  |       |j                  d      }t        |d   |d          t        |d   d	   |d   d	          t        |d   d
   |d   d
          t        |d   |d          t        |d   |d          y )Nr   rc   r   )r   Fr   rB   rC   rD   rE   rF   rG   )r<   r   rP   r   r   
__reduce__	__class__rw   r   r   r   r   )rs   ctorr  state_arI   state_bs         r8   &test_randomstate_ctor_old_style_pickler[    s    			wqz	*Bq--/D$7%%222lAKKkkk'G)7?+CDww'.0@0GHww'.0@0GH%w{';<!77#34r:   c                 f   t         j                  j                  d      }|j                  }t         j                  j	                  |       t        t         j                  j                  j                  j                  t        |            sJ t         j                  j                         }||u sJ y rK  )r<   r   default_rngrB   r>   r   mtrand_rand_bit_generatorr;  r=   )r@   def_bgbg	second_bgs       r8   test_hot_swaprd    s{    YY""1%F			BII#bii&&,,;;T"XFFF		++-I??r:   c                    t        d      }t        j                  j                  |       t        j                  j	                  d      }t        j                  j                  d       t        j                  j	                  d      }t        |       t        |       |d   dk(  sJ |d   d   |d   d   k7  sJ |d   d   |d   d   k7  sJ y )	Nr   Fr   rc   rB   r   rC   inc)r   r<   r   r>   r   rr   print)r@   rb  rC   r   s       r8   test_seed_alt_bit_genrh    s    	qBII#IIu-EIINN1		##5#1I	%L	)!W,,,>'"i&8&AAAA>% Ig$6u$====r:   c                 2   t         j                  j                         }t        d      }t         j                  j	                  |       t        j                  t        d      5  t         j                  j                  |       d d d        y # 1 sw Y   y xY w)Nr   zstate must be for a PCG64r   )	r<   r   r   r   r>   r   r   r_   r   )r@   rC   rb  s      r8   test_state_error_alt_bit_genrj  ,  se    II!E	qBII#	z)D	E #
		E"# # #s   $ BBc                 p   t         j                  j                  d       t         j                  j                  ddd      }t	        d      }|j
                  }t         j                  j                  |       t         j                  j                  d      }|D ]  }||   ||   k(  rJ  t         j                  j                  d       t         j                  j                  ddd      }t        j                  ||k(        rJ |j
                  }|d   d   |d   d   k7  sJ |d   d   |d   d   k(  sJ y )	Ń r      @r   Fr   rC   rf  )	r<   r   rr   rQ   r   rC   r>   r   r   )r@   r  rb  rC   state_directfieldpcg_valsr   s           r8   test_swap_workedrq  5  s   IINN599Q,D	qBHHEII#99&&e&4L 3U||E22223IINN5yy  GR0Hvvdh&'''IWg&%.*AAAAWe$	'(:5(AAAAr:   c                 $   t         j                  j                  t        d             t         j                  j	                  ddd      }t         j                  j                  t        d            }|j	                  ddd      }t        ||       y )Nrl  r   rm  r   )r<   r   r>   r   rQ   rP   r   )r@   singleton_valsrgnon_singleton_valss       r8   %test_swapped_singleton_against_directrv  G  sf    IIe-YY&&q'26N			uU|	,BAw3#^4r:   )3r'  r   r$  ru  numpyr<   r   numpy.testingr   r   r   r   r   r   r	   r
   r   numpy.randomr   r   r   r  r5   r  r9  r  r6   fixturer9   r@   rJ   rL   r|   r   r   r   rB  r  r?  r@  r  r>  rP  rR  rT  r[  rd  rh  rj  rq  rv  rz   r:   r8   <module>r{     s     
   
 
 
 ( %+c!12"+	 288BGG5 #e$f$f)k&h,n"daO $f$f)k$f&h,n"daO hy1, 2,
 - -),? ,?^> >6. 6.pTJ TJna+ a+Hh, h,VH	< H	<V G$89+7 +7 :+7^A3 A3J+95$>#B$5r:   